diff --git a/.next/dev/logs/next-development.log b/.next/dev/logs/next-development.log index 954501f0..eb64e993 100644 --- a/.next/dev/logs/next-development.log +++ b/.next/dev/logs/next-development.log @@ -1,595 +1,278 @@ -[00:00:01.224] Server LOG ✓ Ready in 898ms -[00:00:15.130] Server LOG ○ Compiling / ... -[00:00:18.577] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:00:19.073] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:00:19.921] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:20.045] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:20.045] Browser LOG Service Worker 注册成功: http://localhost:3001/ -[00:00:20.045] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:00:20.045] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:00:20.045] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3001/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3001/","r":"","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763837952605} -[00:00:21.863] Server LOG ○ Compiling /_not-found/page ... -[00:00:21.864] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:21.864] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:23.146] Server LOG 迁徙数据: {} -[00:00:27.576] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3001/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3001/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763837960137} -[00:00:31.018] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Service Worker 注册成功: http://localhost:3001/ -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:00:32.093] Browser LOG FamilyContext - Switching tree to: 张氏家族 -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:00:32.093] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:00:32.093] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:00:32.093] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:00:32.093] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3001/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3001/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763837964655} -[00:00:33.062] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:33.062] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:33.062] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:33.062] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:36.234] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:36.234] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:00:36.234] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:00:36.234] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:00:37.147] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:00:37.420] Browser LOG FamilyContext - Switching tree to: 王氏家族 -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:37.420] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:39.702] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:00:39.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:39.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:39.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:00:39.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:00:39.852] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:00:39.852] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:04:31.167] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:04:31.495] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:04:31.495] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} -[00:04:31.495] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","r":"http://localhost:3001/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763837978970} -[00:04:34.639] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:04:35.217] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:04:35.217] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:04:35.217] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763837982733} -[00:05:48.858] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:05:49.355] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:50.203] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:05:50.203] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:05:50.203] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838057713} -[00:05:52.071] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838059578} -[00:05:55.177] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:05:55.692] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:05:56.734] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:56.734] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:05:56.735] Browser LOG FamilyContext - Switching tree to: 张氏家族 -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:05:56.735] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:05:56.735] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:05:56.735] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:05:56.735] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838064240} -[00:06:00.668] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:06:00.669] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:00.669] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:00.669] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:00.669] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:01.002] Browser LOG FamilyContext - Switching tree to: 王氏家族 -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:01.002] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:02.738] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:06:02.762] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:02.762] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:02.762] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:06:02.762] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:06:02.894] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:02.894] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:06.567] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:06:06.814] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:06:06.814] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:06:06.814] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} -[00:06:06.814] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838074319} -[00:06:09.069] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:06:09.520] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:10.614] Browser LOG FamilyContext - Switching tree to: 虞氏家族 -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:06:10.614] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:06:10.614] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:06:10.614] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:06:10.614] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838078115} -[00:06:18.391] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:06:18.629] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:06:18.629] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:06:18.629] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} -[00:06:18.629] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838086135} -[00:06:21.669] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:06:22.082] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:06:23.212] Browser LOG FamilyContext - Switching tree to: 张氏家族 -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:23.212] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:23.212] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:06:23.212] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:06:23.212] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838090717} -[00:06:26.757] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:06:26.758] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:26.758] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:06:26.758] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:26.758] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:06:27.067] Browser LOG FamilyContext - Switching tree to: 王氏家族 -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:27.068] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:29.353] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:06:29.373] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:29.373] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:29.373] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:06:29.373] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:06:29.505] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:06:29.505] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:46.893] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload -[00:07:47.109] Server LOG ✓ Compiled in 99ms -[00:07:47.601] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:07:47.692] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:07:48.581] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:07:49.674] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:07:49.677] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:07:49.677] Browser LOG FamilyContext - No session, clearing data -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:07:49.677] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:07:49.677] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:07:49.677] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:07:49.677] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:07:49.677] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:07:49.677] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838177121} -[00:07:49.976] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:07:49.976] Browser LOG FamilyContext - Loaded members: 27 -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:49.976] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:52.817] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:52.817] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:52.817] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmialsibp0003mwsqddts8mnq -[00:07:52.817] Browser LOG FamilyContext - Same tree, skipping -[00:07:56.345] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:07:56.367] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:56.367] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:56.367] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: cmialsibp0003mwsqddts8mnq -[00:07:56.367] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:07:56.367] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:07:56.367] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:07:56.652] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:07:56.652] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:07:56.652] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:07:56.652] Browser LOG FamilyContext - Loaded members: 27 -[00:07:56.652] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:07:56.652] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:04.512] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:08:05.320] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:08:06.129] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:08:06.144] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:08:06.144] Browser LOG FamilyContext - No session, clearing data -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.144] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:08:06.144] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.145] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:08:06.145] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:08:06.145] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:08:06.145] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:08:06.145] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:08:06.145] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:08:06.145] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:08:06.145] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838193643} -[00:08:06.520] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:08:06.520] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:08:06.521] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:08:06.521] Browser LOG FamilyContext - Loaded members: 27 -[00:08:06.521] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:06.521] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:06.521] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:06.521] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:10.311] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:10.311] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:10.311] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmialsibp0003mwsqddts8mnq -[00:08:10.311] Browser LOG FamilyContext - Same tree, skipping -[00:08:14.084] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:08:14.093] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:14.093] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:14.093] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: cmialsibp0003mwsqddts8mnq -[00:08:14.093] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:08:14.093] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:08:14.093] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:08:14.232] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:08:14.232] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:08:14.232] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:08:14.387] Browser LOG FamilyContext - Loaded members: 27 -[00:08:14.387] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:08:14.387] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:05.385] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:05.385] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:05.385] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmialsibp0003mwsqddts8mnq -[00:09:05.385] Browser LOG FamilyContext - Same tree, skipping -[00:09:08.952] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:09:08.952] Server LOG API /trees/[treeId] - Requested treeId: undefined -[00:09:09.048] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:09:09.052] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:09.052] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:09.052] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: cmialsibp0003mwsqddts8mnq -[00:09:09.052] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:09:09.052] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:09:09.052] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:09:09.053] Server LOG API /trees/[treeId] - Returning tree: "王氏家族" "cmialsibp0003mwsqddts8mnq" -[00:09:09.293] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:09:09.293] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:09:09.293] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:09:09.293] Browser LOG FamilyContext - Loaded members: 27 -[00:09:09.293] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:09.293] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:31.611] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload -[00:09:31.828] Server LOG ✓ Compiled in 61ms -[00:09:32.237] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:09:32.313] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:09:33.011] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:09:33.387] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:09:33.387] Server LOG API /trees/[treeId] - Requested treeId: undefined -[00:09:33.543] Server WARN Error: Route "/api/trees/[treeId]" used `params.treeId`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis -[00:09:33.546] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:09:33.546] Browser LOG FamilyContext - No session, clearing data -[00:09:33.546] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:09:33.546] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:09:33.546] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838280727} -[00:09:33.546] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:09:33.546] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:09:33.546] Browser LOG FamilyContext - Fetching URL: /api/trees/cmiamnrv80001a3bea6b5n5xf -[00:09:33.548] Server LOG API /trees/[treeId] - Returning tree: "王氏家族" "cmialsibp0003mwsqddts8mnq" -[00:09:33.738] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:09:33.738] Browser LOG FamilyContext - Loaded members: 27 -[00:09:34.075] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:34.075] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:34.075] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:09:34.360] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:09:34.360] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:11.235] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:10:12.064] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:10:12.943] Server LOG API /trees/[treeId] - Requested treeId: "cmiamnrv80001a3bea6b5n5xf" -[00:10:12.947] Server LOG API /trees/[treeId] - Returning tree: "张氏家族" "cmiamnrv80001a3bea6b5n5xf" -[00:10:12.955] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:10:12.955] Browser LOG FamilyContext - No session, clearing data -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:12.955] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: undefined -[00:10:12.955] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:10:12.955] Browser LOG FamilyContext - Fetching URL: /api/trees/cmiamnrv80001a3bea6b5n5xf -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:12.955] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:12.955] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:10:12.955] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:10:12.955] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmiamnrv80001a3bea6b5n5xf","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838320452} -[00:10:13.074] Browser LOG FamilyContext - Fetched tree: 张氏家族 cmiamnrv80001a3bea6b5n5xf -[00:10:13.074] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:13.074] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:13.291] Browser LOG FamilyContext - Loaded members: 0 -[00:10:13.291] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:13.291] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:13.291] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:13.291] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:15.672] Server LOG API /trees/[treeId] - Requested treeId: "cmialsibp0003mwsqddts8mnq" -[00:10:15.675] Server LOG API /trees/[treeId] - Returning tree: "王氏家族" "cmialsibp0003mwsqddts8mnq" -[00:10:15.791] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:15.791] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:15.792] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmiamnrv80001a3bea6b5n5xf -[00:10:15.792] Browser LOG FamilyContext - Loading tree: cmialsibp0003mwsqddts8mnq -[00:10:15.792] Browser LOG FamilyContext - Fetching URL: /api/trees/cmialsibp0003mwsqddts8mnq -[00:10:15.792] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:15.792] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:16.164] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:10:16.164] Browser LOG FamilyContext - Loaded members: 27 -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:16.164] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:17.897] Server LOG API /trees/[treeId] - Requested treeId: "cmiamnrv80001a3bea6b5n5xf" -[00:10:17.908] Server LOG API /trees/[treeId] - Returning tree: "张氏家族" "cmiamnrv80001a3bea6b5n5xf" -[00:10:17.936] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:17.936] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:17.936] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: cmialsibp0003mwsqddts8mnq -[00:10:17.936] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:10:17.936] Browser LOG FamilyContext - Fetching URL: /api/trees/cmiamnrv80001a3bea6b5n5xf -[00:10:17.936] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:10:17.936] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:10:18.150] Browser LOG FamilyContext - Fetched tree: 张氏家族 cmiamnrv80001a3bea6b5n5xf -[00:10:18.150] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 张氏家族 isLoading: true -[00:10:18.150] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 张氏家族 isLoading: true -[00:10:18.358] Browser LOG FamilyContext - Loaded members: 0 -[00:10:18.358] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:18.358] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:18.358] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:18.358] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:22.380] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:10:22.566] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:22.566] Browser LOG FamilyContext - No session, clearing data -[00:10:22.566] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:10:22.566] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:10:22.566] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} -[00:10:22.566] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838330078} -[00:10:25.793] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:10:26.176] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:10:26.860] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:26.860] Browser LOG FamilyContext - No session, clearing data -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:26.860] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:26.860] Browser LOG FamilyContext - Loading tree: first -[00:10:26.860] Browser LOG FamilyContext - Fetching URL: /api/trees -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:26.860] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:27.283] Browser LOG FamilyContext - Fetched tree: 虞氏家族 cmialsifl001nmwsqbi8bbu43 -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true -[00:10:27.283] Browser LOG FamilyContext - Loaded members: 27 -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:10:27.283] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false -[00:10:27.283] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:10:27.283] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:10:27.283] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838334786} -[00:10:31.689] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:10:31.942] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:31.942] Browser LOG FamilyContext - No session, clearing data -[00:10:31.942] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:10:31.942] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:10:31.942] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} -[00:10:31.942] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838339453} -[00:10:34.421] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true -[00:10:34.890] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold -[00:10:35.949] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:35.949] Browser LOG FamilyContext - No session, clearing data -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG Service Worker 注册成功: http://localhost:3000/ -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false -[00:10:35.949] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined -[00:10:35.949] Browser LOG FamilyContext - Loading tree: first -[00:10:35.949] Browser LOG FamilyContext - Fetching URL: /api/trees -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true -[00:10:35.949] Browser LOG FamilyContext - Fetched tree: 张氏家族 cmiamnrv80001a3bea6b5n5xf -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:35.949] Browser LOG FamilyContext - Loaded members: 0 -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:35.949] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:35.949] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit -[00:10:35.949] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} -[00:10:35.949] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838343461} -[00:10:40.323] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:40.323] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:40.323] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmiamnrv80001a3bea6b5n5xf -[00:10:40.323] Browser LOG FamilyContext - Loading tree: cmialsibp0003mwsqddts8mnq -[00:10:40.323] Browser LOG FamilyContext - Fetching URL: /api/trees/cmialsibp0003mwsqddts8mnq -[00:10:40.323] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:40.323] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:10:40.339] Server LOG API /trees/[treeId] - Requested treeId: "cmialsibp0003mwsqddts8mnq" -[00:10:40.344] Server LOG API /trees/[treeId] - Returning tree: "王氏家族" "cmialsibp0003mwsqddts8mnq" -[00:10:40.718] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:10:40.718] Browser LOG FamilyContext - Loaded members: 27 -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:40.718] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:43.446] Server LOG API /trees/[treeId] - Requested treeId: "cmiamnrv80001a3bea6b5n5xf" -[00:10:43.454] Server LOG API /trees/[treeId] - Returning tree: "张氏家族" "cmiamnrv80001a3bea6b5n5xf" -[00:10:43.586] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:43.586] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:10:43.586] Browser LOG FamilyContext - Effect triggered, treeId: cmiamnrv80001a3bea6b5n5xf currentTree: cmialsibp0003mwsqddts8mnq -[00:10:43.586] Browser LOG FamilyContext - Loading tree: cmiamnrv80001a3bea6b5n5xf -[00:10:43.586] Browser LOG FamilyContext - Fetching URL: /api/trees/cmiamnrv80001a3bea6b5n5xf -[00:10:43.586] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:10:43.586] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: true -[00:10:43.891] Browser LOG FamilyContext - Fetched tree: 张氏家族 cmiamnrv80001a3bea6b5n5xf -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 张氏家族 isLoading: true -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 张氏家族 isLoading: true -[00:10:43.892] Browser LOG FamilyContext - Loaded members: 0 -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:10:43.892] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:21.490] Server LOG ✓ Compiled in 80ms -[00:11:21.589] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:21.589] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:28.846] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:28.846] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:28.846] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838396324} -[00:11:40.226] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:40.226] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:40.226] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838407739} -[00:11:42.774] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:42.774] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:42.774] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838410218} -[00:11:42.774] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:42.774] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:42.774] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:43.238] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:43.239] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:43.239] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:47.556] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:47.556] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:47.556] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838415060} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:48.775] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:48.775] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:48.775] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838416250} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:48.775] Browser LOG 迁徙数据: {"lines":[],"migrations":[]} -[00:11:50.309] Server LOG ✓ Compiled in 64ms -[00:11:53.190] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:53.190] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:53.190] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838420698} -[00:11:55.634] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:55.634] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:55.634] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmiamnrv80001a3bea6b5n5xf -[00:11:55.634] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:11:55.634] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838423114} -[00:11:55.965] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:55.965] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:55.965] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:11:55.965] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:12:03.450] Server LOG API /trees/[treeId] - Requested treeId: "cmialsibp0003mwsqddts8mnq" -[00:12:03.456] Server LOG API /trees/[treeId] - Returning tree: "王氏家族" "cmialsibp0003mwsqddts8mnq" -[00:12:03.629] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:12:03.629] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: false -[00:12:03.629] Browser LOG FamilyContext - Effect triggered, treeId: cmialsibp0003mwsqddts8mnq currentTree: cmiamnrv80001a3bea6b5n5xf -[00:12:03.629] Browser LOG FamilyContext - Loading tree: cmialsibp0003mwsqddts8mnq -[00:12:03.629] Browser LOG FamilyContext - Fetching URL: /api/trees/cmialsibp0003mwsqddts8mnq -[00:12:03.629] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:12:03.629] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 张氏家族 isLoading: true -[00:12:03.972] Browser LOG FamilyContext - Fetched tree: 王氏家族 cmialsibp0003mwsqddts8mnq -[00:12:03.972] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:12:03.972] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 王氏家族 isLoading: true -[00:12:03.972] Browser LOG FamilyContext - Loaded members: 27 -[00:12:03.972] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:12:03.972] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:12:04.007] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:12:04.007] Browser LOG Dashboard - treeData: {"members":{"cmialsibs0005mwsq43k4szij":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"王氏家族始祖,清末秀才,以教书为业。","birthDate":"1880-03-15","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.977Z","deathDate":"1955-08-20","email":null,"fatherId":null,"fullName":"王德厚","gender":"MALE","generation":1,"generationName":"德","givenName":"德厚","id":"cmialsibs0005mwsq43k4szij","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibv0007mwsq4wp2snri"],"spouseMotherName":null,"surname":"王","tags":["始祖","教书先生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.006Z"},"cmialsibv0007mwsq4wp2snri":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"贤妻良母,持家有道。","birthDate":"1882-05-10","birthPlace":"山东省济南市天桥区","burialPlace":null,"childrenIds":["cmialsic20009mwsqvt4atneq","cmialsicb000dmwsqg5eqkaxs","cmialsicj000hmwsq40mk9gzx"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.980Z","deathDate":"1960-12-05","email":null,"fatherId":null,"fullName":"李秀英","gender":"FEMALE","generation":1,"generationName":null,"givenName":"秀英","id":"cmialsibv0007mwsq4wp2snri","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsibs0005mwsq43k4szij"],"spouseMotherName":null,"surname":"李","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.009Z"},"cmialsic20009mwsqvt4atneq":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"cmialsic4000bmwsqvbnwl254":{"address":null,"ancestralHome":"山东省青岛市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"小学教师,教书育人三十载。","birthDate":"1915-07-08","birthPlace":"山东省青岛市市南区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.988Z","deathDate":"1990-03-22","email":null,"fatherId":null,"fullName":"张淑贞","gender":"FEMALE","generation":2,"generationName":null,"givenName":"淑贞","id":"cmialsic4000bmwsqvbnwl254","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic20009mwsqvt4atneq"],"spouseMotherName":null,"surname":"张","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.053Z"},"cmialsicb000dmwsqg5eqkaxs":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在济南市立医院工作。","birthDate":"1918-11-12","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.995Z","deathDate":"1995-09-08","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建华","gender":"MALE","generation":2,"generationName":"建","givenName":"建华","id":"cmialsicb000dmwsqg5eqkaxs","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsice000fmwsqk6b8c4o9"],"spouseMotherName":null,"surname":"王","tags":["医生"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.055Z"},"cmialsice000fmwsqk6b8c4o9":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1920-03-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsidh000pmwsqf4yxde7e","cmialsidq000tmwsqgqrhn4yy","cmialsidt000vmwsq3qajvszo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.998Z","deathDate":"1998-11-15","email":null,"fatherId":null,"fullName":"赵玉兰","gender":"FEMALE","generation":2,"generationName":null,"givenName":"玉兰","id":"cmialsice000fmwsqk6b8c4o9","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicb000dmwsqg5eqkaxs"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.058Z"},"cmialsicj000hmwsq40mk9gzx":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"纺织女工,勤劳朴实。","birthDate":"1922-06-18","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.003Z","deathDate":"2005-02-10","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建英","gender":"FEMALE","generation":2,"generationName":"建","givenName":"建英","id":"cmialsicj000hmwsq40mk9gzx","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工人"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.003Z"},"cmialsics000jmwsqor0s7zo5":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"cmialsicx000lmwsqn3pf9oxl":{"address":null,"ancestralHome":"河北省石家庄市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"会计师,已退休。","birthDate":"1948-08-25","birthPlace":"河北省石家庄市长安区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.017Z","deathDate":null,"email":null,"fatherId":null,"fullName":"刘芳","gender":"FEMALE","generation":3,"generationName":null,"givenName":"芳","id":"cmialsicx000lmwsqn3pf9oxl","isLunarDate":false,"motherId":null,"phone":"13800138002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsics000jmwsqor0s7zo5"],"spouseMotherName":null,"surname":"刘","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.080Z"},"cmialside000nmwsqca5r0uer":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"cmialsidh000pmwsqf4yxde7e":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"cmialsidl000rmwsqs7g5i5bn":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1955-11-05","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.041Z","deathDate":null,"email":null,"fatherId":null,"fullName":"孙丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsidl000rmwsqs7g5i5bn","isLunarDate":false,"motherId":null,"phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidh000pmwsqf4yxde7e"],"spouseMotherName":null,"surname":"孙","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.085Z"},"cmialsidq000tmwsqgqrhn4yy":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"cmialsidt000vmwsq3qajvszo":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"cmialsie4000xmwsqks6c6leq":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"cmialsie5000zmwsqdixp49to":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1978-09-15","birthPlace":"江苏省南京市玄武区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.062Z","deathDate":null,"email":"chenjing@example.com","fatherId":null,"fullName":"陈静","gender":"FEMALE","generation":4,"generationName":null,"givenName":"静","id":"cmialsie5000zmwsqdixp49to","isLunarDate":false,"motherId":null,"phone":"13900139002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie4000xmwsqks6c6leq"],"spouseMotherName":null,"surname":"陈","tags":[],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.105Z"},"cmialsie90011mwsqjjemjwvo":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"cmialsieb0013mwsqm5gvz7nb":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"cmialsied0015mwsq5ra0dvh0":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"cmialsieg0017mwsq722tdoi2":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"cmialsiej0019mwsqlg217o0y":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"cmialsiek001bmwsq09fmj4pa":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"cmialsif0001dmwsqgl23oojn":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"cmialsif2001fmwsqgomgevuk":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"cmialsif5001hmwsq73qlvevi":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生。","birthDate":"2010-11-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.097Z","deathDate":null,"email":null,"fatherId":"cmialsie90011mwsqjjemjwvo","fullName":"王宇轩","gender":"MALE","generation":5,"generationName":"子","givenName":"宇轩","id":"cmialsif5001hmwsq73qlvevi","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.097Z"},"cmialsif8001jmwsqd0l63xdr":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2012-04-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.100Z","deathDate":null,"email":null,"fatherId":"cmialsieb0013mwsqm5gvz7nb","fullName":"王思远","gender":"MALE","generation":5,"generationName":"子","givenName":"思远","id":"cmialsif8001jmwsqd0l63xdr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.100Z"},"cmialsifa001lmwsqnn36n2vw":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2014-09-18","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.102Z","deathDate":null,"email":null,"fatherId":"cmialsied0015mwsq5ra0dvh0","fullName":"王雨萱","gender":"FEMALE","generation":5,"generationName":"子","givenName":"雨萱","id":"cmialsifa001lmwsqnn36n2vw","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.102Z"}},"rootId":"cmialsibs0005mwsq43k4szij"} currentTree: 王氏家族 isLoading: false -[00:12:06.634] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmialsibp0003mwsqddts8mnq -[00:12:06.634] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:12:06.634] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838434087} -[00:12:10.287] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmialsibp0003mwsqddts8mnq -[00:12:10.287] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:12:10.287] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838437792} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:11.869] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: cmialsibp0003mwsqddts8mnq -[00:12:11.869] Browser LOG FamilyContext - No treeId but has currentTree, skipping -[00:12:11.869] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763838439272} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:11.869] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsics000jmwsqor0s7zo5","cmialside000nmwsqca5r0uer"],"courtesyName":null,"createdAt":"2025-11-22T18:09:15.986Z","deathDate":"1985-06-15","email":null,"fatherId":"cmialsibs0005mwsq43k4szij","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmialsic20009mwsqvt4atneq","isLunarDate":false,"motherId":"cmialsibv0007mwsq4wp2snri","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsic4000bmwsqvbnwl254"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.051Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsie4000xmwsqks6c6leq","cmialsie90011mwsqjjemjwvo"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.012Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmialsics000jmwsqor0s7zo5","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsicx000lmwsqn3pf9oxl"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.078Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmialsif5001hmwsq73qlvevi"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.065Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmialsie90011mwsqjjemjwvo","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.107Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsieb0013mwsqm5gvz7nb"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.034Z","deathDate":null,"email":null,"fatherId":"cmialsic20009mwsqvt4atneq","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmialside000nmwsqca5r0uer","isLunarDate":false,"motherId":"cmialsic4000bmwsqvbnwl254","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.082Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsif8001jmwsqd0l63xdr"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.067Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmialside000nmwsqca5r0uer","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmialsieb0013mwsqm5gvz7nb","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.109Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmialsifa001lmwsqnn36n2vw"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.070Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmialsied0015mwsq5ra0dvh0","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.111Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsied0015mwsq5ra0dvh0","cmialsieg0017mwsq722tdoi2"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.037Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmialsidh000pmwsqf4yxde7e","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsidl000rmwsqs7g5i5bn"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.083Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.073Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmialsidh000pmwsqf4yxde7e","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmialsieg0017mwsq722tdoi2","isLunarDate":false,"motherId":"cmialsidl000rmwsqs7g5i5bn","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.073Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiej0019mwsqlg217o0y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.046Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmialsidq000tmwsqgqrhn4yy","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.086Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.075Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmialsidq000tmwsqgqrhn4yy","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmialsiej0019mwsqlg217o0y","isLunarDate":false,"motherId":null,"phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.075Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmialsiek001bmwsq09fmj4pa"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.049Z","deathDate":null,"email":null,"fatherId":"cmialsicb000dmwsqg5eqkaxs","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmialsidt000vmwsq3qajvszo","isLunarDate":false,"motherId":"cmialsice000fmwsqk6b8c4o9","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.088Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.077Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmialsidt000vmwsq3qajvszo","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmialsiek001bmwsq09fmj4pa","isLunarDate":false,"motherId":null,"phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.077Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.092Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmialsif0001dmwsqgl23oojn","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.092Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmialsif0001dmwsqgl23oojn","cmialsif2001fmwsqgomgevuk"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.060Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmialsics000jmwsqor0s7zo5","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmialsie4000xmwsqks6c6leq","isLunarDate":false,"motherId":"cmialsicx000lmwsqn3pf9oxl","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsie5000zmwsqdixp49to"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.103Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.095Z","deathDate":null,"email":null,"fatherId":"cmialsie4000xmwsqks6c6leq","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmialsif2001fmwsqgomgevuk","isLunarDate":false,"motherId":"cmialsie5000zmwsqdixp49to","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmialsibp0003mwsqddts8mnq","updatedAt":"2025-11-22T18:09:16.095Z"},"to":"山东省济南市高新区","year":2008}]} -[00:12:13.040] Browser WARN {} +[00:00:00.993] Server LOG ✓ Ready in 663ms +[00:00:04.323] Server LOG ○ Compiling /_not-found/page ... +[00:00:07.727] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:00:08.250] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:00:09.167] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:09.167] Browser LOG FamilyContext - No session, clearing data +[00:00:09.167] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:09.167] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:09.167] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:09.168] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:09.168] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:09.168] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:09.168] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:00:09.168] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:00:09.168] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:00:09.168] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855678507} +[00:00:10.909] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:10.910] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:10.910] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:10.910] Browser LOG FamilyContext - Loading tree: first +[00:00:10.910] Browser LOG FamilyContext - Fetching URL: /api/trees +[00:00:10.910] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:10.910] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:11.482] Browser LOG FamilyContext - Fetched tree: 虞氏家族 cmialsifl001nmwsqbi8bbu43 +[00:00:11.482] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true +[00:00:11.482] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 虞氏家族 isLoading: true +[00:00:12.829] Browser LOG FamilyContext - Loaded members: 27 +[00:00:12.829] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false +[00:00:12.829] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false +[00:00:12.829] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false +[00:00:12.829] Browser LOG Dashboard - treeData: {"members":{"cmialsifm001pmwsqsgcklf5n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"虞氏家族始祖,清末举人,民国时期从商。","birthDate":"1885-07-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.115Z","deathDate":"1960-11-15","email":null,"fatherId":null,"fullName":"虞文昌","gender":"MALE","generation":1,"generationName":"文","givenName":"文昌","id":"cmialsifm001pmwsqsgcklf5n","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifp001rmwsq5s2xsxhr"],"spouseMotherName":null,"surname":"虞","tags":["始祖","商人"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.133Z"},"cmialsifp001rmwsq5s2xsxhr":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大家闺秀,知书达理。","birthDate":"1888-02-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsifs001tmwsqy0n88sfo","cmialsify001xmwsqa1ue97ml","cmialsig30021mwsqz945qr0n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.117Z","deathDate":"1965-05-10","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":1,"generationName":null,"givenName":"婉仪","id":"cmialsifp001rmwsq5s2xsxhr","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifm001pmwsqsgcklf5n"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.134Z"},"cmialsifs001tmwsqy0n88sfo":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"大学教授,从事文学研究。","birthDate":"1915-09-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.121Z","deathDate":"1988-07-25","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国栋","gender":"MALE","generation":2,"generationName":"国","givenName":"国栋","id":"cmialsifs001tmwsqy0n88sfo","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifv001vmwsqnxum8gli"],"spouseMotherName":null,"surname":"虞","tags":["教授","学者"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.149Z"},"cmialsifv001vmwsqnxum8gli":{"address":null,"ancestralHome":"福建省福州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"中学教师,教授语文。","birthDate":"1920-04-18","birthPlace":"福建省福州市鼓楼区","burialPlace":null,"childrenIds":["cmialsig70023mwsqm6ju92n3","cmialsigc0027mwsqlela1p5m"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.123Z","deathDate":"1992-12-08","email":null,"fatherId":null,"fullName":"林雅芳","gender":"FEMALE","generation":2,"generationName":null,"givenName":"雅芳","id":"cmialsifv001vmwsqnxum8gli","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifs001tmwsqy0n88sfo"],"spouseMotherName":null,"surname":"林","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.150Z"},"cmialsify001xmwsqa1ue97ml":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在杭州市第一人民医院工作。","birthDate":"1918-06-20","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.126Z","deathDate":"1996-03-15","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国华","gender":"MALE","generation":2,"generationName":"国","givenName":"国华","id":"cmialsify001xmwsqa1ue97ml","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsifz001zmwsq8vds0s5f"],"spouseMotherName":null,"surname":"虞","tags":["医生"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.152Z"},"cmialsifz001zmwsq8vds0s5f":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,与丈夫在同一医院工作。","birthDate":"1922-08-10","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsigd0029mwsqcemnzmc3","cmialsigh002dmwsq3ulwjt9q","cmialsigj002fmwsq9m4813jg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.128Z","deathDate":"1999-11-20","email":null,"fatherId":null,"fullName":"周婉仪","gender":"FEMALE","generation":2,"generationName":null,"givenName":"婉仪","id":"cmialsifz001zmwsq8vds0s5f","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsify001xmwsqa1ue97ml"],"spouseMotherName":null,"surname":"周","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.154Z"},"cmialsig30021mwsqz945qr0n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在小学任教。","birthDate":"1925-12-05","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.131Z","deathDate":"2008-05-18","email":null,"fatherId":"cmialsifm001pmwsqsgcklf5n","fullName":"虞国英","gender":"FEMALE","generation":2,"generationName":"国","givenName":"国英","id":"cmialsig30021mwsqz945qr0n","isLunarDate":false,"motherId":"cmialsifp001rmwsq5s2xsxhr","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.131Z"},"cmialsig70023mwsqm6ju92n3":{"address":"浙江省杭州市西湖区文三路789号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1950-06-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.136Z","deathDate":null,"email":"yuxiaomei@example.com","fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓梅","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓梅","id":"cmialsig70023mwsqm6ju92n3","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig90025mwsq0536dvgi"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.173Z"},"cmialsig90025mwsq0536dvgi":{"address":null,"ancestralHome":"浙江省宁波市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,已退休。","birthDate":"1948-03-15","birthPlace":"浙江省宁波市海曙区","burialPlace":null,"childrenIds":["cmialsigr002hmwsqqh43hxfg","cmialsigx002lmwsqd40qlkvy"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.137Z","deathDate":null,"email":null,"fatherId":null,"fullName":"赵建平","gender":"MALE","generation":3,"generationName":null,"givenName":"建平","id":"cmialsig90025mwsq0536dvgi","isLunarDate":false,"motherId":null,"phone":"13700137002","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsig70023mwsqm6ju92n3"],"spouseMotherName":null,"surname":"赵","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.175Z"},"cmialsigc0027mwsqlela1p5m":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"建筑师,设计过多个知名建筑。","birthDate":"1953-11-20","birthPlace":"浙江省杭州市上城区","burialPlace":null,"childrenIds":["cmialsigy002nmwsqtglhuzyg"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.140Z","deathDate":null,"email":null,"fatherId":"cmialsifs001tmwsqy0n88sfo","fullName":"虞晓东","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓东","id":"cmialsigc0027mwsqlela1p5m","isLunarDate":false,"motherId":"cmialsifv001vmwsqnxum8gli","phone":"13700137003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["建筑师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.176Z"},"cmialsigd0029mwsqcemnzmc3":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1955-04-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.142Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓华","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓华","id":"cmialsigd0029mwsqcemnzmc3","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigf002bmwsq7gkjdq91"],"spouseMotherName":null,"surname":"虞","tags":["医生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.178Z"},"cmialsigf002bmwsq7gkjdq91":{"address":null,"ancestralHome":"江苏省南京市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"药剂师。","birthDate":"1958-09-15","birthPlace":"江苏省南京市鼓楼区","burialPlace":null,"childrenIds":["cmialsih1002pmwsqdve5cond","cmialsih3002rmwsqd1x4z9my"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.143Z","deathDate":null,"email":null,"fatherId":null,"fullName":"钱丽","gender":"FEMALE","generation":3,"generationName":null,"givenName":"丽","id":"cmialsigf002bmwsq7gkjdq91","isLunarDate":false,"motherId":null,"phone":"13700137005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigd0029mwsqcemnzmc3"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.179Z"},"cmialsigh002dmwsq3ulwjt9q":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1957-07-12","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih4002tmwsq1ykrbsq6"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.146Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓英","gender":"FEMALE","generation":3,"generationName":"晓","givenName":"晓英","id":"cmialsigh002dmwsq3ulwjt9q","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["护士","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.182Z"},"cmialsigj002fmwsq9m4813jg":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1959-12-25","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsih6002vmwsqwi40u3fs"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.147Z","deathDate":null,"email":null,"fatherId":"cmialsify001xmwsqa1ue97ml","fullName":"虞晓军","gender":"MALE","generation":3,"generationName":"晓","givenName":"晓军","id":"cmialsigj002fmwsq9m4813jg","isLunarDate":false,"motherId":"cmialsifz001zmwsq8vds0s5f","phone":"13700137007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.184Z"},"cmialsigr002hmwsqqh43hxfg":{"address":"浙江省杭州市滨江区江南大道321号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"律师,在知名律师事务所工作。","birthDate":"1980-11-08","birthPlace":"浙江省杭州市西湖区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.155Z","deathDate":null,"email":"yuyuxin@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨欣","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨欣","id":"cmialsigr002hmwsqqh43hxfg","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigu002jmwsq79bv66nn"],"spouseMotherName":null,"surname":"虞","tags":["律师","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.196Z"},"cmialsigu002jmwsq79bv66nn":{"address":null,"ancestralHome":"江苏省苏州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营进出口贸易公司。","birthDate":"1978-05-20","birthPlace":"江苏省苏州市姑苏区","burialPlace":null,"childrenIds":["cmialsihl002xmwsqndgl0wff","cmialsihn002zmwsqpo3cdy4n"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.158Z","deathDate":null,"email":"qianjunjie@example.com","fatherId":null,"fullName":"钱俊杰","gender":"MALE","generation":4,"generationName":null,"givenName":"俊杰","id":"cmialsigu002jmwsq79bv66nn","isLunarDate":false,"motherId":null,"phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmialsigr002hmwsqqh43hxfg"],"spouseMotherName":null,"surname":"钱","tags":[],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.198Z"},"cmialsigx002lmwsqd40qlkvy":{"address":"上海市黄浦区南京东路888号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1983-03-15","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":["cmialsihq0031mwsqu01j9j9r"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.161Z","deathDate":null,"email":"yuyuchen@example.com","fatherId":"cmialsig90025mwsq0536dvgi","fullName":"虞雨辰","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨辰","id":"cmialsigx002lmwsqd40qlkvy","isLunarDate":false,"motherId":"cmialsig70023mwsqm6ju92n3","phone":"13800138005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.199Z"},"cmialsigy002nmwsqtglhuzyg":{"address":"北京市朝阳区建国门外大街100号","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在科技公司工作。","birthDate":"1985-07-22","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":["cmialsihs0033mwsqnwnawfty"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.163Z","deathDate":null,"email":"yuyuxuan@example.com","fatherId":"cmialsigc0027mwsqlela1p5m","fullName":"虞雨轩","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨轩","id":"cmialsigy002nmwsqtglhuzyg","isLunarDate":false,"motherId":null,"phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["程序员","在世","北京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.201Z"},"cmialsih1002pmwsqdve5cond":{"address":"广东省深圳市福田区中心区","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"设计师,从事UI/UX设计工作。","birthDate":"1987-11-10","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmialsihu0035mwsqkkn5kd6y"],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.165Z","deathDate":null,"email":"yuyuting@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨婷","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨婷","id":"cmialsih1002pmwsqdve5cond","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["设计师","在世","深圳"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.202Z"},"cmialsih3002rmwsqd1x4z9my":{"address":"四川省成都市锦江区红星路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"文化工作者,在博物馆工作。","birthDate":"1989-04-18","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.167Z","deathDate":null,"email":"yuyuxuan2@example.com","fatherId":"cmialsigd0029mwsqcemnzmc3","fullName":"虞雨萱","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨萱","id":"cmialsih3002rmwsqd1x4z9my","isLunarDate":false,"motherId":"cmialsigf002bmwsq7gkjdq91","phone":"13800138008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["文化","在世","成都"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.167Z"},"cmialsih4002tmwsq1ykrbsq6":{"address":"江苏省南京市鼓楼区中山路","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1991-09-05","birthPlace":"江苏省南京市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.169Z","deathDate":null,"email":"yuyuhan@example.com","fatherId":"cmialsigh002dmwsq3ulwjt9q","fullName":"虞雨涵","gender":"FEMALE","generation":4,"generationName":"雨","givenName":"雨涵","id":"cmialsih4002tmwsq1ykrbsq6","isLunarDate":false,"motherId":null,"phone":"13800138009","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["教师","在世","南京"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.169Z"},"cmialsih6002vmwsqwi40u3fs":{"address":"浙江省宁波市海曙区天一广场","ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"企业家,经营贸易公司。","birthDate":"1993-12-20","birthPlace":"浙江省宁波市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.170Z","deathDate":null,"email":"yuyuze@example.com","fatherId":"cmialsigj002fmwsq9m4813jg","fullName":"虞雨泽","gender":"MALE","generation":4,"generationName":"雨","givenName":"雨泽","id":"cmialsih6002vmwsqwi40u3fs","isLunarDate":false,"motherId":null,"phone":"13800138010","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["企业家","在世","宁波"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.170Z"},"cmialsihl002xmwsqndgl0wff":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读中学生,品学兼优。","birthDate":"2008-08-08","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.185Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗涵","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗涵","id":"cmialsihl002xmwsqndgl0wff","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.185Z"},"cmialsihn002zmwsqpo3cdy4n":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2011-05-12","birthPlace":"浙江省杭州市滨江区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.187Z","deathDate":null,"email":null,"fatherId":"cmialsigu002jmwsq79bv66nn","fullName":"虞诗雅","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗雅","id":"cmialsihn002zmwsqpo3cdy4n","isLunarDate":false,"motherId":"cmialsigr002hmwsqqh43hxfg","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.187Z"},"cmialsihq0031mwsqu01j9j9r":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2013-09-20","birthPlace":"上海市黄浦区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.191Z","deathDate":null,"email":null,"fatherId":"cmialsigx002lmwsqd40qlkvy","fullName":"虞诗轩","gender":"MALE","generation":5,"generationName":"诗","givenName":"诗轩","id":"cmialsihq0031mwsqu01j9j9r","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.191Z"},"cmialsihs0033mwsqnwnawfty":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读小学生。","birthDate":"2015-11-08","birthPlace":"北京市朝阳区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.192Z","deathDate":null,"email":null,"fatherId":"cmialsigy002nmwsqtglhuzyg","fullName":"虞诗语","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗语","id":"cmialsihs0033mwsqnwnawfty","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.192Z"},"cmialsihu0035mwsqkkn5kd6y":{"address":null,"ancestralHome":"浙江省杭州市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"幼儿园学生。","birthDate":"2017-03-25","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-22T18:09:16.194Z","deathDate":null,"email":null,"fatherId":"cmialsih1002pmwsqdve5cond","fullName":"虞诗琪","gender":"FEMALE","generation":5,"generationName":"诗","givenName":"诗琪","id":"cmialsihu0035mwsqkkn5kd6y","isLunarDate":false,"motherId":null,"phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"虞","tags":["学生","在世"],"telephone":null,"treeId":"cmialsifl001nmwsqbi8bbu43","updatedAt":"2025-11-22T18:09:16.194Z"}},"rootId":"cmialsifm001pmwsqsgcklf5n"} currentTree: 虞氏家族 isLoading: false +[00:00:18.351] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:00:18.606] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:18.606] Browser LOG FamilyContext - No session, clearing data +[00:00:18.606] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:00:18.606] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:00:18.606] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:00:18.606] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855687946} +[00:00:24.719] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:00:24.769] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:24.769] Browser LOG FamilyContext - Loading tree: first +[00:00:24.769] Browser LOG FamilyContext - Fetching URL: /api/trees +[00:00:25.685] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:00:26.474] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:26.474] Browser LOG FamilyContext - No session, clearing data +[00:00:26.474] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.474] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:00:26.794] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:00:26.794] Browser LOG FamilyContext - Loading tree: first +[00:00:26.794] Browser LOG FamilyContext - Fetching URL: /api/trees +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:00:26.794] Browser LOG FamilyContext - Fetched tree: 李氏家族 cmiay1jsb00018400g23hhk2g +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:00:26.794] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:00:26.968] Browser LOG FamilyContext - Loaded members: 0 +[00:00:26.968] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:00:26.968] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:00:27.149] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:00:27.149] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:00:27.149] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:00:27.149] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:00:27.149] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855696489} +[00:01:05.805] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:01:06.262] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:01:06.468] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:01:06.609] Server LOG ✓ Compiled in 40.5s +[00:01:07.348] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:01:08.446] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:01:08.446] Browser LOG FamilyContext - No session, clearing data +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:08.446] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:01:08.446] Browser LOG FamilyContext - Loading tree: first +[00:01:08.446] Browser LOG FamilyContext - Fetching URL: /api/trees +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:08.446] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:08.765] Browser LOG FamilyContext - Fetched tree: 李氏家族 cmiay1jsb00018400g23hhk2g +[00:01:08.765] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:01:08.765] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:01:08.765] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855737820} +[00:01:08.765] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:01:08.765] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:01:09.025] Browser LOG FamilyContext - Loaded members: 0 +[00:01:09.025] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:09.025] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:09.025] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:09.025] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:25.469] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:01:26.255] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:01:27.097] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:01:27.097] Browser LOG FamilyContext - No session, clearing data +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:01:27.097] Browser LOG FamilyContext - Effect triggered, treeId: null currentTree: undefined +[00:01:27.097] Browser LOG FamilyContext - Loading tree: first +[00:01:27.097] Browser LOG FamilyContext - Fetching URL: /api/trees +[00:01:27.097] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:27.098] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:01:27.098] Browser LOG FamilyContext - Fetched tree: 李氏家族 cmiay1jsb00018400g23hhk2g +[00:01:27.098] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:01:27.098] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:01:27.098] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855756412} +[00:01:27.098] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:01:27.098] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:01:27.310] Browser LOG FamilyContext - Loaded members: 0 +[00:01:27.311] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:27.311] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:27.311] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:01:27.311] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:02:05.936] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:02:06.341] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:02:06.494] Server LOG Dashboard - treeData: {} "currentTree:" undefined "isLoading:" true +[00:02:06.604] Server LOG ✓ Compiled in 40.3s +[00:02:07.341] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.395] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.395] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: false +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: undefined isLoading: true +[00:02:08.396] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:02:08.396] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:02:08.396] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855797548} +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: true +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:02:08.396] Browser LOG Dashboard - treeData: {"members":{},"rootId":""} currentTree: 李氏家族 isLoading: false +[00:02:52.771] Server LOG ✓ Compiled in 45.3s +[00:02:53.462] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:02:54.120] Browser LOG Service Worker 注册成功: http://localhost:3000/ +[00:02:54.414] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:02:54.414] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:02:54.414] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855843724} +[00:04:00.727] Server LOG ✓ Compiled in 67.1s +[00:04:01.146] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:04:02.449] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:04:02.449] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:04:02.449] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855911767} +[00:04:05.903] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:04:07.116] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:04:07.116] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:04:07.116] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855916209} +[00:04:53.387] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:04:54.272] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:04:54.272] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:04:54.272] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855963613} +[00:05:28.753] Server LOG ✓ Compiled in 35.2s +[00:05:29.335] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:05:30.272] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:05:30.272] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:05:30.272] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763855999585} +[00:05:43.831] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:05:44.151] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:05:44.151] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:05:44.151] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856013494} +[00:05:49.527] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:05:50.648] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:05:50.648] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:05:50.648] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856019989} +[00:06:14.168] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:06:14.892] Server LOG ✓ Compiled in 25.3s +[00:06:15.450] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:06:16.786] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:06:16.786] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:06:16.787] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856045914} +[00:06:21.518] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:06:22.199] Server LOG ✓ Compiled in 6.5s +[00:06:24.215] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:06:24.215] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:06:24.215] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:06:24.215] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856052913} +[00:06:56.935] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:06:57.626] Server LOG ✓ Compiled in 33.4s +[00:06:58.387] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:06:59.267] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:06:59.267] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:06:59.267] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856088547} +[00:07:05.430] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:07:06.101] Server LOG ✓ Compiled in 7.6s +[00:07:06.852] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:07:07.974] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:07:07.974] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:07:07.974] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856097242} +[00:07:11.968] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:07:13.421] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:07:13.421] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:07:13.421] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856102626} +[00:07:17.887] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:07:18.868] Server LOG ✓ Compiled in 6.5s +[00:07:19.418] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:07:20.495] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:07:20.495] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:07:20.495] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856109783} +[00:07:22.741] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:07:22.999] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:07:22.999] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:07:22.999] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856112343} +[00:07:27.632] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:07:28.953] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:07:28.953] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:07:28.953] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856118212} +[00:08:34.382] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:08:35.197] Server LOG ✓ Compiled in 67.4s +[00:08:35.634] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:08:36.957] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:08:36.957] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:08:36.957] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856186288} +[00:08:41.776] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:08:42.711] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:08:42.711] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:08:42.711] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856192045} +[00:08:47.721] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:08:48.818] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:08:48.818] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:08:48.818] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856198134} +[00:08:54.447] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:08:54.684] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:08:54.684] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:08:54.684] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856204028} +[00:08:59.270] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:08:59.969] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:08:59.970] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:08:59.970] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856209275} +[00:09:26.855] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/context/family-context.tsx changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload +[00:09:28.289] Server LOG ✓ Compiled in 29s +[00:09:29.024] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:09:30.061] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:09:30.061] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:09:30.061] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856239342} +[00:09:43.127] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:09:43.614] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:09:43.614] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:09:43.614] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856252785} +[00:09:46.978] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:09:47.224] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:09:47.224] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:09:47.224] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856256567} +[00:09:50.807] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:09:52.160] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:09:52.160] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:09:52.160] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856261475} +[00:09:56.054] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:09:56.404] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:09:56.404] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/auth/signin","route":"/auth/signin"} +[00:09:56.404] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/auth/signin color: rgb(120, 120, 120) color: inherit {"dp":"/auth/signin","o":"http://localhost:3000/auth/signin","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856265747} +[00:09:59.613] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[00:10:00.471] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[00:10:00.471] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[00:10:00.471] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763856269775} diff --git a/.next/dev/prerender-manifest.json b/.next/dev/prerender-manifest.json index 276660ba..7e6002e2 100644 --- a/.next/dev/prerender-manifest.json +++ b/.next/dev/prerender-manifest.json @@ -4,8 +4,8 @@ "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { - "previewModeId": "13f36249686f2428aee453a0ea08bc07", - "previewModeSigningKey": "eee952d646d19063363749811756583b679725400d2ece12adde87b07508c2b0", - "previewModeEncryptionKey": "6edaff8c8b4128988964b3dda3c2c0af62b4b5e6c116c1398ec317476a08aa92" + "previewModeId": "4631a204ce723e800f00263195c44ce3", + "previewModeSigningKey": "dadcc4077c872061b58e6afb691e740140fdeb9b68ee82fd1bcb87d6796beeda", + "previewModeEncryptionKey": "235d5de33f0c49153f8cbd3bc440421c857db41004ed659e8d542c6e3ae3a45f" } } \ No newline at end of file diff --git a/.next/dev/server/app-paths-manifest.json b/.next/dev/server/app-paths-manifest.json index 83bbd03a..6b71446c 100644 --- a/.next/dev/server/app-paths-manifest.json +++ b/.next/dev/server/app-paths-manifest.json @@ -3,12 +3,7 @@ "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js", "/api/trees/[treeId]/activity-logs/route": "app/api/trees/[treeId]/activity-logs/route.js", "/api/trees/[treeId]/members/route": "app/api/trees/[treeId]/members/route.js", - "/api/trees/[treeId]/route": "app/api/trees/[treeId]/route.js", "/api/trees/route": "app/api/trees/route.js", "/auth/signin/page": "app/auth/signin/page.js", - "/members/page": "app/members/page.js", - "/page": "app/page.js", - "/settings/page": "app/settings/page.js", - "/timeline/page": "app/timeline/page.js", - "/tree/page": "app/tree/page.js" + "/page": "app/page.js" } \ No newline at end of file diff --git a/.next/dev/server/app/members/page_client-reference-manifest.js b/.next/dev/server/app/members/page_client-reference-manifest.js index 08601b12..77541853 100644 --- a/.next/dev/server/app/members/page_client-reference-manifest.js +++ b/.next/dev/server/app/members/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/members/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/a0629__pnpm_851cc132._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/a0629__pnpm_851cc132._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/f6bfd_@radix-ui_react-select_dist_index_mjs_9c1e4dbd._.js","server/chunks/ssr/a0629__pnpm_42c2c8a2._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/members/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/members/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","static/chunks/3032b_dexie_2a245be4._.js","static/chunks/f6bfd_@radix-ui_react-select_dist_index_mjs_f8eb705a._.js","static/chunks/a0629__pnpm_851cc132._.js","static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/members/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/a0629__pnpm_5cdb5b97._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/a0629__pnpm_5cdb5b97._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/f6bfd_@radix-ui_react-select_dist_index_mjs_9c1e4dbd._.js","server/chunks/ssr/a0629__pnpm_eb34667a._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/members/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/members/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_a8d8a8b5._.js","static/chunks/3032b_dexie_2a245be4._.js","static/chunks/f6bfd_@radix-ui_react-select_dist_index_mjs_f8eb705a._.js","static/chunks/a0629__pnpm_5cdb5b97._.js","static/chunks/Documents_go-new_chinese-family-tree_app_members_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/app/page_client-reference-manifest.js b/.next/dev/server/app/page_client-reference-manifest.js index 7be834c2..e36407e1 100644 --- a/.next/dev/server/app/page_client-reference-manifest.js +++ b/.next/dev/server/app/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","/_next/static/chunks/56139_zrender_lib_ce23e365._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_10a7987a._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_82e02d76._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","/_next/static/chunks/56139_zrender_lib_ce23e365._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_10a7987a._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_82e02d76._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/56139_zrender_lib_bbd9af0b._.js","server/chunks/ssr/f639c_echarts_lib_util_7d591056._.js","server/chunks/ssr/f639c_echarts_lib_model_8619dab4._.js","server/chunks/ssr/f639c_echarts_lib_label_2154af41._.js","server/chunks/ssr/f639c_echarts_lib_core_cfe67fda._.js","server/chunks/ssr/f639c_echarts_lib_scale_24594494._.js","server/chunks/ssr/f639c_echarts_lib_data_9995566d._.js","server/chunks/ssr/f639c_echarts_lib_component_tooltip_5ed04707._.js","server/chunks/ssr/f639c_echarts_lib_component_axis_b396a543._.js","server/chunks/ssr/f639c_echarts_lib_component_axisPointer_b28eba9c._.js","server/chunks/ssr/f639c_echarts_lib_component_helper_313c976c._.js","server/chunks/ssr/f639c_echarts_lib_component_dataZoom_daa2849c._.js","server/chunks/ssr/f639c_echarts_lib_component_toolbox_71b7621a._.js","server/chunks/ssr/f639c_echarts_lib_component_marker_7f218541._.js","server/chunks/ssr/f639c_echarts_lib_component_legend_ddc5b1fd._.js","server/chunks/ssr/f639c_echarts_lib_component_visualMap_eeee025f._.js","server/chunks/ssr/f639c_echarts_lib_component_e70d20b9._.js","server/chunks/ssr/f639c_echarts_lib_chart_helper_aba98b3f._.js","server/chunks/ssr/f639c_echarts_lib_chart_line_78021528._.js","server/chunks/ssr/f639c_echarts_lib_chart_bar_e1206ff2._.js","server/chunks/ssr/f639c_echarts_lib_chart_treemap_f192fb7f._.js","server/chunks/ssr/f639c_echarts_lib_chart_graph_2a6220e8._.js","server/chunks/ssr/f639c_echarts_lib_chart_74071391._.js","server/chunks/ssr/f639c_echarts_lib_coord_9c890c9f._.js","server/chunks/ssr/f639c_echarts_lib_eb7914f7._.js","server/chunks/ssr/f639c_echarts_index_0d533b7c.js","server/chunks/ssr/6cf7b_date-fns_ac18d4a6._.js","server/chunks/ssr/a0629__pnpm_0c13bb52._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","static/chunks/56139_zrender_lib_ce23e365._.js","static/chunks/f639c_echarts_lib_util_d4941c19._.js","static/chunks/f639c_echarts_lib_model_76b10339._.js","static/chunks/f639c_echarts_lib_label_1eda581d._.js","static/chunks/f639c_echarts_lib_core_83e874fa._.js","static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","static/chunks/f639c_echarts_lib_data_b614132d._.js","static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","static/chunks/f639c_echarts_lib_component_a60fa07b._.js","static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","static/chunks/f639c_echarts_lib_chart_1638f649._.js","static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","static/chunks/f639c_echarts_lib_10a7987a._.js","static/chunks/f639c_echarts_index_dade51e7.js","static/chunks/6cf7b_date-fns_9afb9098._.js","static/chunks/a0629__pnpm_82e02d76._.js","static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","/_next/static/chunks/56139_zrender_lib_ce23e365._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_10a7987a._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_5be43d20._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","/_next/static/chunks/56139_zrender_lib_ce23e365._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_10a7987a._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_5be43d20._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/56139_zrender_lib_bbd9af0b._.js","server/chunks/ssr/f639c_echarts_lib_util_7d591056._.js","server/chunks/ssr/f639c_echarts_lib_model_8619dab4._.js","server/chunks/ssr/f639c_echarts_lib_label_2154af41._.js","server/chunks/ssr/f639c_echarts_lib_core_cfe67fda._.js","server/chunks/ssr/f639c_echarts_lib_scale_24594494._.js","server/chunks/ssr/f639c_echarts_lib_data_9995566d._.js","server/chunks/ssr/f639c_echarts_lib_component_tooltip_5ed04707._.js","server/chunks/ssr/f639c_echarts_lib_component_axis_b396a543._.js","server/chunks/ssr/f639c_echarts_lib_component_axisPointer_b28eba9c._.js","server/chunks/ssr/f639c_echarts_lib_component_helper_313c976c._.js","server/chunks/ssr/f639c_echarts_lib_component_dataZoom_daa2849c._.js","server/chunks/ssr/f639c_echarts_lib_component_toolbox_71b7621a._.js","server/chunks/ssr/f639c_echarts_lib_component_marker_7f218541._.js","server/chunks/ssr/f639c_echarts_lib_component_legend_ddc5b1fd._.js","server/chunks/ssr/f639c_echarts_lib_component_visualMap_eeee025f._.js","server/chunks/ssr/f639c_echarts_lib_component_e70d20b9._.js","server/chunks/ssr/f639c_echarts_lib_chart_helper_aba98b3f._.js","server/chunks/ssr/f639c_echarts_lib_chart_line_78021528._.js","server/chunks/ssr/f639c_echarts_lib_chart_bar_e1206ff2._.js","server/chunks/ssr/f639c_echarts_lib_chart_treemap_f192fb7f._.js","server/chunks/ssr/f639c_echarts_lib_chart_graph_2a6220e8._.js","server/chunks/ssr/f639c_echarts_lib_chart_74071391._.js","server/chunks/ssr/f639c_echarts_lib_coord_9c890c9f._.js","server/chunks/ssr/f639c_echarts_lib_eb7914f7._.js","server/chunks/ssr/f639c_echarts_index_0d533b7c.js","server/chunks/ssr/6cf7b_date-fns_ac18d4a6._.js","server/chunks/ssr/a0629__pnpm_821b1201._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_1e6641b4._.js","static/chunks/56139_zrender_lib_ce23e365._.js","static/chunks/f639c_echarts_lib_util_d4941c19._.js","static/chunks/f639c_echarts_lib_model_76b10339._.js","static/chunks/f639c_echarts_lib_label_1eda581d._.js","static/chunks/f639c_echarts_lib_core_83e874fa._.js","static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","static/chunks/f639c_echarts_lib_data_b614132d._.js","static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","static/chunks/f639c_echarts_lib_component_a60fa07b._.js","static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","static/chunks/f639c_echarts_lib_chart_1638f649._.js","static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","static/chunks/f639c_echarts_lib_10a7987a._.js","static/chunks/f639c_echarts_index_dade51e7.js","static/chunks/6cf7b_date-fns_9afb9098._.js","static/chunks/a0629__pnpm_5be43d20._.js","static/chunks/Documents_go-new_chinese-family-tree_app_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/app/settings/page_client-reference-manifest.js b/.next/dev/server/app/settings/page_client-reference-manifest.js index 03b06071..44f8b730 100644 --- a/.next/dev/server/app/settings/page_client-reference-manifest.js +++ b/.next/dev/server/app/settings/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/settings/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_4727c407._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_4727c407._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/[root-of-the-server]__ef100adf._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/6cf7b_date-fns_ac18d4a6._.js","server/chunks/ssr/a0629__pnpm_45e242c6._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/settings/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/settings/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","static/chunks/3032b_dexie_2a245be4._.js","static/chunks/6cf7b_date-fns_9afb9098._.js","static/chunks/a0629__pnpm_4727c407._.js","static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/settings/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_2fc14ed4._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/6cf7b_date-fns_9afb9098._.js","/_next/static/chunks/a0629__pnpm_2fc14ed4._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/[root-of-the-server]__ef100adf._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/6cf7b_date-fns_ac18d4a6._.js","server/chunks/ssr/a0629__pnpm_060aad02._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/settings/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/settings/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_a34d25ed._.js","static/chunks/3032b_dexie_2a245be4._.js","static/chunks/6cf7b_date-fns_9afb9098._.js","static/chunks/a0629__pnpm_2fc14ed4._.js","static/chunks/Documents_go-new_chinese-family-tree_app_settings_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/app/timeline/page/react-loadable-manifest.json b/.next/dev/server/app/timeline/page/react-loadable-manifest.json index 9aa5904a..7dd75f2d 100644 --- a/.next/dev/server/app/timeline/page/react-loadable-manifest.json +++ b/.next/dev/server/app/timeline/page/react-loadable-manifest.json @@ -3,7 +3,7 @@ "id": "[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry)", "files": [ "static/chunks/a0629__pnpm_38e9b27f._.js", - "static/chunks/6bb63_echarts-for-react_esm_index_0544effb.js" + "static/chunks/6bb63_echarts-for-react_esm_index_d8b2520a.js" ] } } \ No newline at end of file diff --git a/.next/dev/server/app/timeline/page_client-reference-manifest.js b/.next/dev/server/app/timeline/page_client-reference-manifest.js index 42918569..2483d3e2 100644 --- a/.next/dev/server/app/timeline/page_client-reference-manifest.js +++ b/.next/dev/server/app/timeline/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/timeline/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/6bb63_echarts-for-react_esm_index_6200e388.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","/_next/static/chunks/56139_zrender_lib_dd4f683d._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_92e26ca0._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/a0629__pnpm_23714411._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/6bb63_echarts-for-react_esm_index_6200e388.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","/_next/static/chunks/56139_zrender_lib_dd4f683d._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_92e26ca0._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/a0629__pnpm_23714411._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js","server/chunks/ssr/4e98a_next_dist_51103463._.js","server/chunks/ssr/56139_zrender_lib_9e016c73._.js","server/chunks/ssr/f639c_echarts_lib_util_7d591056._.js","server/chunks/ssr/f639c_echarts_lib_model_8619dab4._.js","server/chunks/ssr/f639c_echarts_lib_label_2154af41._.js","server/chunks/ssr/f639c_echarts_lib_core_cfe67fda._.js","server/chunks/ssr/f639c_echarts_lib_scale_24594494._.js","server/chunks/ssr/f639c_echarts_lib_data_9995566d._.js","server/chunks/ssr/f639c_echarts_lib_component_tooltip_5ed04707._.js","server/chunks/ssr/f639c_echarts_lib_component_axis_b396a543._.js","server/chunks/ssr/f639c_echarts_lib_component_axisPointer_b28eba9c._.js","server/chunks/ssr/f639c_echarts_lib_component_helper_313c976c._.js","server/chunks/ssr/f639c_echarts_lib_component_dataZoom_daa2849c._.js","server/chunks/ssr/f639c_echarts_lib_component_toolbox_71b7621a._.js","server/chunks/ssr/f639c_echarts_lib_component_marker_7f218541._.js","server/chunks/ssr/f639c_echarts_lib_component_legend_ddc5b1fd._.js","server/chunks/ssr/f639c_echarts_lib_component_visualMap_eeee025f._.js","server/chunks/ssr/f639c_echarts_lib_component_e70d20b9._.js","server/chunks/ssr/f639c_echarts_lib_chart_helper_aba98b3f._.js","server/chunks/ssr/f639c_echarts_lib_chart_line_78021528._.js","server/chunks/ssr/f639c_echarts_lib_chart_bar_e1206ff2._.js","server/chunks/ssr/f639c_echarts_lib_chart_treemap_f192fb7f._.js","server/chunks/ssr/f639c_echarts_lib_chart_graph_2a6220e8._.js","server/chunks/ssr/f639c_echarts_lib_chart_74071391._.js","server/chunks/ssr/f639c_echarts_lib_coord_9c890c9f._.js","server/chunks/ssr/f639c_echarts_lib_cce0ee13._.js","server/chunks/ssr/f639c_echarts_index_0d533b7c.js","server/chunks/ssr/a0629__pnpm_18e001b0._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/timeline/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/timeline/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/6bb63_echarts-for-react_esm_index_6200e388.js","static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","static/chunks/56139_zrender_lib_dd4f683d._.js","static/chunks/f639c_echarts_lib_util_d4941c19._.js","static/chunks/f639c_echarts_lib_model_76b10339._.js","static/chunks/f639c_echarts_lib_label_1eda581d._.js","static/chunks/f639c_echarts_lib_core_83e874fa._.js","static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","static/chunks/f639c_echarts_lib_data_b614132d._.js","static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","static/chunks/f639c_echarts_lib_component_a60fa07b._.js","static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","static/chunks/f639c_echarts_lib_chart_1638f649._.js","static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","static/chunks/f639c_echarts_lib_92e26ca0._.js","static/chunks/f639c_echarts_index_dade51e7.js","static/chunks/a0629__pnpm_23714411._.js","static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/timeline/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/6bb63_echarts-for-react_esm_index_3324402a.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","/_next/static/chunks/56139_zrender_lib_dd4f683d._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_92e26ca0._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/a0629__pnpm_33ebaf08._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/6bb63_echarts-for-react_esm_index_3324402a.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","/_next/static/chunks/56139_zrender_lib_dd4f683d._.js","/_next/static/chunks/f639c_echarts_lib_util_d4941c19._.js","/_next/static/chunks/f639c_echarts_lib_model_76b10339._.js","/_next/static/chunks/f639c_echarts_lib_label_1eda581d._.js","/_next/static/chunks/f639c_echarts_lib_core_83e874fa._.js","/_next/static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","/_next/static/chunks/f639c_echarts_lib_data_b614132d._.js","/_next/static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","/_next/static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","/_next/static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","/_next/static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","/_next/static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","/_next/static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","/_next/static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","/_next/static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","/_next/static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","/_next/static/chunks/f639c_echarts_lib_component_a60fa07b._.js","/_next/static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","/_next/static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","/_next/static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","/_next/static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","/_next/static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","/_next/static/chunks/f639c_echarts_lib_chart_1638f649._.js","/_next/static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","/_next/static/chunks/f639c_echarts_lib_92e26ca0._.js","/_next/static/chunks/f639c_echarts_index_dade51e7.js","/_next/static/chunks/a0629__pnpm_33ebaf08._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js","server/chunks/ssr/4e98a_next_dist_51103463._.js","server/chunks/ssr/56139_zrender_lib_9e016c73._.js","server/chunks/ssr/f639c_echarts_lib_util_7d591056._.js","server/chunks/ssr/f639c_echarts_lib_model_8619dab4._.js","server/chunks/ssr/f639c_echarts_lib_label_2154af41._.js","server/chunks/ssr/f639c_echarts_lib_core_cfe67fda._.js","server/chunks/ssr/f639c_echarts_lib_scale_24594494._.js","server/chunks/ssr/f639c_echarts_lib_data_9995566d._.js","server/chunks/ssr/f639c_echarts_lib_component_tooltip_5ed04707._.js","server/chunks/ssr/f639c_echarts_lib_component_axis_b396a543._.js","server/chunks/ssr/f639c_echarts_lib_component_axisPointer_b28eba9c._.js","server/chunks/ssr/f639c_echarts_lib_component_helper_313c976c._.js","server/chunks/ssr/f639c_echarts_lib_component_dataZoom_daa2849c._.js","server/chunks/ssr/f639c_echarts_lib_component_toolbox_71b7621a._.js","server/chunks/ssr/f639c_echarts_lib_component_marker_7f218541._.js","server/chunks/ssr/f639c_echarts_lib_component_legend_ddc5b1fd._.js","server/chunks/ssr/f639c_echarts_lib_component_visualMap_eeee025f._.js","server/chunks/ssr/f639c_echarts_lib_component_e70d20b9._.js","server/chunks/ssr/f639c_echarts_lib_chart_helper_aba98b3f._.js","server/chunks/ssr/f639c_echarts_lib_chart_line_78021528._.js","server/chunks/ssr/f639c_echarts_lib_chart_bar_e1206ff2._.js","server/chunks/ssr/f639c_echarts_lib_chart_treemap_f192fb7f._.js","server/chunks/ssr/f639c_echarts_lib_chart_graph_2a6220e8._.js","server/chunks/ssr/f639c_echarts_lib_chart_74071391._.js","server/chunks/ssr/f639c_echarts_lib_coord_9c890c9f._.js","server/chunks/ssr/f639c_echarts_lib_cce0ee13._.js","server/chunks/ssr/f639c_echarts_index_0d533b7c.js","server/chunks/ssr/a0629__pnpm_cdc02691._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/timeline/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/timeline/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/6bb63_echarts-for-react_esm_index_3324402a.js","static/chunks/Documents_go-new_chinese-family-tree_60f4018e._.js","static/chunks/56139_zrender_lib_dd4f683d._.js","static/chunks/f639c_echarts_lib_util_d4941c19._.js","static/chunks/f639c_echarts_lib_model_76b10339._.js","static/chunks/f639c_echarts_lib_label_1eda581d._.js","static/chunks/f639c_echarts_lib_core_83e874fa._.js","static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js","static/chunks/f639c_echarts_lib_data_b614132d._.js","static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js","static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js","static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js","static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js","static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js","static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js","static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js","static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js","static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js","static/chunks/f639c_echarts_lib_component_a60fa07b._.js","static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js","static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js","static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js","static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js","static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js","static/chunks/f639c_echarts_lib_chart_1638f649._.js","static/chunks/f639c_echarts_lib_coord_8d85a72c._.js","static/chunks/f639c_echarts_lib_92e26ca0._.js","static/chunks/f639c_echarts_index_dade51e7.js","static/chunks/a0629__pnpm_33ebaf08._.js","static/chunks/Documents_go-new_chinese-family-tree_app_timeline_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/app/tree/page_client-reference-manifest.js b/.next/dev/server/app/tree/page_client-reference-manifest.js index 0f3e569c..41f29f37 100644 --- a/.next/dev/server/app/tree/page_client-reference-manifest.js +++ b/.next/dev/server/app/tree/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/tree/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_02fc5a2f.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","/_next/static/chunks/a0629__pnpm_9fa1b12f._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_02fc5a2f.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","/_next/static/chunks/a0629__pnpm_9fa1b12f._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/ffc37_dom-to-image-more_dist_dom-to-image-more_min_095bbe14.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/a0629__pnpm_9efe1d01._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/tree/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/tree/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_02fc5a2f.js","static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","static/chunks/a0629__pnpm_9fa1b12f._.js","static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/tree/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_14b311e5.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","/_next/static/chunks/a0629__pnpm_6e9d54d2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_14b311e5.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","/_next/static/chunks/a0629__pnpm_6e9d54d2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/ffc37_dom-to-image-more_dist_dom-to-image-more_min_095bbe14.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js","server/chunks/ssr/4e98a_next_dist_374b670d._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/a0629__pnpm_6201a08f._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/tree/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/tree/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/tree/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_14b311e5.js","static/chunks/Documents_go-new_chinese-family-tree_7d1d57f9._.js","static/chunks/a0629__pnpm_6e9d54d2._.js","static/chunks/Documents_go-new_chinese-family-tree_app_tree_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/app/trees/new/page_client-reference-manifest.js b/.next/dev/server/app/trees/new/page_client-reference-manifest.js index 0b168129..df1bcd36 100644 --- a/.next/dev/server/app/trees/new/page_client-reference-manifest.js +++ b/.next/dev/server/app/trees/new/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/trees/new/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","/_next/static/chunks/a0629__pnpm_21ba00f0._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","/_next/static/chunks/a0629__pnpm_21ba00f0._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js","server/chunks/ssr/a0629__pnpm_cdb85865._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","static/chunks/a0629__pnpm_21ba00f0._.js","static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"]}} +globalThis.__RSC_MANIFEST["/trees/new/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","/_next/static/chunks/a0629__pnpm_a4e106ad._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/a0629__pnpm_898888b1._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","/_next/static/chunks/a0629__pnpm_a4e106ad._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/a0629__pnpm_c45b22b1._.js","server/chunks/ssr/[root-of-the-server]__ea60cf26._.js","server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js","server/chunks/ssr/a0629__pnpm_831caac7._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/trees/new/page":["static/chunks/a0629__pnpm_898888b1._.js","static/chunks/Documents_go-new_chinese-family-tree_ecba5dbe._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_e64447ec._.js","static/chunks/a0629__pnpm_a4e106ad._.js","static/chunks/Documents_go-new_chinese-family-tree_app_trees_new_page_tsx_63cf687e._.js"]}} diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js index 33c0f31a..8a76f23f 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,6 +415,46 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { @@ -491,12 +533,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 172, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 171, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +546,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 174, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 170, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -526,25 +568,25 @@ function SiteHeader() { children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 182, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 183, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 181, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 180, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -555,12 +597,12 @@ function SiteHeader() { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 187, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 188, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -568,33 +610,60 @@ function SiteHeader() { setCurrentTree(tree); router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 198, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 201, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 204, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 199, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 190, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 217, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +674,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 222, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 218, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 186, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 179, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 169, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +711,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 231, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +720,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 237, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +729,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 240, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +738,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 243, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 230, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +758,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 250, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +769,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 251, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +790,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 271, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +798,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 272, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +810,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 275, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 270, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +827,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 277, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 269, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 268, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 263, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 261, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +856,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 290, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 249, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +874,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 297, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +882,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 298, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 296, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +902,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +910,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 304, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 302, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 301, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +930,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 310, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 309, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +952,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 317, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 318, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 316, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 315, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 314, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +993,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 325, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1001,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 326, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 324, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 331, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1030,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 334, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 335, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 333, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 332, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1064,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 340, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 341, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 339, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 322, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 313, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1099,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 347, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 346, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 248, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 168, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 167, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js.map index 0c655d20..65138c11 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_00350e25._.js.map @@ -5,11 +5,11 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, - {"offset": {"line": 1095, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport { db } from \"@/lib/db\"\nimport { CircleUser, CircleUserRound } from \"lucide-react\"\nimport type { Gender } from \"@/types/family\"\n\ninterface AvatarDisplayProps {\n imageId?: string\n fallbackUrl?: string\n fallbackText?: string\n gender?: Gender\n className?: string\n}\n\nexport function AvatarDisplay({ imageId, fallbackUrl, fallbackText, gender, className }: AvatarDisplayProps) {\n const [blobUrl, setBlobUrl] = useState(undefined)\n\n useEffect(() => {\n if (imageId) {\n db.images.get(imageId).then((image) => {\n if (image) {\n const url = URL.createObjectURL(image.blob)\n setBlobUrl(url)\n return () => URL.revokeObjectURL(url)\n }\n })\n } else {\n setBlobUrl(undefined)\n }\n }, [imageId])\n\n // 如果有头像,显示头像\n if (blobUrl) {\n return (\n \n \n {fallbackText}\n \n )\n }\n\n // 没有头像,显示性别图标\n return (\n \n \n {gender === 'female' ? (\n \n ) : (\n \n )}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AALA;;;;;;AAgBO,SAAS,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAsB;IACzG,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAqB;IAE3D,IAAA,wYAAS,EAAC;QACR,IAAI,SAAS;YACX,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC3B,IAAI,OAAO;oBACT,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI;oBAC1C,WAAW;oBACX,OAAO,IAAM,IAAI,eAAe,CAAC;gBACnC;YACF;QACF,OAAO;YACL,WAAW;QACb;IACF,GAAG;QAAC;KAAQ;IAEZ,aAAa;IACb,IAAI,SAAS;QACX,qBACE,oaAAC,4LAAM;YAAC,WAAW;;8BACjB,oaAAC,iMAAW;oBAAC,KAAK;;;;;;8BAClB,oaAAC,oMAAc;oBAAC,WAAU;8BAA+B;;;;;;;;;;;;IAG/D;IAEA,cAAc;IACd,qBACE,oaAAC,4LAAM;QAAC,WAAW;kBACjB,cAAA,oaAAC,oMAAc;YAAC,WAAU;sBACvB,WAAW,yBACV,oaAAC,8XAAe;gBAAC,WAAU;;;;;qCAE3B,oaAAC,2WAAU;gBAAC,WAAU;;;;;;;;;;;;;;;;AAKhC"}}, - {"offset": {"line": 1188, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps & {\n size?: 'sm' | 'default'\n}) {\n return (\n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAAA;AAAA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,OAAO,SAAS,EAChB,QAAQ,EACR,GAAG,OAGJ;IACC,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,aAAW;QACX,WAAW,IAAA,yKAAE,EACX,gzBACA;QAED,GAAG,KAAK;;YAER;0BACD,oaAAC,qbAAoB;gBAAC,OAAO;0BAC3B,cAAA,oaAAC,sXAAe;oBAAC,WAAU;;;;;;;;;;;;;;;;;AAInC;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,WAAW,QAAQ,EACnB,GAAG,OACkD;IACrD,qBACE,oaAAC,ubAAsB;kBACrB,cAAA,oaAAC,wbAAuB;YACtB,aAAU;YACV,WAAW,IAAA,yKAAE,EACX,ijBACA,aAAa,YACX,mIACF;YAEF,UAAU;YACT,GAAG,KAAK;;8BAET,oaAAC;;;;;8BACD,oaAAC,ybAAwB;oBACvB,WAAW,IAAA,yKAAE,EACX,OACA,aAAa,YACX;8BAGH;;;;;;8BAEH,oaAAC;;;;;;;;;;;;;;;;AAIT;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,6CAA6C;QAC1D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6aACA;QAED,GAAG,KAAK;;0BAET,oaAAC;gBAAK,WAAU;0BACd,cAAA,oaAAC,8bAA6B;8BAC5B,cAAA,oaAAC,gWAAS;wBAAC,WAAU;;;;;;;;;;;;;;;;0BAGzB,oaAAC,ybAAwB;0BAAE;;;;;;;;;;;;AAGjC;AAEA,SAAS,gBAAgB,EACvB,SAAS,EACT,GAAG,OACoD;IACvD,qBACE,oaAAC,0bAAyB;QACxB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iDAAiD;QAC9D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,qBAAqB,EAC5B,SAAS,EACT,GAAG,OACyD;IAC5D,qBACE,oaAAC,+bAA8B;QAC7B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,gXAAa;YAAC,WAAU;;;;;;;;;;;AAG/B;AAEA,SAAS,uBAAuB,EAC9B,SAAS,EACT,GAAG,OAC2D;IAC9D,qBACE,oaAAC,icAAgC;QAC/B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sXAAe;YAAC,WAAU;;;;;;;;;;;AAGjC"}}, - {"offset": {"line": 1421, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/slider.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SliderPrimitive from '@radix-ui/react-slider'\n\nimport { cn } from '@/lib/utils'\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max],\n )\n\n return (\n \n \n \n \n {Array.from({ length: _values.length }, (_, index) => (\n \n ))}\n \n )\n}\n\nexport { Slider }\n"],"names":[],"mappings":";;;;;AAEA;AACA;AAEA;AALA;;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,CAAC,EACP,MAAM,GAAG,EACT,GAAG,OAC+C;IAClD,MAAM,UAAU,sYAAa,CAC3B,IACE,MAAM,OAAO,CAAC,SACV,QACA,MAAM,OAAO,CAAC,gBACZ,eACA;YAAC;YAAK;SAAI,EAClB;QAAC;QAAO;QAAc;QAAK;KAAI;IAGjC,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,cAAc;QACd,OAAO;QACP,KAAK;QACL,KAAK;QACL,WAAW,IAAA,yKAAE,EACX,uOACA;QAED,GAAG,KAAK;;0BAET,oaAAC,sbAAqB;gBACpB,aAAU;gBACV,WACE;0BAGF,cAAA,oaAAC,sbAAqB;oBACpB,aAAU;oBACV,WACE;;;;;;;;;;;YAIL,MAAM,IAAI,CAAC;gBAAE,QAAQ,QAAQ,MAAM;YAAC,GAAG,CAAC,GAAG,sBAC1C,oaAAC,sbAAqB;oBACpB,aAAU;oBAEV,WAAU;mBADL;;;;;;;;;;;AAMf"}}, - {"offset": {"line": 1491, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1518, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useMemo, useEffect } from \"react\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useRouter } from \"next/navigation\"\nimport { Input } from \"@/components/ui/input\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport { Search, Plus, Filter, X } from \"lucide-react\"\nimport Link from \"next/link\"\nimport { AvatarDisplay } from \"@/components/ui/avatar-display\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { Label } from \"@/components/ui/label\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\"\n\nexport default function MembersPage() {\n const { treeData, searchMembers, setHighlightedMemberId } = useFamily()\n const router = useRouter()\n const [query, setQuery] = useState(\"\")\n const [showFilters, setShowFilters] = useState(false)\n \n // 从 URL 参数读取搜索关键词\n useEffect(() => {\n const params = new URLSearchParams(window.location.search)\n const searchParam = params.get('search')\n if (searchParam) {\n setQuery(searchParam)\n }\n }, [])\n\n // Filter States\n const [selectedSurname, setSelectedSurname] = useState(\"all\")\n const [selectedHome, setSelectedHome] = useState(\"all\")\n const [statusFilter, setStatusFilter] = useState(\"all\")\n const [generationRange, setGenerationRange] = useState<[number, number]>([1, 100])\n\n // Derived Data\n const allMembers = useMemo(() => Object.values(treeData.members), [treeData])\n\n const { uniqueSurnames, uniqueHomes, minGen, maxGen } = useMemo(() => {\n const surnames = new Set()\n const homes = new Set()\n let min = 1000\n let max = 0\n\n allMembers.forEach((m) => {\n if (m.surname) surnames.add(m.surname)\n if (m.ancestralHome) homes.add(m.ancestralHome)\n if (m.generation) {\n if (m.generation < min) min = m.generation\n if (m.generation > max) max = m.generation\n }\n })\n\n return {\n uniqueSurnames: Array.from(surnames).sort(),\n uniqueHomes: Array.from(homes).sort(),\n minGen: min === 1000 ? 1 : min,\n maxGen: max === 0 ? 100 : max,\n }\n }, [allMembers])\n\n // Initialize slider when data loads\n useMemo(() => {\n if (minGen !== 1000 && maxGen !== 0) {\n // Only update if range is default\n // This is a bit tricky, for now let's just rely on user adjustment or default wide range\n // Ideally we sync this once.\n }\n }, [minGen, maxGen])\n\n const filteredMembers = useMemo(() => {\n let result = allMembers\n\n // 1. Search Query\n if (query) {\n const lowerQuery = query.toLowerCase()\n result = result.filter(\n (m) =>\n m.fullName.toLowerCase().includes(lowerQuery) ||\n m.courtesyName?.toLowerCase().includes(lowerQuery) ||\n m.artName?.toLowerCase().includes(lowerQuery),\n )\n }\n\n // 2. Surname Filter\n if (selectedSurname !== \"all\") {\n result = result.filter((m) => m.surname === selectedSurname)\n }\n\n // 3. Home Filter\n if (selectedHome !== \"all\") {\n result = result.filter((m) => m.ancestralHome === selectedHome)\n }\n\n // 4. Status Filter\n if (statusFilter !== \"all\") {\n if (statusFilter === \"living\") {\n result = result.filter((m) => !m.deathDate)\n } else if (statusFilter === \"deceased\") {\n result = result.filter((m) => !!m.deathDate)\n }\n }\n\n // 5. Generation Filter\n result = result.filter((m) => m.generation >= generationRange[0] && m.generation <= generationRange[1])\n\n // Sort\n return result.sort((a, b) => a.generation - b.generation || (a.birthDate || \"\").localeCompare(b.birthDate || \"\"))\n }, [allMembers, query, selectedSurname, selectedHome, statusFilter, generationRange])\n \n // 按世代分组\n const membersByGeneration = useMemo(() => {\n const groups = new Map()\n \n filteredMembers.forEach(member => {\n const gen = member.generation\n if (!groups.has(gen)) {\n groups.set(gen, [])\n }\n groups.get(gen)!.push(member)\n })\n \n // 转换为数组并排序\n return Array.from(groups.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([generation, members]) => ({\n generation,\n members\n }))\n }, [filteredMembers])\n\n const clearFilters = () => {\n setSelectedSurname(\"all\")\n setSelectedHome(\"all\")\n setStatusFilter(\"all\")\n setGenerationRange([1, 100]) // Reset to wide range\n setQuery(\"\")\n }\n\n const activeFilterCount =\n (selectedSurname !== \"all\" ? 1 : 0) +\n (selectedHome !== \"all\" ? 1 : 0) +\n (statusFilter !== \"all\" ? 1 : 0) +\n (generationRange[0] > 1 || generationRange[1] < 100 ? 1 : 0)\n\n return (\n
\n \n
\n
\n
\n

家族成员列表

\n
\n
\n \n setQuery(e.target.value)}\n />\n
\n 0 ? \"secondary\" : \"outline\"}\n size=\"icon\"\n onClick={() => setShowFilters(!showFilters)}\n className=\"relative\"\n >\n \n {activeFilterCount > 0 && (\n \n )}\n \n \n \n \n
\n
\n\n {/* Filter Bar */}\n {showFilters && (\n
\n
\n

高级筛选

\n \n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n \n \n {generationRange[0]} - {generationRange[1]} 世\n \n
\n setGenerationRange(val as [number, number])}\n className=\"py-4\"\n />\n
\n
\n
\n )}\n
\n\n {filteredMembers.length === 0 ? (\n
\n 没有找到匹配的成员。\n
\n ) : (\n
\n {membersByGeneration.map(({ generation, members }) => (\n
\n
\n

第 {generation} 世

\n 共 {members.length} 人\n
\n
\n
\n {members.map((member) => (\n
\n \n \n \n \n
\n
\n

\n {member.fullName}\n {member.courtesyName && (\n \n 字 {member.courtesyName}\n \n )}\n

\n
\n

\n {member.generationName ? `字辈: ${member.generationName}` : \"未录入字辈\"}\n

\n

{member.ancestralHome || \"籍贯未知\"}

\n {(member.deathDate || member.tags?.length) && (\n
\n {member.deathDate && (\n \n 已故\n \n )}\n {member.tags?.map((tag) => (\n \n {tag}\n \n ))}\n
\n )}\n
\n
\n
\n \n {\n setHighlightedMemberId(member.id)\n router.push('/tree')\n }}\n title=\"在族谱图中定位\"\n >\n \n \n
\n ))}\n
\n
\n ))}\n
\n )}\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1131, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, + {"offset": {"line": 1164, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport { db } from \"@/lib/db\"\nimport { CircleUser, CircleUserRound } from \"lucide-react\"\nimport type { Gender } from \"@/types/family\"\n\ninterface AvatarDisplayProps {\n imageId?: string\n fallbackUrl?: string\n fallbackText?: string\n gender?: Gender\n className?: string\n}\n\nexport function AvatarDisplay({ imageId, fallbackUrl, fallbackText, gender, className }: AvatarDisplayProps) {\n const [blobUrl, setBlobUrl] = useState(undefined)\n\n useEffect(() => {\n if (imageId) {\n db.images.get(imageId).then((image) => {\n if (image) {\n const url = URL.createObjectURL(image.blob)\n setBlobUrl(url)\n return () => URL.revokeObjectURL(url)\n }\n })\n } else {\n setBlobUrl(undefined)\n }\n }, [imageId])\n\n // 如果有头像,显示头像\n if (blobUrl) {\n return (\n \n \n {fallbackText}\n \n )\n }\n\n // 没有头像,显示性别图标\n return (\n \n \n {gender === 'female' ? (\n \n ) : (\n \n )}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AALA;;;;;;AAgBO,SAAS,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAsB;IACzG,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAqB;IAE3D,IAAA,wYAAS,EAAC;QACR,IAAI,SAAS;YACX,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC3B,IAAI,OAAO;oBACT,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI;oBAC1C,WAAW;oBACX,OAAO,IAAM,IAAI,eAAe,CAAC;gBACnC;YACF;QACF,OAAO;YACL,WAAW;QACb;IACF,GAAG;QAAC;KAAQ;IAEZ,aAAa;IACb,IAAI,SAAS;QACX,qBACE,oaAAC,4LAAM;YAAC,WAAW;;8BACjB,oaAAC,iMAAW;oBAAC,KAAK;;;;;;8BAClB,oaAAC,oMAAc;oBAAC,WAAU;8BAA+B;;;;;;;;;;;;IAG/D;IAEA,cAAc;IACd,qBACE,oaAAC,4LAAM;QAAC,WAAW;kBACjB,cAAA,oaAAC,oMAAc;YAAC,WAAU;sBACvB,WAAW,yBACV,oaAAC,8XAAe;gBAAC,WAAU;;;;;qCAE3B,oaAAC,2WAAU;gBAAC,WAAU;;;;;;;;;;;;;;;;AAKhC"}}, + {"offset": {"line": 1257, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps & {\n size?: 'sm' | 'default'\n}) {\n return (\n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAAA;AAAA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,OAAO,SAAS,EAChB,QAAQ,EACR,GAAG,OAGJ;IACC,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,aAAW;QACX,WAAW,IAAA,yKAAE,EACX,gzBACA;QAED,GAAG,KAAK;;YAER;0BACD,oaAAC,qbAAoB;gBAAC,OAAO;0BAC3B,cAAA,oaAAC,sXAAe;oBAAC,WAAU;;;;;;;;;;;;;;;;;AAInC;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,WAAW,QAAQ,EACnB,GAAG,OACkD;IACrD,qBACE,oaAAC,ubAAsB;kBACrB,cAAA,oaAAC,wbAAuB;YACtB,aAAU;YACV,WAAW,IAAA,yKAAE,EACX,ijBACA,aAAa,YACX,mIACF;YAEF,UAAU;YACT,GAAG,KAAK;;8BAET,oaAAC;;;;;8BACD,oaAAC,ybAAwB;oBACvB,WAAW,IAAA,yKAAE,EACX,OACA,aAAa,YACX;8BAGH;;;;;;8BAEH,oaAAC;;;;;;;;;;;;;;;;AAIT;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,6CAA6C;QAC1D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6aACA;QAED,GAAG,KAAK;;0BAET,oaAAC;gBAAK,WAAU;0BACd,cAAA,oaAAC,8bAA6B;8BAC5B,cAAA,oaAAC,gWAAS;wBAAC,WAAU;;;;;;;;;;;;;;;;0BAGzB,oaAAC,ybAAwB;0BAAE;;;;;;;;;;;;AAGjC;AAEA,SAAS,gBAAgB,EACvB,SAAS,EACT,GAAG,OACoD;IACvD,qBACE,oaAAC,0bAAyB;QACxB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iDAAiD;QAC9D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,qBAAqB,EAC5B,SAAS,EACT,GAAG,OACyD;IAC5D,qBACE,oaAAC,+bAA8B;QAC7B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,gXAAa;YAAC,WAAU;;;;;;;;;;;AAG/B;AAEA,SAAS,uBAAuB,EAC9B,SAAS,EACT,GAAG,OAC2D;IAC9D,qBACE,oaAAC,icAAgC;QAC/B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sXAAe;YAAC,WAAU;;;;;;;;;;;AAGjC"}}, + {"offset": {"line": 1490, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/slider.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SliderPrimitive from '@radix-ui/react-slider'\n\nimport { cn } from '@/lib/utils'\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max],\n )\n\n return (\n \n \n \n \n {Array.from({ length: _values.length }, (_, index) => (\n \n ))}\n \n )\n}\n\nexport { Slider }\n"],"names":[],"mappings":";;;;;AAEA;AACA;AAEA;AALA;;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,CAAC,EACP,MAAM,GAAG,EACT,GAAG,OAC+C;IAClD,MAAM,UAAU,sYAAa,CAC3B,IACE,MAAM,OAAO,CAAC,SACV,QACA,MAAM,OAAO,CAAC,gBACZ,eACA;YAAC;YAAK;SAAI,EAClB;QAAC;QAAO;QAAc;QAAK;KAAI;IAGjC,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,cAAc;QACd,OAAO;QACP,KAAK;QACL,KAAK;QACL,WAAW,IAAA,yKAAE,EACX,uOACA;QAED,GAAG,KAAK;;0BAET,oaAAC,sbAAqB;gBACpB,aAAU;gBACV,WACE;0BAGF,cAAA,oaAAC,sbAAqB;oBACpB,aAAU;oBACV,WACE;;;;;;;;;;;YAIL,MAAM,IAAI,CAAC;gBAAE,QAAQ,QAAQ,MAAM;YAAC,GAAG,CAAC,GAAG,sBAC1C,oaAAC,sbAAqB;oBACpB,aAAU;oBAEV,WAAU;mBADL;;;;;;;;;;;AAMf"}}, + {"offset": {"line": 1560, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1587, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useMemo, useEffect } from \"react\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useRouter } from \"next/navigation\"\nimport { Input } from \"@/components/ui/input\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport { Search, Plus, Filter, X } from \"lucide-react\"\nimport Link from \"next/link\"\nimport { AvatarDisplay } from \"@/components/ui/avatar-display\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { Slider } from \"@/components/ui/slider\"\nimport { Label } from \"@/components/ui/label\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\"\n\nexport default function MembersPage() {\n const { treeData, searchMembers, setHighlightedMemberId } = useFamily()\n const router = useRouter()\n const [query, setQuery] = useState(\"\")\n const [showFilters, setShowFilters] = useState(false)\n \n // 从 URL 参数读取搜索关键词\n useEffect(() => {\n const params = new URLSearchParams(window.location.search)\n const searchParam = params.get('search')\n if (searchParam) {\n setQuery(searchParam)\n }\n }, [])\n\n // Filter States\n const [selectedSurname, setSelectedSurname] = useState(\"all\")\n const [selectedHome, setSelectedHome] = useState(\"all\")\n const [statusFilter, setStatusFilter] = useState(\"all\")\n const [generationRange, setGenerationRange] = useState<[number, number]>([1, 100])\n\n // Derived Data\n const allMembers = useMemo(() => Object.values(treeData.members), [treeData])\n\n const { uniqueSurnames, uniqueHomes, minGen, maxGen } = useMemo(() => {\n const surnames = new Set()\n const homes = new Set()\n let min = 1000\n let max = 0\n\n allMembers.forEach((m) => {\n if (m.surname) surnames.add(m.surname)\n if (m.ancestralHome) homes.add(m.ancestralHome)\n if (m.generation) {\n if (m.generation < min) min = m.generation\n if (m.generation > max) max = m.generation\n }\n })\n\n return {\n uniqueSurnames: Array.from(surnames).sort(),\n uniqueHomes: Array.from(homes).sort(),\n minGen: min === 1000 ? 1 : min,\n maxGen: max === 0 ? 100 : max,\n }\n }, [allMembers])\n\n // Initialize slider when data loads\n useMemo(() => {\n if (minGen !== 1000 && maxGen !== 0) {\n // Only update if range is default\n // This is a bit tricky, for now let's just rely on user adjustment or default wide range\n // Ideally we sync this once.\n }\n }, [minGen, maxGen])\n\n const filteredMembers = useMemo(() => {\n let result = allMembers\n\n // 1. Search Query\n if (query) {\n const lowerQuery = query.toLowerCase()\n result = result.filter(\n (m) =>\n m.fullName.toLowerCase().includes(lowerQuery) ||\n m.courtesyName?.toLowerCase().includes(lowerQuery) ||\n m.artName?.toLowerCase().includes(lowerQuery),\n )\n }\n\n // 2. Surname Filter\n if (selectedSurname !== \"all\") {\n result = result.filter((m) => m.surname === selectedSurname)\n }\n\n // 3. Home Filter\n if (selectedHome !== \"all\") {\n result = result.filter((m) => m.ancestralHome === selectedHome)\n }\n\n // 4. Status Filter\n if (statusFilter !== \"all\") {\n if (statusFilter === \"living\") {\n result = result.filter((m) => !m.deathDate)\n } else if (statusFilter === \"deceased\") {\n result = result.filter((m) => !!m.deathDate)\n }\n }\n\n // 5. Generation Filter\n result = result.filter((m) => m.generation >= generationRange[0] && m.generation <= generationRange[1])\n\n // Sort\n return result.sort((a, b) => a.generation - b.generation || (a.birthDate || \"\").localeCompare(b.birthDate || \"\"))\n }, [allMembers, query, selectedSurname, selectedHome, statusFilter, generationRange])\n \n // 按世代分组\n const membersByGeneration = useMemo(() => {\n const groups = new Map()\n \n filteredMembers.forEach(member => {\n const gen = member.generation\n if (!groups.has(gen)) {\n groups.set(gen, [])\n }\n groups.get(gen)!.push(member)\n })\n \n // 转换为数组并排序\n return Array.from(groups.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([generation, members]) => ({\n generation,\n members\n }))\n }, [filteredMembers])\n\n const clearFilters = () => {\n setSelectedSurname(\"all\")\n setSelectedHome(\"all\")\n setStatusFilter(\"all\")\n setGenerationRange([1, 100]) // Reset to wide range\n setQuery(\"\")\n }\n\n const activeFilterCount =\n (selectedSurname !== \"all\" ? 1 : 0) +\n (selectedHome !== \"all\" ? 1 : 0) +\n (statusFilter !== \"all\" ? 1 : 0) +\n (generationRange[0] > 1 || generationRange[1] < 100 ? 1 : 0)\n\n return (\n
\n \n
\n
\n
\n

家族成员列表

\n
\n
\n \n setQuery(e.target.value)}\n />\n
\n 0 ? \"secondary\" : \"outline\"}\n size=\"icon\"\n onClick={() => setShowFilters(!showFilters)}\n className=\"relative\"\n >\n \n {activeFilterCount > 0 && (\n \n )}\n \n \n \n \n
\n
\n\n {/* Filter Bar */}\n {showFilters && (\n
\n
\n

高级筛选

\n \n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n \n \n {generationRange[0]} - {generationRange[1]} 世\n \n
\n setGenerationRange(val as [number, number])}\n className=\"py-4\"\n />\n
\n
\n
\n )}\n
\n\n {filteredMembers.length === 0 ? (\n
\n 没有找到匹配的成员。\n
\n ) : (\n
\n {membersByGeneration.map(({ generation, members }) => (\n
\n
\n

第 {generation} 世

\n 共 {members.length} 人\n
\n
\n
\n {members.map((member) => (\n
\n \n \n \n \n
\n
\n

\n {member.fullName}\n {member.courtesyName && (\n \n 字 {member.courtesyName}\n \n )}\n

\n
\n

\n {member.generationName ? `字辈: ${member.generationName}` : \"未录入字辈\"}\n

\n

{member.ancestralHome || \"籍贯未知\"}

\n {(member.deathDate || member.tags?.length) && (\n
\n {member.deathDate && (\n \n 已故\n \n )}\n {member.tags?.map((tag) => (\n \n {tag}\n \n ))}\n
\n )}\n
\n
\n
\n \n {\n setHighlightedMemberId(member.id)\n router.push('/tree')\n }}\n title=\"在族谱图中定位\"\n >\n \n \n
\n ))}\n
\n
\n ))}\n
\n )}\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js index 034ed7cb..3bf93ac7 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,6 +415,46 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { @@ -491,12 +533,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 172, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 171, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +546,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 174, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 170, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -526,25 +568,25 @@ function SiteHeader() { children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 182, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 183, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 181, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 180, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -555,12 +597,12 @@ function SiteHeader() { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 187, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 188, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -568,33 +610,60 @@ function SiteHeader() { setCurrentTree(tree); router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 198, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 201, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 204, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 199, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 190, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 217, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +674,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 222, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 218, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 186, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 179, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 169, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +711,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 231, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +720,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 237, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +729,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 240, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +738,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 243, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 230, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +758,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 250, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +769,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 251, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +790,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 271, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +798,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 272, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +810,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 275, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 270, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +827,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 277, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 269, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 268, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 263, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 261, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +856,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 290, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 249, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +874,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 297, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +882,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 298, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 296, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +902,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +910,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 304, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 302, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 301, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +930,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 310, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 309, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +952,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 317, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 318, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 316, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 315, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 314, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +993,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 325, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1001,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 326, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 324, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 331, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1030,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 334, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 335, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 333, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 332, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1064,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 340, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 341, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 339, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 322, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 313, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1099,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 347, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 346, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 248, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 168, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 167, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js.map index 2795ce2d..2b2d56b5 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_0edab502._.js.map @@ -5,8 +5,8 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/tabs.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,KAAK,EACZ,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,SAAS,EAChB,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uGACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,mqBACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1128, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, - {"offset": {"line": 1198, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/timeline/page.tsx"],"sourcesContent":["\"use client\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Clock, Map as MapIcon, ArrowRight } from \"lucide-react\"\nimport dynamic from 'next/dynamic'\nimport { useMemo, useEffect, useState } from 'react'\nimport * as echarts from 'echarts'\n\nconst ReactECharts = dynamic(() => import('echarts-for-react'), { ssr: false })\n\n// 中国地图 GeoJSON 数据 - 完整的轮廓\nconst chinaGeoJSON = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n properties: { name: \"中国\" },\n geometry: {\n type: \"MultiPolygon\",\n coordinates: [\n [\n [\n // 中国大陆完整轮廓 - 从东北开始逆时针\n [134.5, 48.5], [135, 47], [134, 45], [133, 43], [131, 42], [130, 43], [129, 44],\n [128, 45], [127, 46], [126, 47], [125, 48], [124, 49], [123.5, 50], [123, 51],\n [122.5, 52], [122, 53], [121, 53.5], [120, 53.3], [119, 53], [118.5, 52],\n [119, 51], [119.5, 50], [120, 49], [121, 48], [122, 47], [123, 46], [124, 45],\n [125, 44], [126, 43], [127, 42.5], [128, 42], [129, 41.5], [130, 41],\n // 东部海岸线\n [130, 40], [129, 39], [128, 38.5], [127, 38], [126, 37.5], [125, 37],\n [124, 36.5], [123, 36], [122.5, 35.5], [122, 35], [121.5, 34.5], [121, 34],\n [120.5, 33.5], [120, 33], [119.5, 32.5], [119.5, 32], [120, 31.5], [120.5, 31],\n [121, 30.5], [121.5, 30], [122, 29.5], [122, 29], [121.5, 28.5], [121, 28],\n [120.5, 27.5], [120, 27], [119.5, 26.5], [119, 26], [118.5, 25.5], [118, 25],\n [117.5, 24.5], [117, 24], [116.5, 23.5], [116, 23], [115.5, 22.5], [115, 22],\n [114, 21.8], [113, 21.5], [112, 21.3], [111, 21.2], [110.5, 21],\n // 南部边界\n [110, 20.5], [109.5, 20], [109, 20.5], [108.5, 21], [108, 21.5], [107.5, 22],\n [107, 22.5], [106.5, 23], [106, 23.5], [105.5, 24], [105, 24.5], [104.5, 25],\n [104, 25.5], [103.5, 26], [103, 26.5], [102.5, 27], [102, 27.5], [101.5, 28],\n [101, 28.5], [100.5, 29], [100, 29.5], [99.5, 30], [99, 30.5], [98.5, 31],\n [98, 31.5], [97.5, 32], [97, 32.5],\n // 西南边界\n [96.5, 33], [96, 33.5], [95.5, 34], [95, 34.5], [94.5, 35], [94, 35.5],\n [93.5, 36], [93, 36.5], [92.5, 37], [92, 37.5], [91.5, 38], [91, 38.5],\n [90.5, 39], [90, 39.5], [89.5, 40], [89, 40.5], [88.5, 41], [88, 41.5],\n [87.5, 42], [87, 42.5], [86.5, 43], [86, 43.5], [85.5, 44], [85, 44.5],\n [84.5, 45], [84, 45.5], [83.5, 46], [83, 46.5], [82.5, 47], [82, 47.5],\n [81.5, 48], [81, 48.5], [80.5, 49], [80, 49.5],\n // 西北边界\n [79.5, 49.5], [79, 49.3], [78.5, 49], [78, 48.5], [77.5, 48], [77, 47.5],\n [76.5, 47], [76, 46.5], [75.5, 46], [75, 45.5], [74.5, 45], [74, 44.5],\n [73.5, 44], [73.5, 43.5], [74, 43], [74.5, 42.5], [75, 42], [75.5, 41.5],\n [76, 41], [76.5, 40.5], [77, 40], [77.5, 39.5], [78, 39], [78.5, 38.5],\n [79, 38.5], [79.5, 39], [80, 39.5], [80.5, 40], [81, 40.5], [81.5, 41],\n [82, 41.5], [82.5, 42], [83, 42.5], [83.5, 43], [84, 43.5], [84.5, 44],\n [85, 44.5], [85.5, 45], [86, 45.5], [86.5, 46], [87, 46.5], [87.5, 47],\n [88, 47.5], [88.5, 48], [89, 48.5], [89.5, 49], [90, 49.5], [90.5, 50],\n [91, 50.5], [91.5, 51], [92, 51.5], [92.5, 52], [93, 52.5], [93.5, 53],\n // 北部边界\n [94, 53], [95, 52.8], [96, 52.5], [97, 52.2], [98, 52], [99, 51.8],\n [100, 51.5], [101, 51.2], [102, 51], [103, 50.8], [104, 50.5], [105, 50.2],\n [106, 50], [107, 49.8], [108, 49.5], [109, 49.3], [110, 49.2], [111, 49.1],\n [112, 49], [113, 48.9], [114, 48.8], [115, 48.7], [116, 48.6], [117, 48.5],\n [118, 48.5], [119, 48.5], [120, 48.6], [121, 48.7], [122, 48.8], [123, 48.9],\n [124, 49], [125, 49.1], [126, 49.2], [127, 49.3], [128, 49.4], [129, 49.5],\n [130, 49.5], [131, 49.4], [132, 49.2], [133, 49], [134, 48.8], [134.5, 48.5]\n ]\n ],\n // 海南岛\n [[[108.6, 18.5], [109.5, 18.3], [110.5, 18.5], [111, 19], [111, 19.5], [110.5, 20], [109.5, 20.2], [108.6, 20], [108.2, 19.5], [108.6, 18.5]]],\n // 台湾岛\n [[[120, 22], [120.5, 21.9], [121, 22], [121.5, 22.5], [122, 23], [122, 23.5], [122, 24], [121.8, 24.5], [121.5, 25], [121, 25.2], [120.5, 25.1], [120.2, 24.8], [120, 24.5], [120, 24], [120, 23.5], [120, 23], [120, 22.5], [120, 22]]]\n ]\n }\n }\n ]\n}\n\n// 主要城市坐标(包含1、2、3线城市)\nconst geoCoordMap: Record = {\n // 一线城市\n '北京': [116.46, 39.92],\n '上海': [121.48, 31.22],\n '广州': [113.23, 23.16],\n '深圳': [114.07, 22.62],\n \n // 新一线城市\n '成都': [104.06, 30.67],\n '杭州': [120.19, 30.26],\n '重庆': [106.55, 29.56],\n '西安': [108.95, 34.27],\n '苏州': [120.62, 31.32],\n '武汉': [114.31, 30.52],\n '南京': [118.78, 32.04],\n '天津': [117.20, 39.13],\n '郑州': [113.65, 34.76],\n '长沙': [112.94, 28.23],\n '东莞': [113.75, 23.05],\n '沈阳': [123.43, 41.80],\n '青岛': [120.38, 36.07],\n '合肥': [117.27, 31.86],\n '佛山': [113.12, 23.02],\n \n // 二线城市\n '昆明': [102.73, 25.04],\n '福州': [119.30, 26.08],\n '无锡': [120.29, 31.57],\n '厦门': [118.10, 24.46],\n '哈尔滨': [126.63, 45.75],\n '长春': [125.35, 43.88],\n '南昌': [115.89, 28.68],\n '济南': [117.12, 36.65],\n '宁波': [121.55, 29.87],\n '大连': [121.62, 38.91],\n '贵阳': [106.71, 26.57],\n '温州': [120.67, 28.00],\n '石家庄': [114.52, 38.05],\n '泉州': [118.58, 24.93],\n '南宁': [108.33, 22.84],\n '金华': [119.65, 29.08],\n '常州': [119.95, 31.79],\n '珠海': [113.52, 22.30],\n '惠州': [114.42, 23.09],\n '嘉兴': [120.76, 30.77],\n '南通': [120.86, 32.01],\n '中山': [113.38, 22.52],\n '保定': [115.48, 38.85],\n '太原': [112.55, 37.87],\n '兰州': [103.79, 36.06],\n '台州': [121.43, 28.66],\n \n // 三线城市\n '乌鲁木齐': [87.68, 43.77],\n '绍兴': [120.58, 30.03],\n '廊坊': [116.70, 39.54],\n '洛阳': [112.45, 34.62],\n '威海': [122.12, 37.52],\n '盐城': [120.13, 33.38],\n '临沂': [118.35, 35.05],\n '江门': [113.08, 22.61],\n '汕头': [116.69, 23.39],\n '泰州': [119.90, 32.49],\n '漳州': [117.65, 24.52],\n '邯郸': [114.47, 36.60],\n '济宁': [116.59, 35.38],\n '芜湖': [118.38, 31.33],\n '淄博': [118.05, 36.78],\n '银川': [106.27, 38.47],\n '柳州': [109.40, 24.33],\n '绵阳': [104.73, 31.48],\n '湖州': [120.10, 30.86],\n '衡阳': [112.61, 26.89],\n '莆田': [119.01, 25.43],\n '宜昌': [111.29, 30.70],\n '桂林': [110.28, 25.29],\n '三亚': [109.51, 18.25],\n '遵义': [106.93, 27.71],\n '咸阳': [108.71, 34.33],\n '上饶': [117.97, 28.45],\n '莱芜': [117.68, 36.21],\n '赣州': [114.94, 25.85],\n '揭阳': [116.35, 23.55],\n '扬州': [119.42, 32.39],\n '菏泽': [115.47, 35.23],\n '徐州': [117.20, 34.26],\n '肇庆': [112.47, 23.05],\n '海口': [110.33, 20.02],\n '拉萨': [91.13, 29.66],\n '呼和浩特': [111.75, 40.84],\n '包头': [109.84, 40.66],\n '南阳': [112.53, 33.00],\n '鞍山': [122.99, 41.12],\n '九江': [115.99, 29.71],\n '大庆': [125.11, 46.59],\n '平顶山': [113.31, 33.74],\n '抚顺': [123.92, 41.88],\n '秦皇岛': [119.57, 39.95],\n '株洲': [113.15, 27.83],\n '齐齐哈尔': [123.95, 47.33]\n}\n\nexport default function TimelinePage() {\n const { treeData, getMember, isLoading } = useFamily()\n const members = Object.values(treeData.members)\n const [mapLoaded, setMapLoaded] = useState(false)\n \n // 注册中国地图 - 从外部文件加载完整数据(必须在条件渲染之前)\n useEffect(() => {\n fetch('/china.json')\n .then(response => response.json())\n .then(geoJson => {\n echarts.registerMap('china', geoJson)\n setMapLoaded(true)\n })\n .catch(error => {\n console.error('Failed to load China map:', error)\n // 如果加载失败,使用简化版本\n echarts.registerMap('china', chinaGeoJSON as any)\n setMapLoaded(true)\n })\n }, [])\n\n // -- Timeline Logic -- (必须在条件渲染之前)\n // Flatten events: Births and Deaths\n const events = useMemo(() => members\n .flatMap((m) => {\n const evs = []\n if (m.birthDate) {\n evs.push({\n date: m.birthDate,\n year: Number.parseInt(m.birthDate.substring(0, 4)),\n type: \"birth\",\n member: m,\n })\n }\n if (m.deathDate) {\n evs.push({\n date: m.deathDate,\n year: Number.parseInt(m.deathDate.substring(0, 4)),\n type: \"death\",\n member: m,\n })\n }\n return evs\n })\n .sort((a, b) => b.date.localeCompare(a.date)), [members]) // 倒序排列:最新的在上面\n\n // -- Migration Logic --\n // Find moves between generations (Father -> Child location change)\n const migrations = useMemo(() => members\n .flatMap((m) => {\n if (!m.fatherId) return []\n const father = getMember(m.fatherId)\n if (!father) return []\n\n // Check if location exists and is different\n // 优先使用 birthPlace(出生地)来判断迁徙,因为 ancestralHome(祖籍)通常不变\n const loc1 = father.birthPlace || father.ancestralHome\n const loc2 = m.birthPlace || m.ancestralHome\n\n if (loc1 && loc2 && loc1 !== loc2) {\n return [\n {\n year: m.birthDate ? Number.parseInt(m.birthDate.substring(0, 4)) : null,\n from: loc1,\n to: loc2,\n person: m,\n father: father,\n },\n ]\n }\n return []\n })\n .sort((a, b) => (a.year || 0) - (b.year || 0)), [members, getMember])\n \n // ECharts 地图配置\n const mapOption = useMemo(() => {\n // 城市坐标映射(简化城市名)\n // 城市名称映射(支持省+市格式)\n const cityMap: Record = {}\n \n // 自动生成映射:将\"XX省XX市\"或\"XX市\"映射到城市名\n Object.keys(geoCoordMap).forEach(city => {\n cityMap[city] = city // 直接城市名\n cityMap[`${city}市`] = city // 城市+市\n \n // 根据城市所在省份添加映射\n const provinceMap: Record = {\n '广东省': ['广州', '深圳', '东莞', '佛山', '珠海', '惠州', '中山', '江门', '汕头', '肇庆'],\n '浙江省': ['杭州', '宁波', '温州', '金华', '嘉兴', '台州', '绍兴', '湖州'],\n '江苏省': ['苏州', '南京', '无锡', '常州', '南通', '盐城', '泰州', '扬州', '徐州'],\n '山东省': ['济南', '青岛', '威海', '临沂', '济宁', '淄博', '莱芜', '菏泽'],\n '四川省': ['成都', '绵阳'],\n '河北省': ['石家庄', '保定', '廊坊', '邯郸', '秦皇岛'],\n '福建省': ['福州', '厦门', '泉州', '莆田', '漳州'],\n '湖北省': ['武汉', '宜昌'],\n '湖南省': ['长沙', '衡阳', '株洲'],\n '陕西省': ['西安', '咸阳'],\n '河南省': ['郑州', '洛阳', '南阳', '平顶山'],\n '辽宁省': ['沈阳', '大连', '鞍山', '抚顺'],\n '安徽省': ['合肥', '芜湖'],\n '云南省': ['昆明'],\n '贵州省': ['贵阳', '遵义'],\n '广西壮族自治区': ['南宁', '柳州', '桂林'],\n '江西省': ['南昌', '九江', '赣州', '上饶'],\n '黑龙江省': ['哈尔滨', '大庆', '齐齐哈尔'],\n '吉林省': ['长春'],\n '山西省': ['太原'],\n '甘肃省': ['兰州'],\n '新疆维吾尔自治区': ['乌鲁木齐'],\n '宁夏回族自治区': ['银川'],\n '内蒙古自治区': ['呼和浩特', '包头'],\n '海南省': ['海口', '三亚'],\n '西藏自治区': ['拉萨'],\n '天津市': ['天津'],\n '重庆市': ['重庆'],\n '北京市': ['北京'],\n '上海市': ['上海']\n }\n \n // 为每个城市添加\"省+市\"格式的映射\n Object.entries(provinceMap).forEach(([province, cities]) => {\n if (cities.includes(city)) {\n cityMap[`${province}${city}市`] = city\n cityMap[`${province}${city}`] = city\n }\n })\n })\n \n // 提取城市名称的辅助函数(去掉区的部分)\n const extractCity = (location: string): string => {\n // 尝试从 cityMap 中查找\n let city = cityMap[location]\n if (city && geoCoordMap[city]) return city\n \n // 如果没找到,尝试提取省市部分(去掉区)\n // 例如:\"山东省济南市历下区\" -> \"济南\"\n const match = location.match(/(.+?省)?(.+?市)/)\n if (match) {\n const province = match[1] || ''\n const cityName = match[2] || ''\n \n // 尝试多种组合\n const attempts = [\n location,\n province + cityName,\n cityName.replace('市', ''),\n cityName\n ]\n \n for (const attempt of attempts) {\n const mapped = cityMap[attempt]\n if (mapped && geoCoordMap[mapped]) return mapped\n }\n }\n \n return location\n }\n \n // 转换迁徙数据为 ECharts 格式(使用经纬度坐标)\n const lines = migrations.map(mig => {\n const fromCity = extractCity(mig.from)\n const toCity = extractCity(mig.to)\n const fromCoord = geoCoordMap[fromCity]\n const toCoord = geoCoordMap[toCity]\n \n if (!fromCoord || !toCoord) {\n console.log('坐标未找到:', {\n from: mig.from,\n to: mig.to,\n fromCity,\n toCity,\n fromCoord,\n toCoord\n })\n return null\n }\n \n return {\n fromName: fromCity,\n toName: toCity,\n coords: [fromCoord, toCoord]\n }\n }).filter(Boolean)\n \n console.log('迁徙数据:', { migrations, lines })\n \n // 统计每个城市的迁入迁出\n const cityData: Record = {}\n migrations.forEach(mig => {\n const from = extractCity(mig.from)\n const to = extractCity(mig.to)\n cityData[from] = (cityData[from] || 0) + 1\n cityData[to] = (cityData[to] || 0) + 1\n })\n \n const scatterData = Object.entries(cityData).map(([name, value]) => {\n const coord = geoCoordMap[name]\n if (!coord) return null\n return {\n name,\n value: [...coord, value * 10]\n }\n }).filter(Boolean)\n \n return {\n backgroundColor: 'transparent',\n geo: {\n map: 'china',\n roam: true,\n label: {\n show: true,\n color: '#666',\n fontSize: 12\n },\n itemStyle: {\n areaColor: 'rgba(128, 128, 128, 0.15)',\n borderColor: 'rgba(128, 128, 128, 0.5)',\n borderWidth: 2\n },\n emphasis: {\n itemStyle: {\n areaColor: 'rgba(128, 128, 128, 0.25)'\n },\n label: {\n show: true,\n color: '#333',\n fontSize: 14\n }\n }\n },\n series: [\n {\n type: 'lines',\n coordinateSystem: 'geo',\n data: lines,\n lineStyle: {\n color: 'transparent',\n width: 0,\n opacity: 0\n },\n effect: {\n show: true,\n period: 3,\n trailLength: 0.2,\n symbol: 'arrow',\n symbolSize: 12,\n color: '#3b82f6',\n loop: true\n },\n zlevel: 1\n },\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n data: scatterData,\n symbolSize: 10,\n label: {\n show: true,\n formatter: '{b}',\n position: 'right',\n fontSize: 12,\n fontWeight: 'normal',\n color: '#333'\n },\n itemStyle: {\n color: '#000',\n shadowBlur: 0,\n borderWidth: 0\n },\n emphasis: {\n scale: true,\n itemStyle: {\n color: '#000'\n },\n label: {\n show: true,\n fontSize: 14,\n fontWeight: 'bold'\n }\n }\n }\n ]\n }\n }, [migrations])\n\n // 显示加载状态\n if (isLoading) {\n return (\n
\n \n
\n
\n
\n

加载中...

\n
\n
\n
\n )\n }\n \n // 显示无数据状态\n if (members.length === 0) {\n return (\n
\n \n
\n 暂无家族成员数据\n
\n
\n )\n }\n\n return (\n
\n \n
\n
\n

家族历史 (History)

\n

纵览家族发展的时间脉络与迁徙足迹。

\n
\n\n \n \n \n 时间轴 (Chronology)\n \n \n 迁徙图 (Migration)\n \n \n\n \n \n \n
\n {events.map((event, idx) => (\n
\n {/* Dot */}\n \n\n {/* Year Label (Mobile vs Desktop) */}\n
\n {event.year}\n
\n\n {/* Content Card */}\n
\n
\n \n {event.type === \"birth\" ? \"诞生\" : \"逝世\"}\n \n {event.member.fullName}\n \n {event.member.gender === \"male\" ? \"男\" : \"女\"}\n \n 第{event.member.generation}世\n \n {/* 父母信息 */}\n {event.member.fatherId && (\n \n 父:{getMember(event.member.fatherId)?.fullName || \"未知\"}\n \n )}\n {event.member.motherId && (\n \n 母:{getMember(event.member.motherId)?.fullName || \"未知\"}\n \n )}\n \n {/* 配偶信息 */}\n {event.member.spouseIds && event.member.spouseIds.length > 0 && (\n \n 配偶:{getMember(event.member.spouseIds[0])?.fullName || \"未知\"}\n \n )}\n \n {/* 子女信息 */}\n {event.member.childrenIds && event.member.childrenIds.length > 0 && (\n \n 子女:{event.member.childrenIds.length}人\n \n )}\n \n {/* 出生地信息 */}\n {event.type === \"birth\" && (event.member.birthPlace || event.member.ancestralHome) && (\n \n 📍{event.member.birthPlace || event.member.ancestralHome}\n \n )}\n \n {/* 享年 */}\n {event.type === \"death\" && event.member.birthDate && (\n \n 享年{event.year - Number.parseInt(event.member.birthDate.substring(0, 4))}岁\n \n )}\n \n {/* 葬地 */}\n {event.type === \"death\" && event.member.burialPlace && (\n \n ⚰️{event.member.burialPlace}\n \n )}\n \n {event.date}\n
\n
\n
\n ))}\n\n {events.length === 0 && (\n
暂无时间记录。请完善成员的出生日期信息。
\n )}\n
\n
\n
\n
\n\n \n
\n \n \n 迁徙记录 (Records)\n \n \n \n
\n {migrations.map((mig, idx) => (\n
\n
\n \n {mig.year ? `${mig.year}年` : \"未知年代\"}\n \n 第 {mig.person.generation} 世\n
\n
\n
\n
迁出地
\n
{mig.from}
\n
{mig.father.fullName}
\n
\n \n
\n
迁入地
\n
{mig.to}
\n
{mig.person.fullName}
\n
\n
\n
\n ))}\n {migrations.length === 0 && (\n

\n 暂无迁徙记录。\n
\n 系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。\n

\n )}\n
\n
\n
\n
\n\n \n \n 迁徙路径图 (Migration Flow)\n \n \n
\n {!mapLoaded ? (\n
\n
\n \n

加载地图中...

\n
\n
\n ) : migrations.length === 0 ? (\n
\n
\n \n

暂无迁徙数据

\n

请先清空数据库重新加载数据

\n
\n
\n ) : (\n \n )}\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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BAAK;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BACxE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BACtE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BACxE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1131, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/tabs.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,KAAK,EACZ,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,SAAS,EAChB,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uGACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,mqBACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1197, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, + {"offset": {"line": 1267, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/timeline/page.tsx"],"sourcesContent":["\"use client\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Clock, Map as MapIcon, ArrowRight } from \"lucide-react\"\nimport dynamic from 'next/dynamic'\nimport { useMemo, useEffect, useState } from 'react'\nimport * as echarts from 'echarts'\n\nconst ReactECharts = dynamic(() => import('echarts-for-react'), { ssr: false })\n\n// 中国地图 GeoJSON 数据 - 完整的轮廓\nconst chinaGeoJSON = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n properties: { name: \"中国\" },\n geometry: {\n type: \"MultiPolygon\",\n coordinates: [\n [\n [\n // 中国大陆完整轮廓 - 从东北开始逆时针\n [134.5, 48.5], [135, 47], [134, 45], [133, 43], [131, 42], [130, 43], [129, 44],\n [128, 45], [127, 46], [126, 47], [125, 48], [124, 49], [123.5, 50], [123, 51],\n [122.5, 52], [122, 53], [121, 53.5], [120, 53.3], [119, 53], [118.5, 52],\n [119, 51], [119.5, 50], [120, 49], [121, 48], [122, 47], [123, 46], [124, 45],\n [125, 44], [126, 43], [127, 42.5], [128, 42], [129, 41.5], [130, 41],\n // 东部海岸线\n [130, 40], [129, 39], [128, 38.5], [127, 38], [126, 37.5], [125, 37],\n [124, 36.5], [123, 36], [122.5, 35.5], [122, 35], [121.5, 34.5], [121, 34],\n [120.5, 33.5], [120, 33], [119.5, 32.5], [119.5, 32], [120, 31.5], [120.5, 31],\n [121, 30.5], [121.5, 30], [122, 29.5], [122, 29], [121.5, 28.5], [121, 28],\n [120.5, 27.5], [120, 27], [119.5, 26.5], [119, 26], [118.5, 25.5], [118, 25],\n [117.5, 24.5], [117, 24], [116.5, 23.5], [116, 23], [115.5, 22.5], [115, 22],\n [114, 21.8], [113, 21.5], [112, 21.3], [111, 21.2], [110.5, 21],\n // 南部边界\n [110, 20.5], [109.5, 20], [109, 20.5], [108.5, 21], [108, 21.5], [107.5, 22],\n [107, 22.5], [106.5, 23], [106, 23.5], [105.5, 24], [105, 24.5], [104.5, 25],\n [104, 25.5], [103.5, 26], [103, 26.5], [102.5, 27], [102, 27.5], [101.5, 28],\n [101, 28.5], [100.5, 29], [100, 29.5], [99.5, 30], [99, 30.5], [98.5, 31],\n [98, 31.5], [97.5, 32], [97, 32.5],\n // 西南边界\n [96.5, 33], [96, 33.5], [95.5, 34], [95, 34.5], [94.5, 35], [94, 35.5],\n [93.5, 36], [93, 36.5], [92.5, 37], [92, 37.5], [91.5, 38], [91, 38.5],\n [90.5, 39], [90, 39.5], [89.5, 40], [89, 40.5], [88.5, 41], [88, 41.5],\n [87.5, 42], [87, 42.5], [86.5, 43], [86, 43.5], [85.5, 44], [85, 44.5],\n [84.5, 45], [84, 45.5], [83.5, 46], [83, 46.5], [82.5, 47], [82, 47.5],\n [81.5, 48], [81, 48.5], [80.5, 49], [80, 49.5],\n // 西北边界\n [79.5, 49.5], [79, 49.3], [78.5, 49], [78, 48.5], [77.5, 48], [77, 47.5],\n [76.5, 47], [76, 46.5], [75.5, 46], [75, 45.5], [74.5, 45], [74, 44.5],\n [73.5, 44], [73.5, 43.5], [74, 43], [74.5, 42.5], [75, 42], [75.5, 41.5],\n [76, 41], [76.5, 40.5], [77, 40], [77.5, 39.5], [78, 39], [78.5, 38.5],\n [79, 38.5], [79.5, 39], [80, 39.5], [80.5, 40], [81, 40.5], [81.5, 41],\n [82, 41.5], [82.5, 42], [83, 42.5], [83.5, 43], [84, 43.5], [84.5, 44],\n [85, 44.5], [85.5, 45], [86, 45.5], [86.5, 46], [87, 46.5], [87.5, 47],\n [88, 47.5], [88.5, 48], [89, 48.5], [89.5, 49], [90, 49.5], [90.5, 50],\n [91, 50.5], [91.5, 51], [92, 51.5], [92.5, 52], [93, 52.5], [93.5, 53],\n // 北部边界\n [94, 53], [95, 52.8], [96, 52.5], [97, 52.2], [98, 52], [99, 51.8],\n [100, 51.5], [101, 51.2], [102, 51], [103, 50.8], [104, 50.5], [105, 50.2],\n [106, 50], [107, 49.8], [108, 49.5], [109, 49.3], [110, 49.2], [111, 49.1],\n [112, 49], [113, 48.9], [114, 48.8], [115, 48.7], [116, 48.6], [117, 48.5],\n [118, 48.5], [119, 48.5], [120, 48.6], [121, 48.7], [122, 48.8], [123, 48.9],\n [124, 49], [125, 49.1], [126, 49.2], [127, 49.3], [128, 49.4], [129, 49.5],\n [130, 49.5], [131, 49.4], [132, 49.2], [133, 49], [134, 48.8], [134.5, 48.5]\n ]\n ],\n // 海南岛\n [[[108.6, 18.5], [109.5, 18.3], [110.5, 18.5], [111, 19], [111, 19.5], [110.5, 20], [109.5, 20.2], [108.6, 20], [108.2, 19.5], [108.6, 18.5]]],\n // 台湾岛\n [[[120, 22], [120.5, 21.9], [121, 22], [121.5, 22.5], [122, 23], [122, 23.5], [122, 24], [121.8, 24.5], [121.5, 25], [121, 25.2], [120.5, 25.1], [120.2, 24.8], [120, 24.5], [120, 24], [120, 23.5], [120, 23], [120, 22.5], [120, 22]]]\n ]\n }\n }\n ]\n}\n\n// 主要城市坐标(包含1、2、3线城市)\nconst geoCoordMap: Record = {\n // 一线城市\n '北京': [116.46, 39.92],\n '上海': [121.48, 31.22],\n '广州': [113.23, 23.16],\n '深圳': [114.07, 22.62],\n \n // 新一线城市\n '成都': [104.06, 30.67],\n '杭州': [120.19, 30.26],\n '重庆': [106.55, 29.56],\n '西安': [108.95, 34.27],\n '苏州': [120.62, 31.32],\n '武汉': [114.31, 30.52],\n '南京': [118.78, 32.04],\n '天津': [117.20, 39.13],\n '郑州': [113.65, 34.76],\n '长沙': [112.94, 28.23],\n '东莞': [113.75, 23.05],\n '沈阳': [123.43, 41.80],\n '青岛': [120.38, 36.07],\n '合肥': [117.27, 31.86],\n '佛山': [113.12, 23.02],\n \n // 二线城市\n '昆明': [102.73, 25.04],\n '福州': [119.30, 26.08],\n '无锡': [120.29, 31.57],\n '厦门': [118.10, 24.46],\n '哈尔滨': [126.63, 45.75],\n '长春': [125.35, 43.88],\n '南昌': [115.89, 28.68],\n '济南': [117.12, 36.65],\n '宁波': [121.55, 29.87],\n '大连': [121.62, 38.91],\n '贵阳': [106.71, 26.57],\n '温州': [120.67, 28.00],\n '石家庄': [114.52, 38.05],\n '泉州': [118.58, 24.93],\n '南宁': [108.33, 22.84],\n '金华': [119.65, 29.08],\n '常州': [119.95, 31.79],\n '珠海': [113.52, 22.30],\n '惠州': [114.42, 23.09],\n '嘉兴': [120.76, 30.77],\n '南通': [120.86, 32.01],\n '中山': [113.38, 22.52],\n '保定': [115.48, 38.85],\n '太原': [112.55, 37.87],\n '兰州': [103.79, 36.06],\n '台州': [121.43, 28.66],\n \n // 三线城市\n '乌鲁木齐': [87.68, 43.77],\n '绍兴': [120.58, 30.03],\n '廊坊': [116.70, 39.54],\n '洛阳': [112.45, 34.62],\n '威海': [122.12, 37.52],\n '盐城': [120.13, 33.38],\n '临沂': [118.35, 35.05],\n '江门': [113.08, 22.61],\n '汕头': [116.69, 23.39],\n '泰州': [119.90, 32.49],\n '漳州': [117.65, 24.52],\n '邯郸': [114.47, 36.60],\n '济宁': [116.59, 35.38],\n '芜湖': [118.38, 31.33],\n '淄博': [118.05, 36.78],\n '银川': [106.27, 38.47],\n '柳州': [109.40, 24.33],\n '绵阳': [104.73, 31.48],\n '湖州': [120.10, 30.86],\n '衡阳': [112.61, 26.89],\n '莆田': [119.01, 25.43],\n '宜昌': [111.29, 30.70],\n '桂林': [110.28, 25.29],\n '三亚': [109.51, 18.25],\n '遵义': [106.93, 27.71],\n '咸阳': [108.71, 34.33],\n '上饶': [117.97, 28.45],\n '莱芜': [117.68, 36.21],\n '赣州': [114.94, 25.85],\n '揭阳': [116.35, 23.55],\n '扬州': [119.42, 32.39],\n '菏泽': [115.47, 35.23],\n '徐州': [117.20, 34.26],\n '肇庆': [112.47, 23.05],\n '海口': [110.33, 20.02],\n '拉萨': [91.13, 29.66],\n '呼和浩特': [111.75, 40.84],\n '包头': [109.84, 40.66],\n '南阳': [112.53, 33.00],\n '鞍山': [122.99, 41.12],\n '九江': [115.99, 29.71],\n '大庆': [125.11, 46.59],\n '平顶山': [113.31, 33.74],\n '抚顺': [123.92, 41.88],\n '秦皇岛': [119.57, 39.95],\n '株洲': [113.15, 27.83],\n '齐齐哈尔': [123.95, 47.33]\n}\n\nexport default function TimelinePage() {\n const { treeData, getMember, isLoading } = useFamily()\n const members = Object.values(treeData.members)\n const [mapLoaded, setMapLoaded] = useState(false)\n \n // 注册中国地图 - 从外部文件加载完整数据(必须在条件渲染之前)\n useEffect(() => {\n fetch('/china.json')\n .then(response => response.json())\n .then(geoJson => {\n echarts.registerMap('china', geoJson)\n setMapLoaded(true)\n })\n .catch(error => {\n console.error('Failed to load China map:', error)\n // 如果加载失败,使用简化版本\n echarts.registerMap('china', chinaGeoJSON as any)\n setMapLoaded(true)\n })\n }, [])\n\n // -- Timeline Logic -- (必须在条件渲染之前)\n // Flatten events: Births and Deaths\n const events = useMemo(() => members\n .flatMap((m) => {\n const evs = []\n if (m.birthDate) {\n evs.push({\n date: m.birthDate,\n year: Number.parseInt(m.birthDate.substring(0, 4)),\n type: \"birth\",\n member: m,\n })\n }\n if (m.deathDate) {\n evs.push({\n date: m.deathDate,\n year: Number.parseInt(m.deathDate.substring(0, 4)),\n type: \"death\",\n member: m,\n })\n }\n return evs\n })\n .sort((a, b) => b.date.localeCompare(a.date)), [members]) // 倒序排列:最新的在上面\n\n // -- Migration Logic --\n // Find moves between generations (Father -> Child location change)\n const migrations = useMemo(() => members\n .flatMap((m) => {\n if (!m.fatherId) return []\n const father = getMember(m.fatherId)\n if (!father) return []\n\n // Check if location exists and is different\n // 优先使用 birthPlace(出生地)来判断迁徙,因为 ancestralHome(祖籍)通常不变\n const loc1 = father.birthPlace || father.ancestralHome\n const loc2 = m.birthPlace || m.ancestralHome\n\n if (loc1 && loc2 && loc1 !== loc2) {\n return [\n {\n year: m.birthDate ? Number.parseInt(m.birthDate.substring(0, 4)) : null,\n from: loc1,\n to: loc2,\n person: m,\n father: father,\n },\n ]\n }\n return []\n })\n .sort((a, b) => (a.year || 0) - (b.year || 0)), [members, getMember])\n \n // ECharts 地图配置\n const mapOption = useMemo(() => {\n // 城市坐标映射(简化城市名)\n // 城市名称映射(支持省+市格式)\n const cityMap: Record = {}\n \n // 自动生成映射:将\"XX省XX市\"或\"XX市\"映射到城市名\n Object.keys(geoCoordMap).forEach(city => {\n cityMap[city] = city // 直接城市名\n cityMap[`${city}市`] = city // 城市+市\n \n // 根据城市所在省份添加映射\n const provinceMap: Record = {\n '广东省': ['广州', '深圳', '东莞', '佛山', '珠海', '惠州', '中山', '江门', '汕头', '肇庆'],\n '浙江省': ['杭州', '宁波', '温州', '金华', '嘉兴', '台州', '绍兴', '湖州'],\n '江苏省': ['苏州', '南京', '无锡', '常州', '南通', '盐城', '泰州', '扬州', '徐州'],\n '山东省': ['济南', '青岛', '威海', '临沂', '济宁', '淄博', '莱芜', '菏泽'],\n '四川省': ['成都', '绵阳'],\n '河北省': ['石家庄', '保定', '廊坊', '邯郸', '秦皇岛'],\n '福建省': ['福州', '厦门', '泉州', '莆田', '漳州'],\n '湖北省': ['武汉', '宜昌'],\n '湖南省': ['长沙', '衡阳', '株洲'],\n '陕西省': ['西安', '咸阳'],\n '河南省': ['郑州', '洛阳', '南阳', '平顶山'],\n '辽宁省': ['沈阳', '大连', '鞍山', '抚顺'],\n '安徽省': ['合肥', '芜湖'],\n '云南省': ['昆明'],\n '贵州省': ['贵阳', '遵义'],\n '广西壮族自治区': ['南宁', '柳州', '桂林'],\n '江西省': ['南昌', '九江', '赣州', '上饶'],\n '黑龙江省': ['哈尔滨', '大庆', '齐齐哈尔'],\n '吉林省': ['长春'],\n '山西省': ['太原'],\n '甘肃省': ['兰州'],\n '新疆维吾尔自治区': ['乌鲁木齐'],\n '宁夏回族自治区': ['银川'],\n '内蒙古自治区': ['呼和浩特', '包头'],\n '海南省': ['海口', '三亚'],\n '西藏自治区': ['拉萨'],\n '天津市': ['天津'],\n '重庆市': ['重庆'],\n '北京市': ['北京'],\n '上海市': ['上海']\n }\n \n // 为每个城市添加\"省+市\"格式的映射\n Object.entries(provinceMap).forEach(([province, cities]) => {\n if (cities.includes(city)) {\n cityMap[`${province}${city}市`] = city\n cityMap[`${province}${city}`] = city\n }\n })\n })\n \n // 提取城市名称的辅助函数(去掉区的部分)\n const extractCity = (location: string): string => {\n // 尝试从 cityMap 中查找\n let city = cityMap[location]\n if (city && geoCoordMap[city]) return city\n \n // 如果没找到,尝试提取省市部分(去掉区)\n // 例如:\"山东省济南市历下区\" -> \"济南\"\n const match = location.match(/(.+?省)?(.+?市)/)\n if (match) {\n const province = match[1] || ''\n const cityName = match[2] || ''\n \n // 尝试多种组合\n const attempts = [\n location,\n province + cityName,\n cityName.replace('市', ''),\n cityName\n ]\n \n for (const attempt of attempts) {\n const mapped = cityMap[attempt]\n if (mapped && geoCoordMap[mapped]) return mapped\n }\n }\n \n return location\n }\n \n // 转换迁徙数据为 ECharts 格式(使用经纬度坐标)\n const lines = migrations.map(mig => {\n const fromCity = extractCity(mig.from)\n const toCity = extractCity(mig.to)\n const fromCoord = geoCoordMap[fromCity]\n const toCoord = geoCoordMap[toCity]\n \n if (!fromCoord || !toCoord) {\n console.log('坐标未找到:', {\n from: mig.from,\n to: mig.to,\n fromCity,\n toCity,\n fromCoord,\n toCoord\n })\n return null\n }\n \n return {\n fromName: fromCity,\n toName: toCity,\n coords: [fromCoord, toCoord]\n }\n }).filter(Boolean)\n \n console.log('迁徙数据:', { migrations, lines })\n \n // 统计每个城市的迁入迁出\n const cityData: Record = {}\n migrations.forEach(mig => {\n const from = extractCity(mig.from)\n const to = extractCity(mig.to)\n cityData[from] = (cityData[from] || 0) + 1\n cityData[to] = (cityData[to] || 0) + 1\n })\n \n const scatterData = Object.entries(cityData).map(([name, value]) => {\n const coord = geoCoordMap[name]\n if (!coord) return null\n return {\n name,\n value: [...coord, value * 10]\n }\n }).filter(Boolean)\n \n return {\n backgroundColor: 'transparent',\n geo: {\n map: 'china',\n roam: true,\n label: {\n show: true,\n color: '#666',\n fontSize: 12\n },\n itemStyle: {\n areaColor: 'rgba(128, 128, 128, 0.15)',\n borderColor: 'rgba(128, 128, 128, 0.5)',\n borderWidth: 2\n },\n emphasis: {\n itemStyle: {\n areaColor: 'rgba(128, 128, 128, 0.25)'\n },\n label: {\n show: true,\n color: '#333',\n fontSize: 14\n }\n }\n },\n series: [\n {\n type: 'lines',\n coordinateSystem: 'geo',\n data: lines,\n lineStyle: {\n color: 'transparent',\n width: 0,\n opacity: 0\n },\n effect: {\n show: true,\n period: 3,\n trailLength: 0.2,\n symbol: 'arrow',\n symbolSize: 12,\n color: '#3b82f6',\n loop: true\n },\n zlevel: 1\n },\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n data: scatterData,\n symbolSize: 10,\n label: {\n show: true,\n formatter: '{b}',\n position: 'right',\n fontSize: 12,\n fontWeight: 'normal',\n color: '#333'\n },\n itemStyle: {\n color: '#000',\n shadowBlur: 0,\n borderWidth: 0\n },\n emphasis: {\n scale: true,\n itemStyle: {\n color: '#000'\n },\n label: {\n show: true,\n fontSize: 14,\n fontWeight: 'bold'\n }\n }\n }\n ]\n }\n }, [migrations])\n\n // 显示加载状态\n if (isLoading) {\n return (\n
\n \n
\n
\n
\n

加载中...

\n
\n
\n
\n )\n }\n \n // 显示无数据状态\n if (members.length === 0) {\n return (\n
\n \n
\n 暂无家族成员数据\n
\n
\n )\n }\n\n return (\n
\n \n
\n
\n

家族历史 (History)

\n

纵览家族发展的时间脉络与迁徙足迹。

\n
\n\n \n \n \n 时间轴 (Chronology)\n \n \n 迁徙图 (Migration)\n \n \n\n \n \n \n
\n {events.map((event, idx) => (\n
\n {/* Dot */}\n \n\n {/* Year Label (Mobile vs Desktop) */}\n
\n {event.year}\n
\n\n {/* Content Card */}\n
\n
\n \n {event.type === \"birth\" ? \"诞生\" : \"逝世\"}\n \n {event.member.fullName}\n \n {event.member.gender === \"male\" ? \"男\" : \"女\"}\n \n 第{event.member.generation}世\n \n {/* 父母信息 */}\n {event.member.fatherId && (\n \n 父:{getMember(event.member.fatherId)?.fullName || \"未知\"}\n \n )}\n {event.member.motherId && (\n \n 母:{getMember(event.member.motherId)?.fullName || \"未知\"}\n \n )}\n \n {/* 配偶信息 */}\n {event.member.spouseIds && event.member.spouseIds.length > 0 && (\n \n 配偶:{getMember(event.member.spouseIds[0])?.fullName || \"未知\"}\n \n )}\n \n {/* 子女信息 */}\n {event.member.childrenIds && event.member.childrenIds.length > 0 && (\n \n 子女:{event.member.childrenIds.length}人\n \n )}\n \n {/* 出生地信息 */}\n {event.type === \"birth\" && (event.member.birthPlace || event.member.ancestralHome) && (\n \n 📍{event.member.birthPlace || event.member.ancestralHome}\n \n )}\n \n {/* 享年 */}\n {event.type === \"death\" && event.member.birthDate && (\n \n 享年{event.year - Number.parseInt(event.member.birthDate.substring(0, 4))}岁\n \n )}\n \n {/* 葬地 */}\n {event.type === \"death\" && event.member.burialPlace && (\n \n ⚰️{event.member.burialPlace}\n \n )}\n \n {event.date}\n
\n
\n
\n ))}\n\n {events.length === 0 && (\n
暂无时间记录。请完善成员的出生日期信息。
\n )}\n
\n
\n
\n
\n\n \n
\n \n \n 迁徙记录 (Records)\n \n \n \n
\n {migrations.map((mig, idx) => (\n
\n
\n \n {mig.year ? `${mig.year}年` : \"未知年代\"}\n \n 第 {mig.person.generation} 世\n
\n
\n
\n
迁出地
\n
{mig.from}
\n
{mig.father.fullName}
\n
\n \n
\n
迁入地
\n
{mig.to}
\n
{mig.person.fullName}
\n
\n
\n
\n ))}\n {migrations.length === 0 && (\n

\n 暂无迁徙记录。\n
\n 系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。\n

\n )}\n
\n
\n
\n
\n\n \n \n 迁徙路径图 (Migration Flow)\n \n \n
\n {!mapLoaded ? (\n
\n
\n \n

加载地图中...

\n
\n
\n ) : migrations.length === 0 ? (\n
\n
\n \n

暂无迁徙数据

\n

请先清空数据库重新加载数据

\n
\n
\n ) : (\n \n )}\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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BAAK;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BACxE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BACtE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BACxE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BAAE;gCAAC;gCAAI;6BAAG;4BAAE;gCAAC;gCAAM;6BAAK;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BACtE;gCAAC;gCAAI;6BAAK;4BAAE;gCAAC;gCAAM;6BAAG;4BAAE;gCAAC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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js index 6ad6d64c..9746cdb3 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,6 +415,46 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { @@ -491,12 +533,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 172, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 171, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +546,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 174, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 170, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -526,25 +568,25 @@ function SiteHeader() { children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 182, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 183, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 181, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 180, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -555,12 +597,12 @@ function SiteHeader() { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 187, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 188, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -568,33 +610,60 @@ function SiteHeader() { setCurrentTree(tree); router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 198, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 201, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 204, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 199, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 190, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 217, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +674,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 222, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 218, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 186, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 179, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 169, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +711,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 231, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +720,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 237, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +729,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 240, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +738,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 243, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 230, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +758,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 250, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +769,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 251, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +790,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 271, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +798,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 272, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +810,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 275, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 270, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +827,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 277, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 269, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 268, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 263, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 261, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +856,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 290, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 249, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +874,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 297, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +882,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 298, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 296, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +902,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +910,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 304, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 302, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 301, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +930,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 310, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 309, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +952,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 317, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 318, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 316, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 315, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 314, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +993,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 325, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1001,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 326, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 324, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 331, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1030,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 334, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 335, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 333, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 332, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1064,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 340, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 341, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 339, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 322, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 313, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1099,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 347, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 346, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 248, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 168, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 167, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js.map index 31cf9640..300a5449 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_a5fd4070._.js.map @@ -5,10 +5,10 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, - {"offset": {"line": 1095, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/hooks/use-avatar-cache.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { db } from '@/lib/db'\n\n// 全局图片缓存\nconst avatarCache = new Map()\n\nexport function useAvatarCache(avatarImageId?: string) {\n const [avatarUrl, setAvatarUrl] = useState(\n avatarImageId ? avatarCache.get(avatarImageId) : undefined\n )\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n if (!avatarImageId) {\n setAvatarUrl(undefined)\n return\n }\n\n // 如果缓存中已存在,直接使用\n const cached = avatarCache.get(avatarImageId)\n if (cached) {\n setAvatarUrl(cached)\n return\n }\n\n // 从数据库加载\n let isMounted = true\n setIsLoading(true)\n\n db.images\n .get(avatarImageId)\n .then((image) => {\n if (image && isMounted) {\n const url = URL.createObjectURL(image.blob)\n avatarCache.set(avatarImageId, url)\n setAvatarUrl(url)\n }\n })\n .catch((error) => {\n console.error('Failed to load avatar:', error)\n })\n .finally(() => {\n if (isMounted) {\n setIsLoading(false)\n }\n })\n\n return () => {\n isMounted = false\n }\n }, [avatarImageId])\n\n return { avatarUrl, isLoading }\n}\n\n// 清理缓存的工具函数(可选)\nexport function clearAvatarCache() {\n avatarCache.forEach((url) => URL.revokeObjectURL(url))\n avatarCache.clear()\n}\n"],"names":[],"mappings":";;;;;;AAAA;AACA;;;AAEA,SAAS;AACT,MAAM,cAAc,IAAI;AAEjB,SAAS,eAAe,aAAsB;IACnD,MAAM,CAAC,WAAW,aAAa,GAAG,IAAA,uYAAQ,EACxC,gBAAgB,YAAY,GAAG,CAAC,iBAAiB;IAEnD,MAAM,CAAC,WAAW,aAAa,GAAG,IAAA,uYAAQ,EAAC;IAE3C,IAAA,wYAAS,EAAC;QACR,IAAI,CAAC,eAAe;YAClB,aAAa;YACb;QACF;QAEA,gBAAgB;QAChB,MAAM,SAAS,YAAY,GAAG,CAAC;QAC/B,IAAI,QAAQ;YACV,aAAa;YACb;QACF;QAEA,SAAS;QACT,IAAI,YAAY;QAChB,aAAa;QAEb,sKAAE,CAAC,MAAM,CACN,GAAG,CAAC,eACJ,IAAI,CAAC,CAAC;YACL,IAAI,SAAS,WAAW;gBACtB,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI;gBAC1C,YAAY,GAAG,CAAC,eAAe;gBAC/B,aAAa;YACf;QACF,GACC,KAAK,CAAC,CAAC;YACN,QAAQ,KAAK,CAAC,0BAA0B;QAC1C,GACC,OAAO,CAAC;YACP,IAAI,WAAW;gBACb,aAAa;YACf;QACF;QAEF,OAAO;YACL,YAAY;QACd;IACF,GAAG;QAAC;KAAc;IAElB,OAAO;QAAE;QAAW;IAAU;AAChC;AAGO,SAAS;IACd,YAAY,OAAO,CAAC,CAAC,MAAQ,IAAI,eAAe,CAAC;IACjD,YAAY,KAAK;AACnB"}}, - {"offset": {"line": 1156, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/family-node.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FamilyMember } from \"@/types/family\"\nimport { cn } from \"@/lib/utils\"\nimport { useAvatarCache } from \"@/hooks/use-avatar-cache\"\nimport { CircleUser, CircleUserRound, Heart } from \"lucide-react\"\n\ninterface FamilyNodeProps {\n member: FamilyMember\n spouse?: FamilyMember\n isRoot?: boolean\n onSelect?: (member: FamilyMember) => void\n isHighlighted?: boolean\n}\n\n// 格式化日期显示(只显示年份)\nfunction formatYear(dateString?: string): string {\n if (!dateString) return ''\n const year = dateString.split('-')[0]\n return year\n}\n\n// 计算年龄\nfunction calculateAge(birthDate?: string, deathDate?: string): number | null {\n if (!birthDate) return null\n \n const birth = new Date(birthDate)\n const end = deathDate ? new Date(deathDate) : new Date()\n \n let age = end.getFullYear() - birth.getFullYear()\n const monthDiff = end.getMonth() - birth.getMonth()\n \n if (monthDiff < 0 || (monthDiff === 0 && end.getDate() < birth.getDate())) {\n age--\n }\n \n return age\n}\n\n// 单个人员卡片组件\nfunction PersonCard({ member, isRoot, isSpouse, onSelect, isHighlighted }: { member: FamilyMember; isRoot?: boolean; isSpouse?: boolean; onSelect?: (member: FamilyMember) => void; isHighlighted?: boolean }) {\n const { avatarUrl: avatarBlobUrl } = useAvatarCache(member?.avatarImageId)\n \n const birthYear = formatYear(member.birthDate)\n const deathYear = formatYear(member.deathDate)\n const age = calculateAge(member.birthDate, member.deathDate)\n \n const lifeSpan = birthYear\n ? deathYear\n ? `${birthYear}-${deathYear}`\n : `${birthYear}-`\n : ''\n \n const ageText = age !== null\n ? member.deathDate\n ? `享年${age}岁`\n : `${age}岁`\n : ''\n \n return (\n onSelect?.(member)}\n >\n
\n {member.generation}世\n
\n\n
\n {avatarBlobUrl ? (\n \n ) : (\n member.gender === 'female' ? (\n \n ) : (\n \n )\n )}\n
\n\n
\n
{member.surname} {member.givenName}
\n {member.courtesyName && (\n
字 {member.courtesyName}
\n )}\n {lifeSpan && (\n
\n {lifeSpan}\n
\n )}\n {ageText && (\n
\n {ageText}\n
\n )}\n {member.phone && (\n
\n 📱 {member.phone}\n
\n )}\n
\n\n {member.deathDate && (\n
\n )}\n
\n )\n}\n\nexport function FamilyNode({ member, spouse, isRoot, onSelect, isHighlighted }: FamilyNodeProps) {\n if (!spouse) {\n return \n }\n \n // 有配偶时,并排显示\n return (\n
\n \n \n \n
\n )\n}\n"],"names":[],"mappings":";;;;;AAGA;AACA;AACA;AAAA;AAAA;AALA;;;;;AAeA,iBAAiB;AACjB,SAAS,WAAW,UAAmB;IACrC,IAAI,CAAC,YAAY,OAAO;IACxB,MAAM,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,EAAE;IACrC,OAAO;AACT;AAEA,OAAO;AACP,SAAS,aAAa,SAAkB,EAAE,SAAkB;IAC1D,IAAI,CAAC,WAAW,OAAO;IAEvB,MAAM,QAAQ,IAAI,KAAK;IACvB,MAAM,MAAM,YAAY,IAAI,KAAK,aAAa,IAAI;IAElD,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,WAAW;IAC/C,MAAM,YAAY,IAAI,QAAQ,KAAK,MAAM,QAAQ;IAEjD,IAAI,YAAY,KAAM,cAAc,KAAK,IAAI,OAAO,KAAK,MAAM,OAAO,IAAK;QACzE;IACF;IAEA,OAAO;AACT;AAEA,WAAW;AACX,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAsI;IAC3M,MAAM,EAAE,WAAW,aAAa,EAAE,GAAG,IAAA,wMAAc,EAAC,QAAQ;IAE5D,MAAM,YAAY,WAAW,OAAO,SAAS;IAC7C,MAAM,YAAY,WAAW,OAAO,SAAS;IAC7C,MAAM,MAAM,aAAa,OAAO,SAAS,EAAE,OAAO,SAAS;IAE3D,MAAM,WAAW,YACb,YACE,GAAG,UAAU,CAAC,EAAE,WAAW,GAC3B,GAAG,UAAU,CAAC,CAAC,GACjB;IAEJ,MAAM,UAAU,QAAQ,OACpB,OAAO,SAAS,GACd,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GACX,GAAG,IAAI,CAAC,CAAC,GACX;IAEJ,qBACE,oaAAC;QACC,WAAW,IAAA,yKAAE,EACX,0IACA,gBACI,4HACA,SACE,yCACA,WACE,wDACA;QAEV,SAAS,IAAM,WAAW;;0BAE1B,oaAAC;gBAAI,WAAU;;oBACZ,OAAO,UAAU;oBAAC;;;;;;;0BAGrB,oaAAC;gBAAI,WAAU;0BACZ,8BACC,oaAAC;oBACC,KAAK;oBACL,KAAK,OAAO,QAAQ;oBACpB,WAAU;;;;;2BAGZ,OAAO,MAAM,KAAK,yBAChB,oaAAC,8XAAe;oBAAC,WAAU;;;;;yCAE3B,oaAAC,2WAAU;oBAAC,WAAU;;;;;;;;;;;0BAK5B,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAI,WAAU;;4BAAsD,OAAO,OAAO;4BAAC;4BAAE,OAAO,SAAS;;;;;;;oBACrG,OAAO,YAAY,kBAClB,oaAAC;wBAAI,WAAU;;4BAA2C;4BAAG,OAAO,YAAY;;;;;;;oBAEjF,0BACC,oaAAC;wBAAI,WAAU;kCACZ;;;;;;oBAGJ,yBACC,oaAAC;wBAAI,WAAU;kCACZ;;;;;;oBAGJ,OAAO,KAAK,kBACX,oaAAC;wBAAI,WAAU;;4BAAyD;4BAClE,OAAO,KAAK;;;;;;;;;;;;;YAKrB,OAAO,SAAS,kBACf,oaAAC;gBAAI,WAAU;;;;;;;;;;;;AAIvB;AAEO,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAmB;IAC7F,IAAI,CAAC,QAAQ;QACX,qBAAO,oaAAC;YAAW,QAAQ;YAAQ,QAAQ;YAAQ,UAAU;YAAU,eAAe;;;;;;IACxF;IAEA,YAAY;IACZ,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC;gBAAW,QAAQ;gBAAQ,QAAQ;gBAAQ,UAAU;gBAAU,eAAe;;;;;;0BAC/E,oaAAC,wVAAK;gBAAC,WAAU;;;;;;0BACjB,oaAAC;gBAAW,QAAQ;gBAAQ,UAAU;gBAAM,UAAU;;;;;;;;;;;;AAG5D"}}, - {"offset": {"line": 1367, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/tree-layout.tsx"],"sourcesContent":["\"use client\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { FamilyNode } from \"./family-node\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useEffect, useRef, useState, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\n\ninterface TreeLayoutProps {\n rootId: string\n onSelectMember?: (member: FamilyMember) => void\n}\n\ninterface Connection {\n from: { x: number; y: number }\n to: { x: number; y: number }\n type: 'vertical' | 'horizontal'\n}\n\nexport function TreeLayout({ rootId, onSelectMember }: TreeLayoutProps) {\n const { getMember, treeData, highlightedMemberId } = useFamily()\n const root = getMember(rootId)\n const router = useRouter()\n const containerRef = useRef(null)\n const [connections, setConnections] = useState([])\n const nodeRefs = useRef>(new Map())\n\n // 节点间距配置\n const HORIZONTAL_GAP = 32 // 2rem = 32px\n const VERTICAL_GAP = 48 // 3rem = 48px\n const CONNECTOR_HEIGHT = 48 // 连接线垂直高度\n \n // 处理节点点击\n const handleNodeClick = useCallback((member: FamilyMember) => {\n router.push(`/members/${member.id}`)\n }, [router])\n\n // 计算所有连线位置\n const calculateConnections = useCallback(() => {\n const newConnections: Connection[] = []\n const containerRect = containerRef.current?.getBoundingClientRect()\n if (!containerRect) return\n\n // 检查是否有足够的节点已注册\n if (nodeRefs.current.size === 0) return\n\n nodeRefs.current.forEach((nodeElement, nodeId) => {\n const member = getMember(nodeId)\n if (!member || !member.childrenIds || member.childrenIds.length === 0) return\n\n const parentRect = nodeElement.getBoundingClientRect()\n const parentCenterX = parentRect.left + parentRect.width / 2 - containerRect.left\n const parentBottomY = parentRect.bottom - containerRect.top\n\n // 父节点到水平线的垂直连线\n const verticalLineY = parentBottomY + CONNECTOR_HEIGHT / 2\n newConnections.push({\n from: { x: parentCenterX, y: parentBottomY },\n to: { x: parentCenterX, y: verticalLineY },\n type: 'vertical'\n })\n\n // 获取所有子节点的位置\n const childPositions = member.childrenIds\n .map(childId => {\n const childElement = nodeRefs.current.get(childId)\n if (!childElement) return null\n const childRect = childElement.getBoundingClientRect()\n return {\n id: childId,\n centerX: childRect.left + childRect.width / 2 - containerRect.left,\n topY: childRect.top - containerRect.top\n }\n })\n .filter(Boolean) as Array<{ id: string; centerX: number; topY: number }>\n\n if (childPositions.length === 0) return\n\n // 如果有多个子节点,绘制水平连线\n if (childPositions.length > 1) {\n const leftmostX = Math.min(...childPositions.map(p => p.centerX))\n const rightmostX = Math.max(...childPositions.map(p => p.centerX))\n \n newConnections.push({\n from: { x: leftmostX, y: verticalLineY },\n to: { x: rightmostX, y: verticalLineY },\n type: 'horizontal'\n })\n }\n\n // 每个子节点的垂直连线\n childPositions.forEach(child => {\n newConnections.push({\n from: { x: child.centerX, y: verticalLineY },\n to: { x: child.centerX, y: child.topY },\n type: 'vertical'\n })\n })\n })\n\n setConnections(newConnections)\n }, [getMember])\n\n useEffect(() => {\n // 多次尝试计算,确保 DOM 完全渲染\n const timers: NodeJS.Timeout[] = []\n timers.push(setTimeout(calculateConnections, 50))\n timers.push(setTimeout(calculateConnections, 150))\n timers.push(setTimeout(calculateConnections, 300))\n timers.push(setTimeout(calculateConnections, 500))\n \n // 监听窗口大小变化\n window.addEventListener('resize', calculateConnections)\n \n return () => {\n timers.forEach(timer => clearTimeout(timer))\n window.removeEventListener('resize', calculateConnections)\n }\n }, [calculateConnections, treeData])\n\n if (!root) return null\n\n // 递归渲染树节点\n const TreeNode = ({ memberId, isRoot = false }: { memberId: string; isRoot?: boolean }) => {\n const member = getMember(memberId)\n if (!member) return null\n\n const hasChildren = member.childrenIds && member.childrenIds.length > 0\n \n // 获取配偶(取第一个配偶)\n const spouse = member.spouseIds && member.spouseIds.length > 0 \n ? getMember(member.spouseIds[0]) \n : undefined\n\n return (\n
\n {/* 节点本身 */}\n
{\n if (el) {\n nodeRefs.current.set(memberId, el)\n } else {\n nodeRefs.current.delete(memberId)\n }\n }}\n className=\"relative z-10\"\n >\n \n
\n\n {/* 子节点 */}\n {hasChildren && (\n
\n {member.childrenIds.map((childId) => (\n \n ))}\n
\n )}\n
\n )\n }\n\n return (\n
\n
\n {/* 连线层 - 使用 div 绘制 */}\n
\n {connections.map((conn, index) => {\n const isHorizontal = conn.type === 'horizontal'\n // 使用 1px 但通过 transform scale 缩小来实现细线\n const width = isHorizontal ? Math.abs(conn.to.x - conn.from.x) : 1\n const height = isHorizontal ? 1 : Math.abs(conn.to.y - conn.from.y)\n const left = Math.min(conn.from.x, conn.to.x)\n const top = Math.min(conn.from.y, conn.to.y)\n \n // 跳过无效的连线(宽度或高度为0)\n if (width <= 0 || height <= 0) return null\n \n return (\n \n )\n })}\n
\n\n {/* 树节点层 */}\n
\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1631, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/tree/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\n\nimport { SiteHeader } from \"@/components/site-header\"\nimport { TreeLayout } from \"@/components/tree/tree-layout\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Button } from \"@/components/ui/button\"\nimport { ZoomIn, ZoomOut, Move, Filter, Download } from \"lucide-react\"\nimport { useState, useRef } from \"react\"\n\nexport default function TreePage() {\n const { treeData } = useFamily()\n const [scale, setScale] = useState(1)\n const [position, setPosition] = useState({ x: 0, y: 0 })\n const [isDragging, setIsDragging] = useState(false)\n const [startPos, setStartPos] = useState({ x: 0, y: 0 })\n const [dragStartPos, setDragStartPos] = useState({ x: 0, y: 0 })\n const containerRef = useRef(null)\n\n const handleMouseDown = (e: React.MouseEvent) => {\n // 如果点击的是节点卡片,不启动拖拽\n const target = e.target as HTMLElement\n if (target.closest('.family-node-card')) {\n return\n }\n \n setIsDragging(true)\n setStartPos({ x: e.clientX - position.x, y: e.clientY - position.y })\n setDragStartPos({ x: e.clientX, y: e.clientY })\n }\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!isDragging) return\n \n // 只有移动超过5px才算拖拽,避免误触\n const deltaX = Math.abs(e.clientX - dragStartPos.x)\n const deltaY = Math.abs(e.clientY - dragStartPos.y)\n if (deltaX < 5 && deltaY < 5) return\n \n setPosition({\n x: e.clientX - startPos.x,\n y: e.clientY - startPos.y,\n })\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n }\n\n const handleExportImage = async () => {\n if (!containerRef.current) return\n\n try {\n // 临时重置位置和缩放以获取完整视图\n const originalPosition = { ...position }\n const originalScale = scale\n setPosition({ x: 0, y: 0 })\n setScale(1)\n\n // 等待 DOM 更新\n await new Promise(resolve => setTimeout(resolve, 800))\n\n // 找到实际的族谱容器(包含 TreeLayout 的 div)\n const treeContainer = containerRef.current.querySelector('div[style*=\"transform\"]') as HTMLElement\n if (!treeContainer) {\n throw new Error('找不到族谱容器')\n }\n\n // 查找所有连接线(使用更宽泛的选择器)\n const allDivs = treeContainer.querySelectorAll('div')\n const lineElements: HTMLElement[] = []\n \n allDivs.forEach(div => {\n const el = div as HTMLElement\n const classes = String(el.className || '')\n // 查找包含 bg-foreground 的元素(连接线)\n if (classes.includes('bg-foreground')) {\n lineElements.push(el)\n }\n })\n \n // 克隆容器用于导出\n const clonedContainer = treeContainer.cloneNode(true) as HTMLElement\n \n // 在克隆的容器中找到对应的连接线并设置样式\n const clonedDivs = clonedContainer.querySelectorAll('div')\n let lineIndex = 0\n clonedDivs.forEach(div => {\n const el = div as HTMLElement\n const classes = String(el.className || '')\n if (classes.includes('bg-foreground') && lineElements[lineIndex]) {\n const original = lineElements[lineIndex]\n const computed = window.getComputedStyle(original)\n \n // 直接设置内联样式\n el.style.backgroundColor = computed.backgroundColor\n el.style.width = computed.width\n el.style.height = computed.height\n el.style.position = 'absolute'\n el.style.left = computed.left\n el.style.top = computed.top\n \n lineIndex++\n }\n })\n \n // 移除卡片边框\n clonedContainer.querySelectorAll('*').forEach((child) => {\n const el = child as HTMLElement\n const classes = String(el.className || '')\n \n // 跳过连接线和连接线容器\n if (classes.includes('bg-foreground') || classes.includes('pointer-events-none')) {\n return\n }\n \n // 移除其他元素的边框\n el.style.border = 'none'\n el.style.outline = 'none'\n })\n \n // 临时添加到 DOM\n clonedContainer.style.position = 'fixed'\n clonedContainer.style.left = '-9999px'\n clonedContainer.style.top = '0'\n document.body.appendChild(clonedContainer)\n \n // 等待渲染\n await new Promise(resolve => setTimeout(resolve, 200))\n\n // 动态导入 dom-to-image-more(仅在客户端)\n const domtoimage = await import('dom-to-image-more')\n \n // 使用 toBlob 方法\n const blob = await domtoimage.default.toBlob(clonedContainer, {\n quality: 0.95,\n bgcolor: '#ffffff'\n })\n \n // 清理克隆的容器\n document.body.removeChild(clonedContainer)\n\n // 恢复原始位置和缩放\n setPosition(originalPosition)\n setScale(originalScale)\n\n // 创建下载链接\n const url = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.download = `family-tree-${new Date().toISOString().split('T')[0]}.png`\n link.href = url\n link.click()\n \n // 清理\n setTimeout(() => URL.revokeObjectURL(url), 100)\n } catch (error) {\n console.error('导出图片失败:', error)\n }\n }\n\n // Handle root not found\n if (!treeData.rootId) {\n return (\n
\n \n
暂无家族树数据
\n
\n )\n }\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n
\n\n {/* Tree Canvas */}\n \n \n \n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1131, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, + {"offset": {"line": 1164, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/hooks/use-avatar-cache.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { db } from '@/lib/db'\n\n// 全局图片缓存\nconst avatarCache = new Map()\n\nexport function useAvatarCache(avatarImageId?: string) {\n const [avatarUrl, setAvatarUrl] = useState(\n avatarImageId ? avatarCache.get(avatarImageId) : undefined\n )\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n if (!avatarImageId) {\n setAvatarUrl(undefined)\n return\n }\n\n // 如果缓存中已存在,直接使用\n const cached = avatarCache.get(avatarImageId)\n if (cached) {\n setAvatarUrl(cached)\n return\n }\n\n // 从数据库加载\n let isMounted = true\n setIsLoading(true)\n\n db.images\n .get(avatarImageId)\n .then((image) => {\n if (image && isMounted) {\n const url = URL.createObjectURL(image.blob)\n avatarCache.set(avatarImageId, url)\n setAvatarUrl(url)\n }\n })\n .catch((error) => {\n console.error('Failed to load avatar:', error)\n })\n .finally(() => {\n if (isMounted) {\n setIsLoading(false)\n }\n })\n\n return () => {\n isMounted = false\n }\n }, [avatarImageId])\n\n return { avatarUrl, isLoading }\n}\n\n// 清理缓存的工具函数(可选)\nexport function clearAvatarCache() {\n avatarCache.forEach((url) => URL.revokeObjectURL(url))\n avatarCache.clear()\n}\n"],"names":[],"mappings":";;;;;;AAAA;AACA;;;AAEA,SAAS;AACT,MAAM,cAAc,IAAI;AAEjB,SAAS,eAAe,aAAsB;IACnD,MAAM,CAAC,WAAW,aAAa,GAAG,IAAA,uYAAQ,EACxC,gBAAgB,YAAY,GAAG,CAAC,iBAAiB;IAEnD,MAAM,CAAC,WAAW,aAAa,GAAG,IAAA,uYAAQ,EAAC;IAE3C,IAAA,wYAAS,EAAC;QACR,IAAI,CAAC,eAAe;YAClB,aAAa;YACb;QACF;QAEA,gBAAgB;QAChB,MAAM,SAAS,YAAY,GAAG,CAAC;QAC/B,IAAI,QAAQ;YACV,aAAa;YACb;QACF;QAEA,SAAS;QACT,IAAI,YAAY;QAChB,aAAa;QAEb,sKAAE,CAAC,MAAM,CACN,GAAG,CAAC,eACJ,IAAI,CAAC,CAAC;YACL,IAAI,SAAS,WAAW;gBACtB,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI;gBAC1C,YAAY,GAAG,CAAC,eAAe;gBAC/B,aAAa;YACf;QACF,GACC,KAAK,CAAC,CAAC;YACN,QAAQ,KAAK,CAAC,0BAA0B;QAC1C,GACC,OAAO,CAAC;YACP,IAAI,WAAW;gBACb,aAAa;YACf;QACF;QAEF,OAAO;YACL,YAAY;QACd;IACF,GAAG;QAAC;KAAc;IAElB,OAAO;QAAE;QAAW;IAAU;AAChC;AAGO,SAAS;IACd,YAAY,OAAO,CAAC,CAAC,MAAQ,IAAI,eAAe,CAAC;IACjD,YAAY,KAAK;AACnB"}}, + {"offset": {"line": 1225, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/family-node.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FamilyMember } from \"@/types/family\"\nimport { cn } from \"@/lib/utils\"\nimport { useAvatarCache } from \"@/hooks/use-avatar-cache\"\nimport { CircleUser, CircleUserRound, Heart } from \"lucide-react\"\n\ninterface FamilyNodeProps {\n member: FamilyMember\n spouse?: FamilyMember\n isRoot?: boolean\n onSelect?: (member: FamilyMember) => void\n isHighlighted?: boolean\n}\n\n// 格式化日期显示(只显示年份)\nfunction formatYear(dateString?: string): string {\n if (!dateString) return ''\n const year = dateString.split('-')[0]\n return year\n}\n\n// 计算年龄\nfunction calculateAge(birthDate?: string, deathDate?: string): number | null {\n if (!birthDate) return null\n \n const birth = new Date(birthDate)\n const end = deathDate ? new Date(deathDate) : new Date()\n \n let age = end.getFullYear() - birth.getFullYear()\n const monthDiff = end.getMonth() - birth.getMonth()\n \n if (monthDiff < 0 || (monthDiff === 0 && end.getDate() < birth.getDate())) {\n age--\n }\n \n return age\n}\n\n// 单个人员卡片组件\nfunction PersonCard({ member, isRoot, isSpouse, onSelect, isHighlighted }: { member: FamilyMember; isRoot?: boolean; isSpouse?: boolean; onSelect?: (member: FamilyMember) => void; isHighlighted?: boolean }) {\n const { avatarUrl: avatarBlobUrl } = useAvatarCache(member?.avatarImageId)\n \n const birthYear = formatYear(member.birthDate)\n const deathYear = formatYear(member.deathDate)\n const age = calculateAge(member.birthDate, member.deathDate)\n \n const lifeSpan = birthYear\n ? deathYear\n ? `${birthYear}-${deathYear}`\n : `${birthYear}-`\n : ''\n \n const ageText = age !== null\n ? member.deathDate\n ? `享年${age}岁`\n : `${age}岁`\n : ''\n \n return (\n onSelect?.(member)}\n >\n
\n {member.generation}世\n
\n\n
\n {avatarBlobUrl ? (\n \n ) : (\n member.gender === 'female' ? (\n \n ) : (\n \n )\n )}\n
\n\n
\n
{member.surname} {member.givenName}
\n {member.courtesyName && (\n
字 {member.courtesyName}
\n )}\n {lifeSpan && (\n
\n {lifeSpan}\n
\n )}\n {ageText && (\n
\n {ageText}\n
\n )}\n {member.phone && (\n
\n 📱 {member.phone}\n
\n )}\n
\n\n {member.deathDate && (\n
\n )}\n
\n )\n}\n\nexport function FamilyNode({ member, spouse, isRoot, onSelect, isHighlighted }: FamilyNodeProps) {\n if (!spouse) {\n return \n }\n \n // 有配偶时,并排显示\n return (\n
\n \n \n \n
\n )\n}\n"],"names":[],"mappings":";;;;;AAGA;AACA;AACA;AAAA;AAAA;AALA;;;;;AAeA,iBAAiB;AACjB,SAAS,WAAW,UAAmB;IACrC,IAAI,CAAC,YAAY,OAAO;IACxB,MAAM,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,EAAE;IACrC,OAAO;AACT;AAEA,OAAO;AACP,SAAS,aAAa,SAAkB,EAAE,SAAkB;IAC1D,IAAI,CAAC,WAAW,OAAO;IAEvB,MAAM,QAAQ,IAAI,KAAK;IACvB,MAAM,MAAM,YAAY,IAAI,KAAK,aAAa,IAAI;IAElD,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,WAAW;IAC/C,MAAM,YAAY,IAAI,QAAQ,KAAK,MAAM,QAAQ;IAEjD,IAAI,YAAY,KAAM,cAAc,KAAK,IAAI,OAAO,KAAK,MAAM,OAAO,IAAK;QACzE;IACF;IAEA,OAAO;AACT;AAEA,WAAW;AACX,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAsI;IAC3M,MAAM,EAAE,WAAW,aAAa,EAAE,GAAG,IAAA,wMAAc,EAAC,QAAQ;IAE5D,MAAM,YAAY,WAAW,OAAO,SAAS;IAC7C,MAAM,YAAY,WAAW,OAAO,SAAS;IAC7C,MAAM,MAAM,aAAa,OAAO,SAAS,EAAE,OAAO,SAAS;IAE3D,MAAM,WAAW,YACb,YACE,GAAG,UAAU,CAAC,EAAE,WAAW,GAC3B,GAAG,UAAU,CAAC,CAAC,GACjB;IAEJ,MAAM,UAAU,QAAQ,OACpB,OAAO,SAAS,GACd,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GACX,GAAG,IAAI,CAAC,CAAC,GACX;IAEJ,qBACE,oaAAC;QACC,WAAW,IAAA,yKAAE,EACX,0IACA,gBACI,4HACA,SACE,yCACA,WACE,wDACA;QAEV,SAAS,IAAM,WAAW;;0BAE1B,oaAAC;gBAAI,WAAU;;oBACZ,OAAO,UAAU;oBAAC;;;;;;;0BAGrB,oaAAC;gBAAI,WAAU;0BACZ,8BACC,oaAAC;oBACC,KAAK;oBACL,KAAK,OAAO,QAAQ;oBACpB,WAAU;;;;;2BAGZ,OAAO,MAAM,KAAK,yBAChB,oaAAC,8XAAe;oBAAC,WAAU;;;;;yCAE3B,oaAAC,2WAAU;oBAAC,WAAU;;;;;;;;;;;0BAK5B,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAI,WAAU;;4BAAsD,OAAO,OAAO;4BAAC;4BAAE,OAAO,SAAS;;;;;;;oBACrG,OAAO,YAAY,kBAClB,oaAAC;wBAAI,WAAU;;4BAA2C;4BAAG,OAAO,YAAY;;;;;;;oBAEjF,0BACC,oaAAC;wBAAI,WAAU;kCACZ;;;;;;oBAGJ,yBACC,oaAAC;wBAAI,WAAU;kCACZ;;;;;;oBAGJ,OAAO,KAAK,kBACX,oaAAC;wBAAI,WAAU;;4BAAyD;4BAClE,OAAO,KAAK;;;;;;;;;;;;;YAKrB,OAAO,SAAS,kBACf,oaAAC;gBAAI,WAAU;;;;;;;;;;;;AAIvB;AAEO,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAmB;IAC7F,IAAI,CAAC,QAAQ;QACX,qBAAO,oaAAC;YAAW,QAAQ;YAAQ,QAAQ;YAAQ,UAAU;YAAU,eAAe;;;;;;IACxF;IAEA,YAAY;IACZ,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC;gBAAW,QAAQ;gBAAQ,QAAQ;gBAAQ,UAAU;gBAAU,eAAe;;;;;;0BAC/E,oaAAC,wVAAK;gBAAC,WAAU;;;;;;0BACjB,oaAAC;gBAAW,QAAQ;gBAAQ,UAAU;gBAAM,UAAU;;;;;;;;;;;;AAG5D"}}, + {"offset": {"line": 1436, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/tree-layout.tsx"],"sourcesContent":["\"use client\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { FamilyNode } from \"./family-node\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useEffect, useRef, useState, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\n\ninterface TreeLayoutProps {\n rootId: string\n onSelectMember?: (member: FamilyMember) => void\n}\n\ninterface Connection {\n from: { x: number; y: number }\n to: { x: number; y: number }\n type: 'vertical' | 'horizontal'\n}\n\nexport function TreeLayout({ rootId, onSelectMember }: TreeLayoutProps) {\n const { getMember, treeData, highlightedMemberId } = useFamily()\n const root = getMember(rootId)\n const router = useRouter()\n const containerRef = useRef(null)\n const [connections, setConnections] = useState([])\n const nodeRefs = useRef>(new Map())\n\n // 节点间距配置\n const HORIZONTAL_GAP = 32 // 2rem = 32px\n const VERTICAL_GAP = 48 // 3rem = 48px\n const CONNECTOR_HEIGHT = 48 // 连接线垂直高度\n \n // 处理节点点击\n const handleNodeClick = useCallback((member: FamilyMember) => {\n router.push(`/members/${member.id}`)\n }, [router])\n\n // 计算所有连线位置\n const calculateConnections = useCallback(() => {\n const newConnections: Connection[] = []\n const containerRect = containerRef.current?.getBoundingClientRect()\n if (!containerRect) return\n\n // 检查是否有足够的节点已注册\n if (nodeRefs.current.size === 0) return\n\n nodeRefs.current.forEach((nodeElement, nodeId) => {\n const member = getMember(nodeId)\n if (!member || !member.childrenIds || member.childrenIds.length === 0) return\n\n const parentRect = nodeElement.getBoundingClientRect()\n const parentCenterX = parentRect.left + parentRect.width / 2 - containerRect.left\n const parentBottomY = parentRect.bottom - containerRect.top\n\n // 父节点到水平线的垂直连线\n const verticalLineY = parentBottomY + CONNECTOR_HEIGHT / 2\n newConnections.push({\n from: { x: parentCenterX, y: parentBottomY },\n to: { x: parentCenterX, y: verticalLineY },\n type: 'vertical'\n })\n\n // 获取所有子节点的位置\n const childPositions = member.childrenIds\n .map(childId => {\n const childElement = nodeRefs.current.get(childId)\n if (!childElement) return null\n const childRect = childElement.getBoundingClientRect()\n return {\n id: childId,\n centerX: childRect.left + childRect.width / 2 - containerRect.left,\n topY: childRect.top - containerRect.top\n }\n })\n .filter(Boolean) as Array<{ id: string; centerX: number; topY: number }>\n\n if (childPositions.length === 0) return\n\n // 如果有多个子节点,绘制水平连线\n if (childPositions.length > 1) {\n const leftmostX = Math.min(...childPositions.map(p => p.centerX))\n const rightmostX = Math.max(...childPositions.map(p => p.centerX))\n \n newConnections.push({\n from: { x: leftmostX, y: verticalLineY },\n to: { x: rightmostX, y: verticalLineY },\n type: 'horizontal'\n })\n }\n\n // 每个子节点的垂直连线\n childPositions.forEach(child => {\n newConnections.push({\n from: { x: child.centerX, y: verticalLineY },\n to: { x: child.centerX, y: child.topY },\n type: 'vertical'\n })\n })\n })\n\n setConnections(newConnections)\n }, [getMember])\n\n useEffect(() => {\n // 多次尝试计算,确保 DOM 完全渲染\n const timers: NodeJS.Timeout[] = []\n timers.push(setTimeout(calculateConnections, 50))\n timers.push(setTimeout(calculateConnections, 150))\n timers.push(setTimeout(calculateConnections, 300))\n timers.push(setTimeout(calculateConnections, 500))\n \n // 监听窗口大小变化\n window.addEventListener('resize', calculateConnections)\n \n return () => {\n timers.forEach(timer => clearTimeout(timer))\n window.removeEventListener('resize', calculateConnections)\n }\n }, [calculateConnections, treeData])\n\n if (!root) return null\n\n // 递归渲染树节点\n const TreeNode = ({ memberId, isRoot = false }: { memberId: string; isRoot?: boolean }) => {\n const member = getMember(memberId)\n if (!member) return null\n\n const hasChildren = member.childrenIds && member.childrenIds.length > 0\n \n // 获取配偶(取第一个配偶)\n const spouse = member.spouseIds && member.spouseIds.length > 0 \n ? getMember(member.spouseIds[0]) \n : undefined\n\n return (\n
\n {/* 节点本身 */}\n
{\n if (el) {\n nodeRefs.current.set(memberId, el)\n } else {\n nodeRefs.current.delete(memberId)\n }\n }}\n className=\"relative z-10\"\n >\n \n
\n\n {/* 子节点 */}\n {hasChildren && (\n
\n {member.childrenIds.map((childId) => (\n \n ))}\n
\n )}\n
\n )\n }\n\n return (\n
\n
\n {/* 连线层 - 使用 div 绘制 */}\n
\n {connections.map((conn, index) => {\n const isHorizontal = conn.type === 'horizontal'\n // 使用 1px 但通过 transform scale 缩小来实现细线\n const width = isHorizontal ? Math.abs(conn.to.x - conn.from.x) : 1\n const height = isHorizontal ? 1 : Math.abs(conn.to.y - conn.from.y)\n const left = Math.min(conn.from.x, conn.to.x)\n const top = Math.min(conn.from.y, conn.to.y)\n \n // 跳过无效的连线(宽度或高度为0)\n if (width <= 0 || height <= 0) return null\n \n return (\n \n )\n })}\n
\n\n {/* 树节点层 */}\n
\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AALA;;;;;;AAkBO,SAAS,WAAW,EAAE,MAAM,EAAE,cAAc,EAAmB;IACpE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAA,iMAAS;IAC9D,MAAM,OAAO,UAAU;IACvB,MAAM,SAAS,IAAA,qUAAS;IACxB,MAAM,eAAe,IAAA,qYAAM,EAAiB;IAC5C,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAe,EAAE;IAC/D,MAAM,WAAW,IAAA,qYAAM,EAA8B,IAAI;IAEzD,SAAS;IACT,MAAM,iBAAiB,GAAG,cAAc;;IACxC,MAAM,eAAe,GAAG,cAAc;;IACtC,MAAM,mBAAmB,GAAG,UAAU;;IAEtC,SAAS;IACT,MAAM,kBAAkB,IAAA,0YAAW,EAAC,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;IACrC,GAAG;QAAC;KAAO;IAEX,WAAW;IACX,MAAM,uBAAuB,IAAA,0YAAW,EAAC;QACvC,MAAM,iBAA+B,EAAE;QACvC,MAAM,gBAAgB,aAAa,OAAO,EAAE;QAC5C,IAAI,CAAC,eAAe;QAEpB,gBAAgB;QAChB,IAAI,SAAS,OAAO,CAAC,IAAI,KAAK,GAAG;QAEjC,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa;YACrC,MAAM,SAAS,UAAU;YACzB,IAAI,CAAC,UAAU,CAAC,OAAO,WAAW,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,GAAG;YAEvE,MAAM,aAAa,YAAY,qBAAqB;YACpD,MAAM,gBAAgB,WAAW,IAAI,GAAG,WAAW,KAAK,GAAG,IAAI,cAAc,IAAI;YACjF,MAAM,gBAAgB,WAAW,MAAM,GAAG,cAAc,GAAG;YAE3D,eAAe;YACf,MAAM,gBAAgB,gBAAgB,mBAAmB;YACzD,eAAe,IAAI,CAAC;gBAClB,MAAM;oBAAE,GAAG;oBAAe,GAAG;gBAAc;gBAC3C,IAAI;oBAAE,GAAG;oBAAe,GAAG;gBAAc;gBACzC,MAAM;YACR;YAEA,aAAa;YACb,MAAM,iBAAiB,OAAO,WAAW,CACtC,GAAG,CAAC,CAAA;gBACH,MAAM,eAAe,SAAS,OAAO,CAAC,GAAG,CAAC;gBAC1C,IAAI,CAAC,cAAc,OAAO;gBAC1B,MAAM,YAAY,aAAa,qBAAqB;gBACpD,OAAO;oBACL,IAAI;oBACJ,SAAS,UAAU,IAAI,GAAG,UAAU,KAAK,GAAG,IAAI,cAAc,IAAI;oBAClE,MAAM,UAAU,GAAG,GAAG,cAAc,GAAG;gBACzC;YACF,GACC,MAAM,CAAC;YAEV,IAAI,eAAe,MAAM,KAAK,GAAG;YAEjC,kBAAkB;YAClB,IAAI,eAAe,MAAM,GAAG,GAAG;gBAC7B,MAAM,YAAY,KAAK,GAAG,IAAI,eAAe,GAAG,CAAC,CAAA,IAAK,EAAE,OAAO;gBAC/D,MAAM,aAAa,KAAK,GAAG,IAAI,eAAe,GAAG,CAAC,CAAA,IAAK,EAAE,OAAO;gBAEhE,eAAe,IAAI,CAAC;oBAClB,MAAM;wBAAE,GAAG;wBAAW,GAAG;oBAAc;oBACvC,IAAI;wBAAE,GAAG;wBAAY,GAAG;oBAAc;oBACtC,MAAM;gBACR;YACF;YAEA,aAAa;YACb,eAAe,OAAO,CAAC,CAAA;gBACrB,eAAe,IAAI,CAAC;oBAClB,MAAM;wBAAE,GAAG,MAAM,OAAO;wBAAE,GAAG;oBAAc;oBAC3C,IAAI;wBAAE,GAAG,MAAM,OAAO;wBAAE,GAAG,MAAM,IAAI;oBAAC;oBACtC,MAAM;gBACR;YACF;QACF;QAEA,eAAe;IACjB,GAAG;QAAC;KAAU;IAEd,IAAA,wYAAS,EAAC;QACR,qBAAqB;QACrB,MAAM,SAA2B,EAAE;QACnC,OAAO,IAAI,CAAC,WAAW,sBAAsB;QAC7C,OAAO,IAAI,CAAC,WAAW,sBAAsB;QAC7C,OAAO,IAAI,CAAC,WAAW,sBAAsB;QAC7C,OAAO,IAAI,CAAC,WAAW,sBAAsB;QAE7C,WAAW;QACX,OAAO,gBAAgB,CAAC,UAAU;QAElC,OAAO;YACL,OAAO,OAAO,CAAC,CAAA,QAAS,aAAa;YACrC,OAAO,mBAAmB,CAAC,UAAU;QACvC;IACF,GAAG;QAAC;QAAsB;KAAS;IAEnC,IAAI,CAAC,MAAM,OAAO;IAElB,UAAU;IACV,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,KAAK,EAA0C;QACpF,MAAM,SAAS,UAAU;QACzB,IAAI,CAAC,QAAQ,OAAO;QAEpB,MAAM,cAAc,OAAO,WAAW,IAAI,OAAO,WAAW,CAAC,MAAM,GAAG;QAEtE,eAAe;QACf,MAAM,SAAS,OAAO,SAAS,IAAI,OAAO,SAAS,CAAC,MAAM,GAAG,IACzD,UAAU,OAAO,SAAS,CAAC,EAAE,IAC7B;QAEJ,qBACE,oaAAC;YAAI,WAAU;;8BAEb,oaAAC;oBACC,KAAK,CAAC;wBACJ,IAAI,IAAI;4BACN,SAAS,OAAO,CAAC,GAAG,CAAC,UAAU;wBACjC,OAAO;4BACL,SAAS,OAAO,CAAC,MAAM,CAAC;wBAC1B;oBACF;oBACA,WAAU;8BAEV,cAAA,oaAAC,0MAAU;wBACT,QAAQ;wBACR,QAAQ;wBACR,UAAU;wBACV,QAAQ;wBACR,eAAe,OAAO,EAAE,KAAK;;;;;;;;;;;gBAKhC,6BACC,oaAAC;oBACC,WAAU;oBACV,OAAO;wBACL,WAAW,GAAG,aAAa,EAAE,CAAC;wBAC9B,KAAK,GAAG,eAAe,EAAE,CAAC;oBAC5B;8BAEC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,wBACvB,oaAAC;4BAAuB,UAAU;2BAAnB;;;;;;;;;;;;;;;;IAM3B;IAEA,qBACE,oaAAC;QAAI,WAAU;kBACb,cAAA,oaAAC;YAAI,KAAK;YAAc,WAAU;YAA0B,OAAO;gBAAE,WAAW;YAAO;;8BAErF,oaAAC;oBAAI,WAAU;oBAAuC,OAAO;wBAAE,QAAQ;oBAAE;8BACtE,YAAY,GAAG,CAAC,CAAC,MAAM;wBACtB,MAAM,eAAe,KAAK,IAAI,KAAK;wBACnC,qCAAqC;wBACrC,MAAM,QAAQ,eAAe,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,IAAI;wBACjE,MAAM,SAAS,eAAe,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;wBAClE,MAAM,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC5C,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBAE3C,mBAAmB;wBACnB,IAAI,SAAS,KAAK,UAAU,GAAG,OAAO;wBAEtC,qBACE,oaAAC;4BAEC,WAAU;4BACV,OAAO;gCACL,MAAM,GAAG,KAAK,EAAE,CAAC;gCACjB,KAAK,GAAG,IAAI,EAAE,CAAC;gCACf,OAAO,GAAG,MAAM,EAAE,CAAC;gCACnB,QAAQ,GAAG,OAAO,EAAE,CAAC;gCACrB,WAAW,eAAe,gBAAgB;gCAC1C,iBAAiB;4BACnB;2BATK;;;;;oBAYX;;;;;;8BAIF,oaAAC;oBAAI,WAAU;oBAAW,OAAO;wBAAE,QAAQ;oBAAG;8BAC5C,cAAA,oaAAC;wBAAS,UAAU;wBAAQ,QAAQ;;;;;;;;;;;;;;;;;;;;;;AAK9C"}}, + {"offset": {"line": 1700, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/tree/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\n\nimport { SiteHeader } from \"@/components/site-header\"\nimport { TreeLayout } from \"@/components/tree/tree-layout\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Button } from \"@/components/ui/button\"\nimport { ZoomIn, ZoomOut, Move, Filter, Download } from \"lucide-react\"\nimport { useState, useRef } from \"react\"\n\nexport default function TreePage() {\n const { treeData } = useFamily()\n const [scale, setScale] = useState(1)\n const [position, setPosition] = useState({ x: 0, y: 0 })\n const [isDragging, setIsDragging] = useState(false)\n const [startPos, setStartPos] = useState({ x: 0, y: 0 })\n const [dragStartPos, setDragStartPos] = useState({ x: 0, y: 0 })\n const containerRef = useRef(null)\n\n const handleMouseDown = (e: React.MouseEvent) => {\n // 如果点击的是节点卡片,不启动拖拽\n const target = e.target as HTMLElement\n if (target.closest('.family-node-card')) {\n return\n }\n \n setIsDragging(true)\n setStartPos({ x: e.clientX - position.x, y: e.clientY - position.y })\n setDragStartPos({ x: e.clientX, y: e.clientY })\n }\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!isDragging) return\n \n // 只有移动超过5px才算拖拽,避免误触\n const deltaX = Math.abs(e.clientX - dragStartPos.x)\n const deltaY = Math.abs(e.clientY - dragStartPos.y)\n if (deltaX < 5 && deltaY < 5) return\n \n setPosition({\n x: e.clientX - startPos.x,\n y: e.clientY - startPos.y,\n })\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n }\n\n const handleExportImage = async () => {\n if (!containerRef.current) return\n\n try {\n // 临时重置位置和缩放以获取完整视图\n const originalPosition = { ...position }\n const originalScale = scale\n setPosition({ x: 0, y: 0 })\n setScale(1)\n\n // 等待 DOM 更新\n await new Promise(resolve => setTimeout(resolve, 800))\n\n // 找到实际的族谱容器(包含 TreeLayout 的 div)\n const treeContainer = containerRef.current.querySelector('div[style*=\"transform\"]') as HTMLElement\n if (!treeContainer) {\n throw new Error('找不到族谱容器')\n }\n\n // 查找所有连接线(使用更宽泛的选择器)\n const allDivs = treeContainer.querySelectorAll('div')\n const lineElements: HTMLElement[] = []\n \n allDivs.forEach(div => {\n const el = div as HTMLElement\n const classes = String(el.className || '')\n // 查找包含 bg-foreground 的元素(连接线)\n if (classes.includes('bg-foreground')) {\n lineElements.push(el)\n }\n })\n \n // 克隆容器用于导出\n const clonedContainer = treeContainer.cloneNode(true) as HTMLElement\n \n // 在克隆的容器中找到对应的连接线并设置样式\n const clonedDivs = clonedContainer.querySelectorAll('div')\n let lineIndex = 0\n clonedDivs.forEach(div => {\n const el = div as HTMLElement\n const classes = String(el.className || '')\n if (classes.includes('bg-foreground') && lineElements[lineIndex]) {\n const original = lineElements[lineIndex]\n const computed = window.getComputedStyle(original)\n \n // 直接设置内联样式\n el.style.backgroundColor = computed.backgroundColor\n el.style.width = computed.width\n el.style.height = computed.height\n el.style.position = 'absolute'\n el.style.left = computed.left\n el.style.top = computed.top\n \n lineIndex++\n }\n })\n \n // 移除卡片边框\n clonedContainer.querySelectorAll('*').forEach((child) => {\n const el = child as HTMLElement\n const classes = String(el.className || '')\n \n // 跳过连接线和连接线容器\n if (classes.includes('bg-foreground') || classes.includes('pointer-events-none')) {\n return\n }\n \n // 移除其他元素的边框\n el.style.border = 'none'\n el.style.outline = 'none'\n })\n \n // 临时添加到 DOM\n clonedContainer.style.position = 'fixed'\n clonedContainer.style.left = '-9999px'\n clonedContainer.style.top = '0'\n document.body.appendChild(clonedContainer)\n \n // 等待渲染\n await new Promise(resolve => setTimeout(resolve, 200))\n\n // 动态导入 dom-to-image-more(仅在客户端)\n const domtoimage = await import('dom-to-image-more')\n \n // 使用 toBlob 方法\n const blob = await domtoimage.default.toBlob(clonedContainer, {\n quality: 0.95,\n bgcolor: '#ffffff'\n })\n \n // 清理克隆的容器\n document.body.removeChild(clonedContainer)\n\n // 恢复原始位置和缩放\n setPosition(originalPosition)\n setScale(originalScale)\n\n // 创建下载链接\n const url = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.download = `family-tree-${new Date().toISOString().split('T')[0]}.png`\n link.href = url\n link.click()\n \n // 清理\n setTimeout(() => URL.revokeObjectURL(url), 100)\n } catch (error) {\n console.error('导出图片失败:', error)\n }\n }\n\n // Handle root not found\n if (!treeData.rootId) {\n return (\n
\n \n
暂无家族树数据
\n
\n )\n }\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n
\n\n {/* Tree Canvas */}\n \n \n \n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js index b3fb2454..6da49842 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,6 +415,46 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { @@ -491,12 +533,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 172, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 171, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +546,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 174, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 170, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -526,25 +568,25 @@ function SiteHeader() { children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 182, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 183, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 181, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 180, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -555,46 +597,73 @@ function SiteHeader() { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 187, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 188, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { onClick: ()=>{ setCurrentTree(tree); - router.push(`/tree?treeId=${tree.id}`); + router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 198, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 201, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 204, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 199, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 190, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 217, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +674,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 222, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 218, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 186, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 179, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 169, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +711,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 231, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +720,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 237, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +729,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 240, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +738,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 243, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 230, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +758,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 250, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +769,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 251, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +790,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 271, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +798,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 272, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +810,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 275, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 270, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +827,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 277, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 269, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 268, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 263, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 261, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +856,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 290, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 249, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +874,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 297, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +882,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 298, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 296, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +902,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +910,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 304, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 302, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 301, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +930,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 310, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 309, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +952,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 317, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 318, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 316, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 315, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 314, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +993,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 325, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1001,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 326, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 324, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 331, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1030,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 334, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 335, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 333, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 332, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1064,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 340, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 341, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 339, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 322, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 313, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1099,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 347, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 346, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 248, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 168, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 167, columnNumber: 5 }, this); } @@ -1173,8 +1242,8 @@ function NewTreePage() { if (!response.ok) { throw new Error(data.error || "创建失败"); } - // 创建成功,跳转到新家族树 - router.push(`/?treeId=${data.tree.id}`); + // 创建成功,强制刷新页面以更新家族树列表 + window.location.href = `/?treeId=${data.tree.id}`; } catch (err) { setError(err.message || "创建失败,请稍后重试"); } finally{ diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js.map index 36abf703..37b7a7bc 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_cac09cc0._.js.map @@ -5,8 +5,8 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/tree?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1089, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n \n )\n}\n\nexport { Textarea }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,SAAS,EAAE,SAAS,EAAE,GAAG,OAAyC;IACzE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,ucACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1113, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession } from \"next-auth/react\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\nimport { ArrowLeft, TreePine } from \"lucide-react\"\nimport Link from \"next/link\"\n\nexport default function NewTreePage() {\n const router = useRouter()\n const { data: session } = useSession()\n const [name, setName] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [loading, setLoading] = useState(false)\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n \n if (!name.trim()) {\n setError(\"请输入家族树名称\")\n return\n }\n\n setError(\"\")\n setLoading(true)\n\n try {\n const response = await fetch(\"/api/trees\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: name.trim(),\n description: description.trim() || undefined,\n }),\n })\n\n const data = await response.json()\n\n if (!response.ok) {\n throw new Error(data.error || \"创建失败\")\n }\n\n // 创建成功,跳转到新家族树\n router.push(`/?treeId=${data.tree.id}`)\n } catch (err: any) {\n setError(err.message || \"创建失败,请稍后重试\")\n } finally {\n setLoading(false)\n }\n }\n\n if (!session) {\n return (\n
\n \n
\n \n \n 需要登录\n 请先登录后再创建家族树\n \n \n \n \n \n
\n
\n )\n }\n\n return (\n
\n \n
\n
\n
\n \n \n \n 返回首页\n \n \n

创建新家族树

\n

\n 开始记录您的家族历史和传承\n

\n
\n\n \n
\n \n
\n
\n \n
\n
\n 家族树信息\n \n 填写基本信息以创建您的家族树\n \n
\n
\n
\n\n \n {error && (\n \n {error}\n \n )}\n\n
\n \n setName(e.target.value)}\n maxLength={50}\n required\n />\n

\n 建议使用姓氏+家族/宗谱等命名\n

\n
\n\n
\n \n setDescription(e.target.value)}\n rows={4}\n maxLength={500}\n />\n

\n {description.length}/500 字\n

\n
\n\n
\n

💡 温馨提示

\n
    \n
  • • 创建后可以随时修改家族树信息
  • \n
  • • 您可以邀请家族成员共同编辑
  • \n
  • • 支持导入已有的家族数据
  • \n
\n
\n
\n\n \n router.back()}\n disabled={loading}\n className=\"flex-1\"\n >\n 取消\n \n \n {loading ? \"创建中...\" : \"创建家族树\"}\n \n \n
\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAlBA;;;;;;;;;;;;AA2BO,SAAS;IACd,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAA,iMAAS;IAClD,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,icAAU;IAC5C,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAe,EAAE;IAC/D,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAoB;IAClE,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,IAAA,uYAAQ,EAAgB;IACpE,MAAM,YAAY,IAAA,qYAAM,EAAiB;IACzC,MAAM,SAAS,IAAA,qUAAS;IAExB,MAAM,gBAAgB;QACpB,MAAM,IAAA,8bAAO,EAAC;YAAE,aAAa;QAAe;IAC9C;IAEA,eAAe;IACf,MAAM,iBAAiB;QACrB,IAAI,SAAS,MAAM,MAAM;YACvB,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW;QAChD;QACA,IAAI,SAAS,MAAM,OAAO;YACxB,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW;QACjD;QACA,OAAO;IACT;IAEA,QAAQ;IACR,MAAM,mBAAmB,OAAO,MAAkB;QAChD,EAAE,eAAe,IAAG,WAAW;QAE/B,OAAO;QACP,IAAI,KAAK,OAAO,KAAK,SAAS,MAAM,IAAI;YACtC,MAAM;YACN;QACF;QAEA,MAAM,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,qCAAqC,CAAC;QAChF,IAAI,CAAC,QAAQ,cAAc;YACzB;QACF;QAEA,OAAO;QACP,MAAM,eAAe,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC;QAC1D,IAAI,iBAAiB,KAAK,IAAI,EAAE;YAC9B,MAAM;YACN;QACF;QAEA,kBAAkB,KAAK,EAAE;QACzB,IAAI;YACF,MAAM,WAAW,MAAM,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpD,QAAQ;YACV;YAEA,IAAI,CAAC,SAAS,EAAE,EAAE;gBAChB,MAAM,QAAQ,MAAM,SAAS,IAAI;gBACjC,MAAM,IAAI,MAAM,MAAM,KAAK,IAAI;YACjC;YAEA,UAAU;YACV,MAAM;YAEN,kBAAkB;YAClB,IAAI,aAAa,OAAO,KAAK,EAAE,EAAE;gBAC/B,OAAO,QAAQ,CAAC,IAAI,GAAG;YACzB;QACF,EAAE,OAAO,OAAO;YACd,QAAQ,KAAK,CAAC,YAAY;YAC1B,MAAM,UAAU,AAAC,MAAgB,OAAO;QAC1C,SAAU;YACR,kBAAkB;QACpB;IACF;IAEA,UAAU;IACV,MAAM,kBAAkB,IAAA,0YAAW,EAAC;QAClC,IAAI,SAAS,MAAM,IAAI;YACrB,MAAM,cACH,IAAI,CAAC,CAAA,MAAO,IAAI,IAAI,IACpB,IAAI,CAAC,CAAA;gBACJ,IAAI,KAAK,KAAK,EAAE;oBACd,eAAe,KAAK,KAAK;oBACzB,gCAAgC;oBAChC,MAAM,YAAY,IAAI,gBAAgB,OAAO,QAAQ,CAAC,MAAM;oBAC5D,MAAM,SAAS,UAAU,GAAG,CAAC;oBAC7B,IAAI,QAAQ;wBACV,MAAM,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAkB,EAAE,EAAE,KAAK;wBACzD,IAAI,MAAM;4BACR,eAAe;wBACjB,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,GAAG;4BAChC,eAAe,KAAK,KAAK,CAAC,EAAE;wBAC9B;oBACF,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,GAAG;wBAChC,eAAe,KAAK,KAAK,CAAC,EAAE;oBAC9B;gBACF;YACF,GACC,KAAK,CAAC,CAAA,MAAO,QAAQ,KAAK,CAAC,YAAY;QAC5C;IACF,GAAG;QAAC,SAAS,MAAM;KAAG;IAEtB,IAAA,wYAAS,EAAC;QACR;IACF,GAAG;QAAC;KAAgB;IAEpB,iBAAiB;IACjB,IAAA,wYAAS,EAAC;QACR,MAAM,oBAAoB;YACxB;QACF;QAEA,OAAO,gBAAgB,CAAC,SAAS;QACjC,OAAO,IAAM,OAAO,mBAAmB,CAAC,SAAS;IACnD,GAAG;QAAC;KAAgB;IAEpB,aAAa;IACb,IAAA,wYAAS,EAAC;QACR,SAAS,mBAAmB,KAAiB;YAC3C,IAAI,UAAU,OAAO,IAAI,CAAC,UAAU,OAAO,CAAC,QAAQ,CAAC,MAAM,MAAM,GAAW;gBAC1E,eAAe;YACjB;QACF;QACA,SAAS,gBAAgB,CAAC,aAAa;QACvC,OAAO,IAAM,SAAS,mBAAmB,CAAC,aAAa;IACzD,GAAG,EAAE;IAEL,MAAM,eAAe,CAAC;QACpB,eAAe;QACf,cAAc;QACd,eAAe,MAAM,MAAM,GAAG;IAChC;IAEA,MAAM,qBAAqB,CAAC;QAC1B,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU;QAClC,eAAe;QACf,eAAe;IACjB;IAEA,qBACE,oaAAC;QAAO,WAAU;kBAChB,cAAA,oaAAC;YAAI,WAAU;;8BACb,oaAAC;oBAAI,WAAU;;sCACb,oaAAC,6VAAI;4BAAC,MAAK;4BAAI,WAAU;;8CACvB,oaAAC;oCAAI,WAAU;8CACb,cAAA,oaAAC,qWAAQ;wCAAC,WAAU;;;;;;;;;;;8CAEtB,oaAAC;oCAAK,WAAU;8CAA8C;;;;;;;;;;;;wBAI/D,WAAW,YAAY,MAAM,GAAG,mBAC/B,oaAAC,4MAAY;;8CACX,oaAAC,mNAAmB;oCAAC,OAAO;8CAC1B,cAAA,oaAAC,4LAAM;wCAAC,SAAQ;wCAAU,WAAU;;0DAClC,oaAAC;gDAAK,WAAU;0DAA0B,aAAa,QAAQ;;;;;;0DAC/D,oaAAC,8WAAW;gDAAC,WAAU;;;;;;;;;;;;;;;;;8CAG3B,oaAAC,mNAAmB;oCAAC,OAAM;oCAAQ,WAAU;;sDAC3C,oaAAC,iNAAiB;sDAAC;;;;;;sDACnB,oaAAC,qNAAqB;;;;;wCACrB,YAAY,GAAG,CAAC,CAAC,qBAChB,oaAAC,gNAAgB;gDAEf,SAAS;oDACP,eAAe;oDACf,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;gDACnC;gDACA,WAAU;;kEAEV,oaAAC;wDAAK,WAAU;kEAAmB,KAAK,IAAI;;;;;;kEAC5C,oaAAC;wDAAI,WAAU;;4DACZ,aAAa,OAAO,KAAK,EAAE,kBAC1B,oaAAC;gEAAK,WAAU;0EAAe;;;;;;4DAEhC,KAAK,OAAO,KAAK,SAAS,MAAM,oBAC/B,oaAAC,4LAAM;gEACL,SAAQ;gEACR,MAAK;gEACL,WAAU;gEACV,SAAS,CAAC,IAAM,iBAAiB,MAAM;gEACvC,UAAU,mBAAmB,KAAK,EAAE;0EAEpC,cAAA,oaAAC,+VAAM;oEAAC,WAAU;;;;;;;;;;;;;;;;;;+CApBnB,KAAK,EAAE;;;;;sDA0BhB,oaAAC,qNAAqB;;;;;sDACtB,oaAAC,gNAAgB;4CACf,SAAS,IAAM,OAAO,IAAI,CAAC;4CAC3B,WAAU;;8DAEV,oaAAC,qVAAI;oDAAC,WAAU;;;;;;gDAAiB;;;;;;;;;;;;;;;;;;;;;;;;;8BAQ3C,oaAAC;oBAAI,WAAU;;sCACb,oaAAC,6VAAI;4BACH,MAAK;4BACL,WAAU;sCACX;;;;;;sCAGD,oaAAC,6VAAI;4BAAC,MAAK;4BAAQ,WAAU;sCAA0C;;;;;;sCAGvE,oaAAC,6VAAI;4BAAC,MAAK;4BAAW,WAAU;sCAA0C;;;;;;sCAG1E,oaAAC,6VAAI;4BAAC,MAAK;4BAAY,WAAU;sCAA0C;;;;;;;;;;;;8BAK7E,oaAAC;oBAAI,WAAU;;sCACb,oaAAC;4BAAI,WAAU;4BAA2B,KAAK;;8CAC7C,oaAAC,2VAAM;oCAAC,WAAU;;;;;;8CAClB,oaAAC,0LAAK;oCACJ,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,aAAa,EAAE,MAAM,CAAC,KAAK;oCAC5C,WAAU;;;;;;gCAIX,eAAe,cAAc,MAAM,GAAG,mBACrC,oaAAC;oCAAI,WAAU;8CACZ,cAAc,GAAG,CAAC,CAAC,uBAClB,oaAAC;4CAEC,SAAS,IAAM,mBAAmB,OAAO,EAAE;4CAC3C,WAAU;sDAEV,cAAA,oaAAC;gDAAI,WAAU;0DACb,cAAA,oaAAC;oDAAI,WAAU;;sEACb,oaAAC;4DAAI,WAAU;;8EACb,oaAAC;oEAAK,WAAU;8EAAe,OAAO,QAAQ;;;;;;8EAC9C,oaAAC;oEAAK,WAAW,CAAC,8BAA8B,EAAE,OAAO,MAAM,KAAK,SAAS,8BAA8B,6BAA6B;8EACrI,OAAO,MAAM,KAAK,SAAS,MAAM;;;;;;8EAEpC,oaAAC;oEAAK,WAAU;;wEAAgC;wEAAE,OAAO,UAAU;wEAAC;;;;;;;;;;;;;sEAEtE,oaAAC;4DAAE,WAAU;;gEACV,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,OAAO,SAAS,EAAE;gEAC5C,OAAO,UAAU,IAAI,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE;;;;;;;;;;;;;;;;;;2CAfhD,OAAO,EAAE;;;;;;;;;;gCAyBrB,eAAe,eAAe,cAAc,MAAM,KAAK,mBACtD,oaAAC;oCAAI,WAAU;8CAA2I;;;;;;;;;;;;sCAM9J,oaAAC,4LAAM;4BAAC,SAAQ;4BAAQ,MAAK;4BAAO,WAAU;;8CAC5C,oaAAC,qVAAI;oCAAC,WAAU;;;;;;8CAChB,oaAAC;oCAAK,WAAU;8CAAU;;;;;;;;;;;;sCAG5B,oaAAC,6VAAI;4BAAC,MAAK;sCACT,cAAA,oaAAC,4LAAM;gCAAC,SAAQ;gCAAQ,MAAK;gCAAO,WAAU;;kDAC5C,oaAAC,iWAAQ;wCAAC,WAAU;;;;;;kDACpB,oaAAC;wCAAK,WAAU;kDAAU;;;;;;;;;;;;;;;;;wBAI7B,WAAW,0BACV,oaAAC,4LAAM;4BAAC,WAAU;sCAChB,cAAA,oaAAC,oMAAc;0CAAC;;;;;;;;;;mCAEhB,wBACF,oaAAC,4MAAY;;8CACX,oaAAC,mNAAmB;oCAAC,OAAO;8CAC1B,cAAA,oaAAC,4LAAM;wCAAC,SAAQ;wCAAQ,WAAU;kDAChC,cAAA,oaAAC,4LAAM;4CAAC,WAAU;;8DAChB,oaAAC,iMAAW;oDAAC,KAAK;oDAAW,KAAK,QAAQ,IAAI,EAAE,QAAQ;;;;;;8DACxD,oaAAC,oMAAc;8DAAE;;;;;;;;;;;;;;;;;;;;;;8CAIvB,oaAAC,mNAAmB;oCAAC,WAAU;oCAAO,OAAM;oCAAM,UAAU;;sDAC1D,oaAAC,iNAAiB;4CAAC,WAAU;sDAC3B,cAAA,oaAAC;gDAAI,WAAU;;kEACb,oaAAC;wDAAE,WAAU;kEAAoC,QAAQ,IAAI,EAAE,QAAQ;;;;;;kEACvE,oaAAC;wDAAE,WAAU;kEACV,QAAQ,IAAI,EAAE;;;;;;;;;;;;;;;;;sDAIrB,oaAAC,qNAAqB;;;;;sDACtB,oaAAC,gNAAgB;4CAAC,OAAO;sDACvB,cAAA,oaAAC,6VAAI;gDAAC,MAAK;gDAAY,WAAU;;kEAC/B,oaAAC,qVAAI;wDAAC,WAAU;;;;;;kEAChB,oaAAC;kEAAK;;;;;;;;;;;;;;;;;sDAGV,oaAAC,qNAAqB;;;;;sDACtB,oaAAC,gNAAgB;4CAAC,SAAS;4CAAe,WAAU;;8DAClD,oaAAC,+VAAM;oDAAC,WAAU;;;;;;8DAClB,oaAAC;8DAAK;;;;;;;;;;;;;;;;;;;;;;;iDAKZ,oaAAC,6VAAI;4BAAC,MAAK;sCACT,cAAA,oaAAC,4LAAM;gCAAC,SAAQ;gCAAU,MAAK;0CAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASlD"}}, + {"offset": {"line": 1131, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1158, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/textarea.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n \n )\n}\n\nexport { Textarea }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,SAAS,EAAE,SAAS,EAAE,GAAG,OAAyC;IACzE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,ucACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1182, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/trees/new/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession } from \"next-auth/react\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\nimport { ArrowLeft, TreePine } from \"lucide-react\"\nimport Link from \"next/link\"\n\nexport default function NewTreePage() {\n const router = useRouter()\n const { data: session } = useSession()\n const [name, setName] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [loading, setLoading] = useState(false)\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n \n if (!name.trim()) {\n setError(\"请输入家族树名称\")\n return\n }\n\n setError(\"\")\n setLoading(true)\n\n try {\n const response = await fetch(\"/api/trees\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: name.trim(),\n description: description.trim() || undefined,\n }),\n })\n\n const data = await response.json()\n\n if (!response.ok) {\n throw new Error(data.error || \"创建失败\")\n }\n\n // 创建成功,强制刷新页面以更新家族树列表\n window.location.href = `/?treeId=${data.tree.id}`\n } catch (err: any) {\n setError(err.message || \"创建失败,请稍后重试\")\n } finally {\n setLoading(false)\n }\n }\n\n if (!session) {\n return (\n
\n \n
\n \n \n 需要登录\n 请先登录后再创建家族树\n \n \n \n \n \n
\n
\n )\n }\n\n return (\n
\n \n
\n
\n
\n \n \n \n 返回首页\n \n \n

创建新家族树

\n

\n 开始记录您的家族历史和传承\n

\n
\n\n \n
\n \n
\n
\n \n
\n
\n 家族树信息\n \n 填写基本信息以创建您的家族树\n \n
\n
\n
\n\n \n {error && (\n \n {error}\n \n )}\n\n
\n \n setName(e.target.value)}\n maxLength={50}\n required\n />\n

\n 建议使用姓氏+家族/宗谱等命名\n

\n
\n\n
\n \n setDescription(e.target.value)}\n rows={4}\n maxLength={500}\n />\n

\n {description.length}/500 字\n

\n
\n\n
\n

💡 温馨提示

\n
    \n
  • • 创建后可以随时修改家族树信息
  • \n
  • • 您可以邀请家族成员共同编辑
  • \n
  • • 支持导入已有的家族数据
  • \n
\n
\n
\n\n \n router.back()}\n disabled={loading}\n className=\"flex-1\"\n >\n 取消\n \n \n {loading ? \"创建中...\" : \"创建家族树\"}\n \n \n
\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js index 785c7720..e9cb065c 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,10 +415,55 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { - fetch('/api/trees').then((res)=>res.json()).then((data)=>{ + fetch('/api/trees').then((res)=>{ + if (!res.ok) { + throw new Error(`HTTP ${res.status}`); + } + return res.json(); + }).then((data)=>{ if (data.trees) { setFamilyTrees(data.trees); // 如果 URL 中有 treeId,使用该树,否则使用第一个 @@ -433,7 +480,9 @@ function SiteHeader() { setCurrentTree(data.trees[0]); } } - }).catch((err)=>console.error('获取家族树失败:', err)); + }).catch((err)=>{ + console.error('获取家族树列表失败:', err); + }); } }, [ session?.user?.id @@ -491,12 +540,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 179, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 178, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +553,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 181, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 177, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -519,48 +568,48 @@ function SiteHeader() { asChild: true, children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { variant: "outline", - className: "gap-2", + className: "gap-2 min-w-[200px]", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "max-w-[150px] truncate", + className: "flex-1 truncate text-left", children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 189, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { - className: "h-4 w-4" + className: "h-4 w-4 flex-shrink-0" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 190, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 188, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 187, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { align: "start", - className: "w-56", + className: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[200px]", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuLabel"], { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 194, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 195, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -568,33 +617,60 @@ function SiteHeader() { setCurrentTree(tree); router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 205, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 208, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 218, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 206, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 197, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 224, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +681,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 229, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 225, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 193, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 186, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 176, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +718,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 238, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +727,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 244, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +736,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 247, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +745,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 250, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 237, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +765,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 257, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +776,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 258, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +797,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 278, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +805,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 279, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +817,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 282, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 277, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +834,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 284, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 276, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 275, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 270, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 268, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +863,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 297, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 256, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +881,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 304, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +889,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 305, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 303, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +909,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 310, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +917,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 311, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 309, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 308, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +937,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 317, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 316, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +959,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 324, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 325, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 323, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 322, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 321, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +1000,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 332, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1008,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 333, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 331, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 330, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1037,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 341, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 342, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 340, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 339, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 345, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1071,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 347, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 348, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 346, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 329, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 320, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1106,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 354, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 353, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 255, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 175, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 174, columnNumber: 5 }, this); } @@ -1774,11 +1850,9 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch ; ; function DashboardPage() { - const { treeData, currentTree, isLoading } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])(); + const { treeData, isLoading, currentTree } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])(); const { data: session } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSession"])(); const [recentActivities, setRecentActivities] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); - // 调试日志 - console.log('Dashboard - treeData:', treeData, 'currentTree:', currentTree?.name, 'isLoading:', isLoading); // 加载最近的操作日志 (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{ if (currentTree?.id && session?.user?.id) { @@ -1871,7 +1945,7 @@ function DashboardPage() { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 141, + lineNumber: 138, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", { @@ -1887,7 +1961,7 @@ function DashboardPage() { children: currentTree?.name || '家族族谱' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 146, + lineNumber: 143, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -1898,13 +1972,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 149, + lineNumber: 146, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 145, + lineNumber: 142, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -1920,19 +1994,19 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 157, + lineNumber: 154, columnNumber: 17 }, this), "查看世系图" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 156, + lineNumber: 153, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 155, + lineNumber: 152, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -1944,31 +2018,31 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 163, + lineNumber: 160, columnNumber: 17 }, this), "添加成员" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 162, + lineNumber: 159, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 161, + lineNumber: 158, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 154, + lineNumber: 151, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 144, + lineNumber: 141, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -1982,12 +2056,12 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 175, + lineNumber: 172, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 171, + lineNumber: 168, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { @@ -1998,12 +2072,12 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 181, + lineNumber: 178, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 177, + lineNumber: 174, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { @@ -2014,18 +2088,18 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 187, + lineNumber: 184, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 183, + lineNumber: 180, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 170, + lineNumber: 167, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Tabs"], { @@ -2043,7 +2117,7 @@ function DashboardPage() { children: "最近更新" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 194, + lineNumber: 191, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -2051,7 +2125,7 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 195, + lineNumber: 192, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -2059,7 +2133,7 @@ function DashboardPage() { children: "统计图表" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 196, + lineNumber: 193, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -2067,13 +2141,13 @@ function DashboardPage() { children: "迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 197, + lineNumber: 194, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 193, + lineNumber: 190, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -2088,24 +2162,24 @@ function DashboardPage() { className: "h-3 w-3" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 201, + lineNumber: 198, columnNumber: 22 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 200, + lineNumber: 197, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 199, + lineNumber: 196, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 192, + lineNumber: 189, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -2124,20 +2198,20 @@ function DashboardPage() { children: "近期修谱动态" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 210, + lineNumber: 207, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的最新变动与修订" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 211, + lineNumber: 208, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 209, + lineNumber: 206, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -2155,20 +2229,20 @@ function DashboardPage() { className: "h-full w-px bg-border group-last:hidden" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 220, + lineNumber: 217, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: `absolute top-2 h-2 w-2 rounded-full ring-4 ring-background ${activity.action === 'create' ? 'bg-green-500' : activity.action === 'update' ? 'bg-blue-500' : activity.action === 'delete' ? 'bg-red-500' : 'bg-purple-500'}` }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 221, + lineNumber: 218, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 219, + lineNumber: 216, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2182,7 +2256,7 @@ function DashboardPage() { children: activity.action === 'create' ? '创建' : activity.action === 'update' ? '更新' : activity.action === 'delete' ? '删除' : '导入' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 230, + lineNumber: 227, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -2190,7 +2264,7 @@ function DashboardPage() { children: activity.entityName || '未知' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 240, + lineNumber: 237, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -2198,13 +2272,13 @@ function DashboardPage() { children: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$date$2d$fns$40$4$2e$1$2e$0$2f$node_modules$2f$date$2d$fns$2f$format$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["format"])(new Date(activity.timestamp), 'MM-dd HH:mm') }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 241, + lineNumber: 238, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 229, + lineNumber: 226, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -2217,47 +2291,47 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 245, + lineNumber: 242, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 228, + lineNumber: 225, columnNumber: 29 }, this) ] }, activity.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 218, + lineNumber: 215, columnNumber: 27 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center text-muted-foreground py-8", children: "暂无修谱记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 255, + lineNumber: 252, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 215, + lineNumber: 212, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 214, + lineNumber: 211, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 213, + lineNumber: 210, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 208, + lineNumber: 205, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2273,19 +2347,19 @@ function DashboardPage() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 268, + lineNumber: 265, columnNumber: 23 }, this), "本月祭祖/纪念" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 267, + lineNumber: 264, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 266, + lineNumber: 263, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -2308,7 +2382,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 280, + lineNumber: 277, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -2316,13 +2390,13 @@ function DashboardPage() { children: anniversary.day }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 283, + lineNumber: 280, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 279, + lineNumber: 276, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2337,7 +2411,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 286, + lineNumber: 283, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -2352,24 +2426,24 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 289, + lineNumber: 286, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 285, + lineNumber: 282, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 278, + lineNumber: 275, columnNumber: 29 }, this) }, `${anniversary.member.id}-${anniversary.type}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 277, + lineNumber: 274, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2377,34 +2451,34 @@ function DashboardPage() { children: "本月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 299, + lineNumber: 296, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 272, + lineNumber: 269, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 265, + lineNumber: 262, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 264, + lineNumber: 261, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 207, + lineNumber: 204, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 206, + lineNumber: 203, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -2420,20 +2494,20 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 313, + lineNumber: 310, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "未来三个月内的生日和忌日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 314, + lineNumber: 311, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 312, + lineNumber: 309, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -2495,7 +2569,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 370, + lineNumber: 367, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -2503,13 +2577,13 @@ function DashboardPage() { children: event.date.getDate() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 371, + lineNumber: 368, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 369, + lineNumber: 366, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2524,7 +2598,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 374, + lineNumber: 371, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -2539,34 +2613,34 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 377, + lineNumber: 374, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 373, + lineNumber: 370, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 368, + lineNumber: 365, columnNumber: 33 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 367, + lineNumber: 364, columnNumber: 31 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 366, + lineNumber: 363, columnNumber: 29 }, this) }, `${event.member.id}-${event.type}-${index}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 365, + lineNumber: 362, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2574,29 +2648,29 @@ function DashboardPage() { children: "未来三个月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 389, + lineNumber: 386, columnNumber: 23 }, this); })() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 317, + lineNumber: 314, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 316, + lineNumber: 313, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 311, + lineNumber: 308, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 310, + lineNumber: 307, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -2606,12 +2680,12 @@ function DashboardPage() { members: Object.values(treeData.members) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 401, + lineNumber: 398, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 400, + lineNumber: 397, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -2627,20 +2701,20 @@ function DashboardPage() { children: "家族迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 408, + lineNumber: 405, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的籍贯分布" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 409, + lineNumber: 406, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 407, + lineNumber: 404, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -2669,7 +2743,7 @@ function DashboardPage() { children: location }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 433, + lineNumber: 430, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -2680,13 +2754,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 434, + lineNumber: 431, columnNumber: 29 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 432, + lineNumber: 429, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2701,7 +2775,7 @@ function DashboardPage() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 442, + lineNumber: 439, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -2713,36 +2787,36 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 443, + lineNumber: 440, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 441, + lineNumber: 438, columnNumber: 33 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 440, + lineNumber: 437, columnNumber: 31 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 438, + lineNumber: 435, columnNumber: 27 }, this) ] }, location, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 431, + lineNumber: 428, columnNumber: 25 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center py-12 text-muted-foreground", children: "暂无迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 451, + lineNumber: 448, columnNumber: 23 }, this); }, [ @@ -2750,41 +2824,41 @@ function DashboardPage() { ]) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 412, + lineNumber: 409, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 411, + lineNumber: 408, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 406, + lineNumber: 403, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 405, + lineNumber: 402, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 191, + lineNumber: 188, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 143, + lineNumber: 140, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 140, + lineNumber: 137, columnNumber: 5 }, this); } @@ -2802,7 +2876,7 @@ function StatCard({ title, value, subtitle, icon }) { children: title }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 476, + lineNumber: 473, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2810,13 +2884,13 @@ function StatCard({ title, value, subtitle, icon }) { children: icon }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 477, + lineNumber: 474, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 475, + lineNumber: 472, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -2827,7 +2901,7 @@ function StatCard({ title, value, subtitle, icon }) { children: value }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 480, + lineNumber: 477, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -2835,24 +2909,24 @@ function StatCard({ title, value, subtitle, icon }) { children: subtitle }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 481, + lineNumber: 478, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 479, + lineNumber: 476, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 474, + lineNumber: 471, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 473, + lineNumber: 470, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js.map index 7c44df35..a5194982 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_d1bf7cce._.js.map @@ -5,9 +5,9 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, - {"offset": {"line": 1132, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/tabs.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,KAAK,EACZ,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,SAAS,EAChB,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uGACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,mqBACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1198, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/dashboard/statistics-charts.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect, useRef } from \"react\"\nimport * as echarts from \"echarts\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { Card, CardContent, CardHeader, CardTitle, CardDescription } from \"@/components/ui/card\"\n\ninterface StatisticsChartsProps {\n members: FamilyMember[]\n}\n\nexport function StatisticsCharts({ members }: StatisticsChartsProps) {\n const genderChartRef = useRef(null)\n const generationChartRef = useRef(null)\n const ageDistributionRef = useRef(null)\n const birthYearChartRef = useRef(null)\n\n useEffect(() => {\n if (!genderChartRef.current || members.length === 0) return\n\n // 性别分布饼图\n const genderChart = echarts.init(genderChartRef.current)\n const genderData = {\n male: members.filter(m => m.gender === 'male').length,\n female: members.filter(m => m.gender === 'female').length,\n other: members.filter(m => m.gender === 'other').length,\n }\n\n genderChart.setOption({\n title: {\n text: '性别分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'item',\n formatter: '{b}: {c} 人 ({d}%)'\n },\n legend: {\n bottom: 10,\n left: 'center'\n },\n series: [\n {\n type: 'pie',\n radius: ['40%', '70%'],\n center: ['50%', '50%'],\n avoidLabelOverlap: false,\n itemStyle: {\n borderRadius: 10,\n borderColor: '#fff',\n borderWidth: 2\n },\n label: {\n show: false\n },\n emphasis: {\n label: {\n show: true,\n fontSize: 16,\n fontWeight: 'bold'\n }\n },\n data: [\n { value: genderData.male, name: '男性', itemStyle: { color: '#3b82f6' } },\n { value: genderData.female, name: '女性', itemStyle: { color: '#ec4899' } },\n ...(genderData.other > 0 ? [{ value: genderData.other, name: '其他', itemStyle: { color: '#8b5cf6' } }] : [])\n ]\n }\n ]\n })\n\n return () => {\n genderChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!generationChartRef.current || members.length === 0) return\n\n // 世代分布柱状图\n const generationChart = echarts.init(generationChartRef.current)\n const generationData = new Map()\n \n members.forEach(m => {\n const gen = m.generation || 0\n generationData.set(gen, (generationData.get(gen) || 0) + 1)\n })\n\n const sortedGenerations = Array.from(generationData.entries()).sort((a, b) => a[0] - b[0])\n\n generationChart.setOption({\n title: {\n text: '世代分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow'\n },\n formatter: '{b}世: {c} 人'\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n top: '15%',\n containLabel: true\n },\n xAxis: {\n type: 'category',\n data: sortedGenerations.map(([gen]) => `第${gen}世`),\n axisLabel: {\n rotate: 45\n }\n },\n yAxis: {\n type: 'value',\n name: '人数'\n },\n series: [\n {\n type: 'bar',\n data: sortedGenerations.map(([, count]) => count),\n itemStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#83bff6' },\n { offset: 0.5, color: '#188df0' },\n { offset: 1, color: '#188df0' }\n ])\n },\n emphasis: {\n itemStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#2378f7' },\n { offset: 0.7, color: '#2378f7' },\n { offset: 1, color: '#83bff6' }\n ])\n }\n }\n }\n ]\n })\n\n return () => {\n generationChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!ageDistributionRef.current || members.length === 0) return\n\n // 年龄分布图\n const ageChart = echarts.init(ageDistributionRef.current)\n const currentYear = new Date().getFullYear()\n \n const ageGroups = {\n '0-18': 0,\n '19-35': 0,\n '36-50': 0,\n '51-65': 0,\n '66+': 0,\n '已故': 0\n }\n\n members.forEach(m => {\n if (m.deathDate) {\n ageGroups['已故']++\n } else if (m.birthDate) {\n const age = currentYear - new Date(m.birthDate).getFullYear()\n if (age <= 18) ageGroups['0-18']++\n else if (age <= 35) ageGroups['19-35']++\n else if (age <= 50) ageGroups['36-50']++\n else if (age <= 65) ageGroups['51-65']++\n else ageGroups['66+']++\n }\n })\n\n ageChart.setOption({\n title: {\n text: '年龄分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'item',\n formatter: '{b}: {c} 人 ({d}%)'\n },\n legend: {\n bottom: 10,\n left: 'center'\n },\n series: [\n {\n type: 'pie',\n radius: '60%',\n center: ['50%', '50%'],\n data: Object.entries(ageGroups)\n .filter(([, count]) => count > 0)\n .map(([name, value]) => ({ name, value })),\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n }\n }\n }\n ]\n })\n\n return () => {\n ageChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!birthYearChartRef.current || members.length === 0) return\n\n // 出生年份趋势图\n const birthYearChart = echarts.init(birthYearChartRef.current)\n const birthYearData = new Map()\n \n members.forEach(m => {\n if (m.birthDate) {\n const year = new Date(m.birthDate).getFullYear()\n if (year >= 1900) { // 只统计1900年以后的\n const decade = Math.floor(year / 10) * 10\n birthYearData.set(decade, (birthYearData.get(decade) || 0) + 1)\n }\n }\n })\n\n const sortedYears = Array.from(birthYearData.entries()).sort((a, b) => a[0] - b[0])\n\n birthYearChart.setOption({\n title: {\n text: '出生年代分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'axis',\n formatter: '{b}年代: {c} 人'\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n top: '15%',\n containLabel: true\n },\n xAxis: {\n type: 'category',\n data: sortedYears.map(([year]) => `${year}s`),\n axisLabel: {\n rotate: 45\n }\n },\n yAxis: {\n type: 'value',\n name: '人数'\n },\n series: [\n {\n type: 'line',\n data: sortedYears.map(([, count]) => count),\n smooth: true,\n areaStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: 'rgba(99, 102, 241, 0.5)' },\n { offset: 1, color: 'rgba(99, 102, 241, 0.1)' }\n ])\n },\n lineStyle: {\n color: '#6366f1',\n width: 2\n },\n itemStyle: {\n color: '#6366f1'\n }\n }\n ]\n })\n\n return () => {\n birthYearChart.dispose()\n }\n }, [members])\n\n return (\n
\n \n \n 性别分布\n 家族成员性别比例\n \n \n
\n \n \n\n \n \n 世代分布\n 各世代人数统计\n \n \n
\n \n \n\n \n \n 年龄分布\n 按年龄段划分的人数\n \n \n
\n \n \n\n \n \n 出生年代分布\n 各年代出生人数趋势\n \n \n
\n \n \n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1739, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3 } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, currentTree, isLoading } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 调试日志\n console.log('Dashboard - treeData:', treeData, 'currentTree:', currentTree?.name, 'isLoading:', isLoading)\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n return {\n totalMembers,\n maxGeneration,\n yearsSpan,\n earliestYear\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n \n \n \n \n \n \n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
{icon}
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => {\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}`)\n }\n return res.json()\n })\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => {\n console.error('获取家族树列表失败:', err)\n })\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1138, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, + {"offset": {"line": 1208, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/tabs.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,KAAK,EACZ,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,SAAS,EAChB,SAAS,EACT,GAAG,OAC6C;IAChD,qBACE,oaAAC,mbAAkB;QACjB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uGACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,mqBACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,uBAAuB;QACpC,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1274, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/dashboard/statistics-charts.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect, useRef } from \"react\"\nimport * as echarts from \"echarts\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { Card, CardContent, CardHeader, CardTitle, CardDescription } from \"@/components/ui/card\"\n\ninterface StatisticsChartsProps {\n members: FamilyMember[]\n}\n\nexport function StatisticsCharts({ members }: StatisticsChartsProps) {\n const genderChartRef = useRef(null)\n const generationChartRef = useRef(null)\n const ageDistributionRef = useRef(null)\n const birthYearChartRef = useRef(null)\n\n useEffect(() => {\n if (!genderChartRef.current || members.length === 0) return\n\n // 性别分布饼图\n const genderChart = echarts.init(genderChartRef.current)\n const genderData = {\n male: members.filter(m => m.gender === 'male').length,\n female: members.filter(m => m.gender === 'female').length,\n other: members.filter(m => m.gender === 'other').length,\n }\n\n genderChart.setOption({\n title: {\n text: '性别分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'item',\n formatter: '{b}: {c} 人 ({d}%)'\n },\n legend: {\n bottom: 10,\n left: 'center'\n },\n series: [\n {\n type: 'pie',\n radius: ['40%', '70%'],\n center: ['50%', '50%'],\n avoidLabelOverlap: false,\n itemStyle: {\n borderRadius: 10,\n borderColor: '#fff',\n borderWidth: 2\n },\n label: {\n show: false\n },\n emphasis: {\n label: {\n show: true,\n fontSize: 16,\n fontWeight: 'bold'\n }\n },\n data: [\n { value: genderData.male, name: '男性', itemStyle: { color: '#3b82f6' } },\n { value: genderData.female, name: '女性', itemStyle: { color: '#ec4899' } },\n ...(genderData.other > 0 ? [{ value: genderData.other, name: '其他', itemStyle: { color: '#8b5cf6' } }] : [])\n ]\n }\n ]\n })\n\n return () => {\n genderChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!generationChartRef.current || members.length === 0) return\n\n // 世代分布柱状图\n const generationChart = echarts.init(generationChartRef.current)\n const generationData = new Map()\n \n members.forEach(m => {\n const gen = m.generation || 0\n generationData.set(gen, (generationData.get(gen) || 0) + 1)\n })\n\n const sortedGenerations = Array.from(generationData.entries()).sort((a, b) => a[0] - b[0])\n\n generationChart.setOption({\n title: {\n text: '世代分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow'\n },\n formatter: '{b}世: {c} 人'\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n top: '15%',\n containLabel: true\n },\n xAxis: {\n type: 'category',\n data: sortedGenerations.map(([gen]) => `第${gen}世`),\n axisLabel: {\n rotate: 45\n }\n },\n yAxis: {\n type: 'value',\n name: '人数'\n },\n series: [\n {\n type: 'bar',\n data: sortedGenerations.map(([, count]) => count),\n itemStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#83bff6' },\n { offset: 0.5, color: '#188df0' },\n { offset: 1, color: '#188df0' }\n ])\n },\n emphasis: {\n itemStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#2378f7' },\n { offset: 0.7, color: '#2378f7' },\n { offset: 1, color: '#83bff6' }\n ])\n }\n }\n }\n ]\n })\n\n return () => {\n generationChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!ageDistributionRef.current || members.length === 0) return\n\n // 年龄分布图\n const ageChart = echarts.init(ageDistributionRef.current)\n const currentYear = new Date().getFullYear()\n \n const ageGroups = {\n '0-18': 0,\n '19-35': 0,\n '36-50': 0,\n '51-65': 0,\n '66+': 0,\n '已故': 0\n }\n\n members.forEach(m => {\n if (m.deathDate) {\n ageGroups['已故']++\n } else if (m.birthDate) {\n const age = currentYear - new Date(m.birthDate).getFullYear()\n if (age <= 18) ageGroups['0-18']++\n else if (age <= 35) ageGroups['19-35']++\n else if (age <= 50) ageGroups['36-50']++\n else if (age <= 65) ageGroups['51-65']++\n else ageGroups['66+']++\n }\n })\n\n ageChart.setOption({\n title: {\n text: '年龄分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'item',\n formatter: '{b}: {c} 人 ({d}%)'\n },\n legend: {\n bottom: 10,\n left: 'center'\n },\n series: [\n {\n type: 'pie',\n radius: '60%',\n center: ['50%', '50%'],\n data: Object.entries(ageGroups)\n .filter(([, count]) => count > 0)\n .map(([name, value]) => ({ name, value })),\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n }\n }\n }\n ]\n })\n\n return () => {\n ageChart.dispose()\n }\n }, [members])\n\n useEffect(() => {\n if (!birthYearChartRef.current || members.length === 0) return\n\n // 出生年份趋势图\n const birthYearChart = echarts.init(birthYearChartRef.current)\n const birthYearData = new Map()\n \n members.forEach(m => {\n if (m.birthDate) {\n const year = new Date(m.birthDate).getFullYear()\n if (year >= 1900) { // 只统计1900年以后的\n const decade = Math.floor(year / 10) * 10\n birthYearData.set(decade, (birthYearData.get(decade) || 0) + 1)\n }\n }\n })\n\n const sortedYears = Array.from(birthYearData.entries()).sort((a, b) => a[0] - b[0])\n\n birthYearChart.setOption({\n title: {\n text: '出生年代分布',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal'\n }\n },\n tooltip: {\n trigger: 'axis',\n formatter: '{b}年代: {c} 人'\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n top: '15%',\n containLabel: true\n },\n xAxis: {\n type: 'category',\n data: sortedYears.map(([year]) => `${year}s`),\n axisLabel: {\n rotate: 45\n }\n },\n yAxis: {\n type: 'value',\n name: '人数'\n },\n series: [\n {\n type: 'line',\n data: sortedYears.map(([, count]) => count),\n smooth: true,\n areaStyle: {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: 'rgba(99, 102, 241, 0.5)' },\n { offset: 1, color: 'rgba(99, 102, 241, 0.1)' }\n ])\n },\n lineStyle: {\n color: '#6366f1',\n width: 2\n },\n itemStyle: {\n color: '#6366f1'\n }\n }\n ]\n })\n\n return () => {\n birthYearChart.dispose()\n }\n }, [members])\n\n return (\n
\n \n \n 性别分布\n 家族成员性别比例\n \n \n
\n \n \n\n \n \n 世代分布\n 各世代人数统计\n \n \n
\n \n \n\n \n \n 年龄分布\n 按年龄段划分的人数\n \n \n
\n \n \n\n \n \n 出生年代分布\n 各年代出生人数趋势\n \n \n
\n \n \n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1815, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3 } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n return {\n totalMembers,\n maxGeneration,\n yearsSpan,\n earliestYear\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n \n \n \n \n \n \n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
{icon}
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAdA;;;;;;;;;;;;;;AA8Be,SAAS;IACtB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,iMAAS;IACtD,MAAM,EAAE,MAAM,OAAO,EAAE,GAAG,IAAA,icAAU;IACpC,MAAM,CAAC,kBAAkB,oBAAoB,GAAG,IAAA,uYAAQ,EAAgB,EAAE;IAE1E,YAAY;IACZ,IAAA,wYAAS,EAAC;QACR,IAAI,aAAa,MAAM,SAAS,MAAM,IAAI;YACxC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC,uBAAuB,CAAC,EACxD,IAAI,CAAC,CAAA;gBACJ,IAAI,CAAC,IAAI,EAAE,EAAE;oBACX,MAAM,IAAI,MAAM;gBAClB;gBACA,OAAO,IAAI,IAAI;YACjB,GACC,IAAI,CAAC,CAAA;gBACJ,IAAI,KAAK,IAAI,EAAE;oBACb,oBAAoB,KAAK,IAAI;gBAC/B;YACF,GACC,KAAK,CAAC,CAAA;gBACL,QAAQ,KAAK,CAAC,aAAa;gBAC3B,oBAAoB,EAAE;YACxB;QACJ,OAAO;YACL,oBAAoB,EAAE;QACxB;IACF,GAAG;QAAC,aAAa;QAAI,SAAS,MAAM;KAAG;IAEvC,SAAS;IACT,MAAM,QAAQ,IAAA,sYAAO,EAAC;QACpB,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;QAC9C,MAAM,eAAe,QAAQ,MAAM;QAEnC,mBAAmB;QACnB,MAAM,cAAc,QAAQ,GAAG,CAAC,CAAA,IAAK,EAAE,UAAU,IAAI;QACrD,MAAM,gBAAgB,YAAY,MAAM,GAAG,IAAI,KAAK,GAAG,IAAI,eAAe;QAE1E,WAAW;QACX,MAAM,aAAa,QAChB,GAAG,CAAC,CAAA,IAAK,EAAE,SAAS,GAAG,IAAI,KAAK,EAAE,SAAS,EAAE,WAAW,KAAK,MAC7D,MAAM,CAAC,CAAA,IAAK,MAAM;QACrB,MAAM,eAAe,WAAW,MAAM,GAAG,IAAI,KAAK,GAAG,IAAI,cAAc,IAAI,OAAO,WAAW;QAC7F,MAAM,YAAY,WAAW,MAAM,GAAG,IAAI,IAAI,OAAO,WAAW,KAAK,eAAe;QAEpF,OAAO;YACL;YACA;YACA;YACA;QACF;IACF,GAAG;QAAC;KAAS;IAEb,wBAAwB;IACxB,MAAM,gBAAgB,IAAA,sYAAO,EAAC;QAC5B,OAAO,OAAO,MAAM,CAAC,SAAS,OAAO,EAClC,IAAI,CAAC,CAAC,GAAG,IAAM,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,GAC7C,KAAK,CAAC,GAAG;IACd,GAAG;QAAC;KAAS;IAEb,iBAAiB;IACjB,MAAM,uBAAuB,IAAA,sYAAO,EAAC;QACnC,MAAM,eAAe,IAAI,OAAO,QAAQ,KAAK;QAC7C,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;QAE9C,MAAM,gBAKD,EAAE;QAEP,QAAQ,OAAO,CAAC,CAAA;YACd,OAAO;YACP,IAAI,OAAO,SAAS,EAAE;gBACpB,MAAM,aAAa,IAAI,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK;gBAC3D,MAAM,WAAW,IAAI,KAAK,OAAO,SAAS,EAAE,OAAO;gBACnD,IAAI,eAAe,cAAc;oBAC/B,cAAc,IAAI,CAAC;wBACjB;wBACA,MAAM;wBACN,MAAM,OAAO,SAAS;wBACtB,KAAK;oBACP;gBACF;YACF;YAEA,OAAO;YACP,IAAI,OAAO,SAAS,EAAE;gBACpB,MAAM,aAAa,IAAI,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK;gBAC3D,MAAM,WAAW,IAAI,KAAK,OAAO,SAAS,EAAE,OAAO;gBACnD,IAAI,eAAe,cAAc;oBAC/B,cAAc,IAAI,CAAC;wBACjB;wBACA,MAAM;wBACN,MAAM,OAAO,SAAS;wBACtB,KAAK;oBACP;gBACF;YACF;QACF;QAEA,QAAQ;QACR,OAAO,cAAc,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;IAC9D,GAAG;QAAC;KAAS;IACb,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC,kMAAU;;;;;0BAEX,oaAAC;gBAAK,WAAU;;kCACd,oaAAC;wBAAI,WAAU;;0CACb,oaAAC;;kDACC,oaAAC;wCAAG,WAAU;kDACX,aAAa,QAAQ;;;;;;kDAExB,oaAAC;wCAAE,WAAU;;4CACV,aAAa,eAAe;4CAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC;;;;;;;;;;;;;0CAGjE,oaAAC;gCAAI,WAAU;;kDACb,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,SAAQ;4CAAU,WAAU;;8DAClC,oaAAC,8VAAO;oDAAC,WAAU;;;;;;gDAAY;;;;;;;;;;;;kDAInC,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,WAAU;;8DAChB,oaAAC,qWAAQ;oDAAC,WAAU;;;;;;gDAAY;;;;;;;;;;;;;;;;;;;;;;;;kCAOxC,oaAAC;wBAAI,WAAU;;0CACb,oaAAC;gCACC,OAAM;gCACN,OAAO,MAAM,YAAY,CAAC,QAAQ;gCAClC,UAAU,CAAC,SAAS,CAAC;gCACrB,oBAAM,oaAAC,wVAAK;oCAAC,WAAU;;;;;;;;;;;0CAEzB,oaAAC;gCACC,OAAM;gCACN,OAAO,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC;gCAC7B,UAAU,CAAC,GAAG,EAAE,MAAM,YAAY,CAAC,EAAE,CAAC;gCACtC,oBAAM,oaAAC,wVAAK;oCAAC,WAAU;;;;;;;;;;;0CAEzB,oaAAC;gCACC,OAAM;gCACN,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC;gCACjC,UAAU,CAAC,MAAM,CAAC;gCAClB,oBAAM,oaAAC,8VAAO;oCAAC,WAAU;;;;;;;;;;;;;;;;;kCAI7B,oaAAC,wLAAI;wBAAC,cAAa;wBAAS,WAAU;;0CACpC,oaAAC;gCAAI,WAAU;;kDACb,oaAAC,4LAAQ;wCAAC,WAAU;;0DAClB,oaAAC,+LAAW;gDAAC,OAAM;0DAAS;;;;;;0DAC5B,oaAAC,+LAAW;gDAAC,OAAM;0DAAgB;;;;;;0DACnC,oaAAC,+LAAW;gDAAC,OAAM;0DAAa;;;;;;0DAChC,oaAAC,+LAAW;gDAAC,OAAM;0DAAY;;;;;;;;;;;;kDAEjC,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,SAAQ;4CAAQ,MAAK;4CAAK,WAAU;;gDAA8B;8DACnE,oaAAC,2WAAU;oDAAC,WAAU;;;;;;;;;;;;;;;;;;;;;;;0CAKjC,oaAAC,+LAAW;gCAAC,OAAM;gCAAS,WAAU;0CACpC,cAAA,oaAAC;oCAAI,WAAU;;sDACb,oaAAC,wLAAI;4CAAC,WAAU;;8DACd,oaAAC,8LAAU;;sEACT,oaAAC,6LAAS;4DAAC,WAAU;sEAAa;;;;;;sEAClC,oaAAC,mMAAe;sEAAC;;;;;;;;;;;;8DAEnB,oaAAC,+LAAW;8DACV,cAAA,oaAAC,wMAAU;wDAAC,WAAU;kEACpB,cAAA,oaAAC;4DAAI,WAAU;sEACZ,iBAAiB,MAAM,GAAG,IACzB,iBAAiB,GAAG,CAAC,CAAC,UAAU,kBAC9B,oaAAC;oEAAsB,WAAU;;sFAC/B,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAI,WAAU;;;;;;8FACf,oaAAC;oFAAI,WAAW,CAAC,2DAA2D,EAC1E,SAAS,MAAM,KAAK,WAAW,iBAC/B,SAAS,MAAM,KAAK,WAAW,gBAC/B,SAAS,MAAM,KAAK,WAAW,eAC/B,iBACA;;;;;;;;;;;;sFAEJ,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAI,WAAU;;sGACb,oaAAC;4FAAK,WAAW,CAAC,iCAAiC,EACjD,SAAS,MAAM,KAAK,WAAW,gCAC/B,SAAS,MAAM,KAAK,WAAW,8BAC/B,SAAS,MAAM,KAAK,WAAW,4BAC/B,iCACA;sGACC,SAAS,MAAM,KAAK,WAAW,OAC/B,SAAS,MAAM,KAAK,WAAW,OAC/B,SAAS,MAAM,KAAK,WAAW,OAAO;;;;;;sGAEzC,oaAAC;4FAAK,WAAU;sGAAe,SAAS,UAAU,IAAI;;;;;;sGACtD,oaAAC;4FAAK,WAAU;sGACb,IAAA,8QAAM,EAAC,IAAI,KAAK,SAAS,SAAS,GAAG;;;;;;;;;;;;8FAG1C,oaAAC;oFAAE,WAAU;;wFACV,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;;;;;;;;;;;;;;mEA/B7B,SAAS,EAAE;;;;0FAqCvB,oaAAC;gEAAI,WAAU;0EAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;sDASlE,oaAAC;4CAAI,WAAU;sDACb,cAAA,oaAAC,wLAAI;gDAAC,WAAU;;kEACd,oaAAC,8LAAU;kEACT,cAAA,oaAAC,6LAAS;4DAAC,WAAU;;8EACnB,oaAAC,iWAAQ;oEAAC,WAAU;;;;;;gEAAY;;;;;;;;;;;;kEAIpC,oaAAC,+LAAW;wDAAC,WAAU;kEACpB,qBAAqB,MAAM,GAAG,IAC7B,qBAAqB,GAAG,CAAC,CAAC,aAAa;4DACrC,MAAM,WAAW,IAAI,OAAO,WAAW,KAAK,IAAI,KAAK,YAAY,IAAI,EAAE,WAAW;4DAClF,qBACE,oaAAC,6VAAI;gEAAC,MAAM,CAAC,SAAS,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE;0EAC7C,cAAA,oaAAC;oEAAI,WAAU;;sFACb,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAK,WAAU;;wFACb,IAAI,KAAK,YAAY,IAAI,EAAE,QAAQ,KAAK;wFAAE;;;;;;;8FAE7C,oaAAC;oFAAK,WAAU;8FAAqB,YAAY,GAAG;;;;;;;;;;;;sFAEtD,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAE,WAAU;;wFACV,YAAY,MAAM,CAAC,QAAQ;wFAAC;wFAAE,YAAY,IAAI,KAAK,UAAU,OAAO;;;;;;;8FAEvE,oaAAC;oFAAE,WAAU;;wFAAgC;wFACxC,YAAY,MAAM,CAAC,UAAU;wFAAC;wFAAS;wFAAS;wFAClD,YAAY,IAAI,KAAK,WAAW;;;;;;;;;;;;;;;;;;;+DAda,GAAG,YAAY,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE;;;;;wDAoBxG,mBAEA,oaAAC;4DAAI,WAAU;sEAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAW5E,oaAAC,+LAAW;gCAAC,OAAM;gCAAgB,WAAU;0CAC3C,cAAA,oaAAC,wLAAI;oCAAC,WAAU;;sDACd,oaAAC,8LAAU;;8DACT,oaAAC,6LAAS;oDAAC,WAAU;8DAAa;;;;;;8DAClC,oaAAC,mMAAe;8DAAC;;;;;;;;;;;;sDAEnB,oaAAC,+LAAW;sDACV,cAAA,oaAAC;gDAAI,WAAU;0DACZ,CAAC;oDACA,MAAM,MAAM,IAAI;oDAChB,MAAM,mBAAmB,IAAI,KAAK,IAAI,WAAW,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,OAAO;oDACpF,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;oDAC9C,MAAM,iBAKD,EAAE;oDAEP,QAAQ,OAAO,CAAC,CAAA;wDACd,KAAK;wDACL,IAAI,OAAO,SAAS,EAAE;4DACpB,MAAM,YAAY,IAAI,KAAK,OAAO,SAAS;4DAC3C,MAAM,gBAAgB,IAAI,KAAK,IAAI,WAAW,IAAI,UAAU,QAAQ,IAAI,UAAU,OAAO;4DACzF,IAAI,iBAAiB,OAAO,iBAAiB,kBAAkB;gEAC7D,eAAe,IAAI,CAAC;oEAClB;oEACA,MAAM;oEACN,MAAM;oEACN,cAAc,OAAO,SAAS;gEAChC;4DACF;wDACF;wDAEA,KAAK;wDACL,IAAI,OAAO,SAAS,EAAE;4DACpB,MAAM,YAAY,IAAI,KAAK,OAAO,SAAS;4DAC3C,MAAM,gBAAgB,IAAI,KAAK,IAAI,WAAW,IAAI,UAAU,QAAQ,IAAI,UAAU,OAAO;4DACzF,IAAI,iBAAiB,OAAO,iBAAiB,kBAAkB;gEAC7D,eAAe,IAAI,CAAC;oEAClB;oEACA,MAAM;oEACN,MAAM;oEACN,cAAc,OAAO,SAAS;gEAChC;4DACF;wDACF;oDACF;oDAEA,eAAe,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,OAAO;oDAE/D,OAAO,eAAe,MAAM,GAAG,IAC7B,eAAe,GAAG,CAAC,CAAC,OAAO;wDACzB,MAAM,WAAW,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM,YAAY,EAAE,WAAW;wDAC7E,qBACE,oaAAC,6VAAI;4DAAC,MAAM,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,EAAE,EAAE;sEACvC,cAAA,oaAAC,wLAAI;gEAAC,WAAU;0EACd,cAAA,oaAAC,+LAAW;oEAAC,WAAU;8EACrB,cAAA,oaAAC;wEAAI,WAAU;;0FACb,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAK,WAAU;;4FAAW,MAAM,IAAI,CAAC,QAAQ,KAAK;4FAAE;;;;;;;kGACrD,oaAAC;wFAAK,WAAU;kGAAqB,MAAM,IAAI,CAAC,OAAO;;;;;;;;;;;;0FAEzD,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAE,WAAU;;4FACV,MAAM,MAAM,CAAC,QAAQ;4FAAC;4FAAE,MAAM,IAAI,KAAK,UAAU,OAAO;;;;;;;kGAE3D,oaAAC;wFAAE,WAAU;;4FAAgC;4FACxC,MAAM,MAAM,CAAC,UAAU;4FAAC;4FAAM;4FAAS;4FACzC,MAAM,IAAI,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAdS,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO;;;;;oDAsB/F,mBAEA,oaAAC;wDAAI,WAAU;kEAAwD;;;;;;gDAI3E,CAAC;;;;;;;;;;;;;;;;;;;;;;0CAOT,oaAAC,+LAAW;gCAAC,OAAM;gCAAa,WAAU;0CACxC,cAAA,oaAAC,2NAAgB;oCAAC,SAAS,OAAO,MAAM,CAAC,SAAS,OAAO;;;;;;;;;;;0CAI3D,oaAAC,+LAAW;gCAAC,OAAM;gCAAY,WAAU;0CACvC,cAAA,oaAAC,wLAAI;oCAAC,WAAU;;sDACd,oaAAC,8LAAU;;8DACT,oaAAC,6LAAS;oDAAC,WAAU;8DAAa;;;;;;8DAClC,oaAAC,mMAAe;8DAAC;;;;;;;;;;;;sDAEnB,oaAAC,+LAAW;sDACV,cAAA,oaAAC;gDAAI,WAAU;0DACZ,IAAA,sYAAO,EAAC;oDACP,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;oDAC9C,MAAM,iBAAwC,CAAC;oDAE/C,QAAQ,OAAO,CAAC,CAAA;wDACd,IAAI,OAAO,aAAa,EAAE;4DACxB,IAAI,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,EAAE;gEACzC,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG,EAAE;4DAC3C;4DACA,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC;wDAC5C;oDACF;oDAEA,MAAM,kBAAkB,OAAO,OAAO,CAAC,gBACpC,IAAI,CAAC,CAAC,GAAG,IAAM,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM;oDAE3C,OAAO,gBAAgB,MAAM,GAAG,IAC9B,gBAAgB,GAAG,CAAC,CAAC,CAAC,UAAU,gBAAgB,iBAC9C,oaAAC;4DAAmB,WAAU;;8EAC5B,oaAAC;oEAAI,WAAU;;sFACb,oaAAC;4EAAG,WAAU;sFAAgC;;;;;;sFAC9C,oaAAC;4EAAK,WAAU;;gFACb,gBAAgB,MAAM;gFAAC;;;;;;;;;;;;;8EAG5B,oaAAC;oEAAI,WAAU;8EACZ,gBAAgB,GAAG,CAAC,CAAC,uBACpB,oaAAC,6VAAI;4EAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;sFACjC,cAAA,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAE,WAAU;kGAAgC,OAAO,QAAQ;;;;;;kGAC5D,oaAAC;wFAAE,WAAU;;4FAAgC;4FAAG,OAAO,UAAU;4FAAC;;;;;;;;;;;;;2EAH5B,OAAO,EAAE;;;;;;;;;;;2DAT/C;;;;kFAoBZ,oaAAC;wDAAI,WAAU;kEAA0C;;;;;;gDAI7D,GAAG;oDAAC;iDAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS/B;AAEA,SAAS,SAAS,EAChB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACsE;IAC1E,qBACE,oaAAC,wLAAI;QAAC,WAAU;kBACd,cAAA,oaAAC,+LAAW;YAAC,WAAU;;8BACrB,oaAAC;oBAAI,WAAU;;sCACb,oaAAC;4BAAE,WAAU;sCAA6C;;;;;;sCAC1D,oaAAC;4BAAI,WAAU;sCAAmD;;;;;;;;;;;;8BAEpE,oaAAC;oBAAI,WAAU;;sCACb,oaAAC;4BAAK,WAAU;sCAAiD;;;;;;sCACjE,oaAAC;4BAAE,WAAU;sCAAsC;;;;;;;;;;;;;;;;;;;;;;;AAK7D"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js b/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js index 9c18a51f..3f3d003f 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js @@ -43,7 +43,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch ; const FamilyContext = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"])(undefined); function FamilyProvider({ children }) { - const { data: session } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSession"])(); + const { data: session, status } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSession"])(); const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSearchParams"])(); const [searchResults, setSearchResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [isLoading, setIsLoading] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(true); @@ -55,79 +55,116 @@ function FamilyProvider({ children }) { const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); // 监听 URL 和 Session 变化,加载家族树 (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{ - const treeId = searchParams.get('treeId'); - console.log('FamilyContext - Effect triggered, treeId:', treeId, 'currentTree:', currentTree?.id); - // 如果 session 不存在,清除所有数据 - if (!session?.user?.id) { - console.log('FamilyContext - No session, clearing data'); - setCurrentTree(null); - setTreeData({ - rootId: "", - members: {} - }); - setIsLoading(false); - return; - } - // 如果 treeId 与当前树相同,跳过 - if (treeId && treeId === currentTree?.id) { - console.log('FamilyContext - Same tree, skipping'); - return; - } - // 如果没有 treeId 且已有树,跳过 - if (!treeId && currentTree) { - console.log('FamilyContext - No treeId but has currentTree, skipping'); - return; - } - // 需要加载新树 - const targetTreeId = treeId || 'first'; - console.log('FamilyContext - Loading tree:', targetTreeId); - setIsLoading(true); - const fetchUrl = targetTreeId === 'first' ? '/api/trees' : `/api/trees/${targetTreeId}`; - console.log('FamilyContext - Fetching URL:', fetchUrl); - fetch(fetchUrl).then((res)=>res.json()).then((data)=>{ - let tree = null; - if (targetTreeId === 'first') { - tree = data.trees?.[0]; - } else { - tree = data.tree; + const controller = new AbortController(); + const signal = controller.signal; + const loadTree = async ()=>{ + const treeId = searchParams.get('treeId'); + // 如果 session 正在加载,等待 + if (status === 'loading') { + return; } - console.log('FamilyContext - Fetched tree:', tree?.name, tree?.id); - if (tree) { - setCurrentTree(tree); - // 加载该树的成员数据 - return fetch(`/api/trees/${tree.id}/members`).then((res)=>res.json()).then((memberData)=>{ - console.log('FamilyContext - Loaded members:', memberData.members?.length); - if (memberData.members) { - const membersMap = memberData.members.reduce((acc, member)=>{ - acc[member.id] = member; - return acc; - }, {}); + // 如果 session 不存在(未登录),清除所有数据 + if (!session?.user?.id) { + if (!signal.aborted) { + setCurrentTree(null); + setTreeData({ + rootId: "", + members: {} + }); + setIsLoading(false); + } + return; + } + // 如果 treeId 与当前树相同,跳过 + if (treeId && treeId === currentTree?.id) { + return; + } + // 如果没有 treeId 且已有树,跳过 + if (!treeId && currentTree) { + return; + } + // 需要加载新树 + const targetTreeId = treeId || 'first'; + if (!signal.aborted) setIsLoading(true); + const fetchUrl = targetTreeId === 'first' ? '/api/trees' : `/api/trees/${targetTreeId}`; + try { + const res = await fetch(fetchUrl, { + signal + }); + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + const data = await res.json(); + if (signal.aborted) return; + let tree = null; + if (targetTreeId === 'first') { + tree = data.trees?.[0]; + } else { + tree = data.tree; + } + if (tree) { + setCurrentTree(tree); + // 加载该树的成员数据 + try { + const memberRes = await fetch(`/api/trees/${tree.id}/members`, { + signal + }); + if (!memberRes.ok) { + throw new Error(`Failed to load members: ${memberRes.status}`); + } + const memberData = await memberRes.json(); + if (signal.aborted) return; + if (memberData.members) { + const membersMap = memberData.members.reduce((acc, member)=>{ + acc[member.id] = member; + return acc; + }, {}); + setTreeData({ + rootId: memberData.rootId || "", + members: membersMap + }); + } + } catch (err) { + if (err.name === 'AbortError') return; + console.error('加载成员数据失败:', err); + // 即使成员加载失败,也保留树的信息 setTreeData({ - rootId: memberData.rootId || "", - members: membersMap + rootId: "", + members: {} }); } - }); - } else { - // 没找到树(可能是被删除了,或者没有权限) - console.log('FamilyContext - Tree not found'); + } else { + setCurrentTree(null); + setTreeData({ + rootId: "", + members: {} + }); + } + } catch (err) { + if (err.name === 'AbortError') return; + // 忽略 Failed to fetch 错误,通常发生在页面跳转或网络问题时 + if (err.message === 'Failed to fetch' || err.toString().includes('Failed to fetch')) { + return; + } + console.error('加载家族树失败:', err.message || err); setCurrentTree(null); setTreeData({ rootId: "", members: {} }); + } finally{ + if (!signal.aborted) setIsLoading(false); } - }).catch((err)=>{ - console.error('FamilyContext - Load failed:', err); - setCurrentTree(null); - setTreeData({ - rootId: "", - members: {} - }); - }).finally(()=>setIsLoading(false)); + }; + loadTree(); + return ()=>{ + controller.abort(); + }; }, [ searchParams, - session?.user?.id + session?.user?.id, + status, + currentTree?.id ]); const getMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])((id)=>{ return treeData.members[id]; @@ -286,7 +323,7 @@ function FamilyProvider({ children }) { children: children }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx", - lineNumber: 286, + lineNumber: 316, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js.map b/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js.map index ab2459c7..61879606 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js.map +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__ea60cf26._.js.map @@ -2,13 +2,13 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 28, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/context/family-context.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport { createContext, useContext, useState, useCallback, useEffect } from \"react\"\nimport type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface FamilyTreeInfo {\n id: string\n name: string\n description: string | null\n ownerId: string\n rootMemberId: string | null\n}\n\ninterface FamilyContextType {\n treeData: FamilyTreeData\n currentTree: FamilyTreeInfo | null\n getMember: (id: string) => FamilyMember | undefined\n addMember: (member: FamilyMember) => Promise\n updateMember: (id: string, updates: Partial) => Promise\n deleteMember: (id: string) => Promise\n searchResults: FamilyMember[]\n searchMembers: (query: string) => void\n loadData: (data: FamilyTreeData) => Promise\n resetData: () => Promise\n isLoading: boolean\n highlightedMemberId: string | null\n setHighlightedMemberId: (id: string | null) => void\n}\n\nconst FamilyContext = createContext(undefined)\n\nexport function FamilyProvider({ children }: { children: React.ReactNode }) {\n const { data: session } = useSession()\n const searchParams = useSearchParams()\n const [searchResults, setSearchResults] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [highlightedMemberId, setHighlightedMemberId] = useState(null)\n const [treeData, setTreeData] = useState({\n rootId: \"\",\n members: {},\n })\n const [currentTree, setCurrentTree] = useState(null)\n\n // 监听 URL 和 Session 变化,加载家族树\n useEffect(() => {\n const treeId = searchParams.get('treeId')\n console.log('FamilyContext - Effect triggered, treeId:', treeId, 'currentTree:', currentTree?.id)\n \n // 如果 session 不存在,清除所有数据\n if (!session?.user?.id) {\n console.log('FamilyContext - No session, clearing data')\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n setIsLoading(false)\n return\n }\n\n // 如果 treeId 与当前树相同,跳过\n if (treeId && treeId === currentTree?.id) {\n console.log('FamilyContext - Same tree, skipping')\n return\n }\n\n // 如果没有 treeId 且已有树,跳过\n if (!treeId && currentTree) {\n console.log('FamilyContext - No treeId but has currentTree, skipping')\n return\n }\n\n // 需要加载新树\n const targetTreeId = treeId || 'first'\n console.log('FamilyContext - Loading tree:', targetTreeId)\n \n setIsLoading(true)\n \n const fetchUrl = targetTreeId === 'first' \n ? '/api/trees' \n : `/api/trees/${targetTreeId}`\n \n console.log('FamilyContext - Fetching URL:', fetchUrl)\n \n fetch(fetchUrl)\n .then(res => res.json())\n .then(data => {\n let tree = null\n if (targetTreeId === 'first') {\n tree = data.trees?.[0]\n } else {\n tree = data.tree\n }\n \n console.log('FamilyContext - Fetched tree:', tree?.name, tree?.id)\n \n if (tree) {\n setCurrentTree(tree)\n // 加载该树的成员数据\n return fetch(`/api/trees/${tree.id}/members`)\n .then(res => res.json())\n .then(memberData => {\n console.log('FamilyContext - Loaded members:', memberData.members?.length)\n if (memberData.members) {\n const membersMap = memberData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: memberData.rootId || \"\",\n members: membersMap,\n })\n }\n })\n } else {\n // 没找到树(可能是被删除了,或者没有权限)\n console.log('FamilyContext - Tree not found')\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n }\n })\n .catch(err => {\n console.error('FamilyContext - Load failed:', err)\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n })\n .finally(() => setIsLoading(false))\n }, [searchParams, session?.user?.id])\n\n const getMember = useCallback(\n (id: string) => {\n return treeData.members[id]\n },\n [treeData],\n )\n\n const addMember = useCallback(async (member: FamilyMember) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(member),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '添加成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [data.member.id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const updateMember = useCallback(async (id: string, updates: Partial) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(updates),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '更新成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const deleteMember = useCallback(async (id: string) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'DELETE',\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除成员失败')\n }\n \n // 更新本地状态\n setTreeData(prev => {\n const newMembers = { ...prev.members }\n delete newMembers[id]\n return {\n ...prev,\n members: newMembers,\n }\n })\n }, [currentTree?.id])\n\n const loadData = useCallback(async (data: FamilyTreeData) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n // 导入数据到服务器\n const response = await fetch(`/api/trees/${currentTree.id}/import`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '导入数据失败')\n }\n \n // 重新加载数据\n const membersResponse = await fetch(`/api/trees/${currentTree.id}/members`)\n const membersData = await membersResponse.json()\n \n if (membersData.members) {\n const membersMap = membersData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: membersData.rootId || \"\",\n members: membersMap,\n })\n }\n }, [currentTree?.id])\n\n const resetData = useCallback(async () => {\n // 重置为空数据\n setTreeData({ rootId: \"\", members: {} })\n }, [])\n\n const searchMembers = useCallback(\n (query: string) => {\n if (!query.trim()) {\n setSearchResults([])\n return\n }\n\n const lowerQuery = query.toLowerCase()\n // Perform search on the in-memory treeData for simplicity and speed\n // (Dexie also supports querying, but we already have the data loaded)\n const results = Object.values(treeData.members).filter(\n (member) =>\n member.fullName.includes(lowerQuery) ||\n member.givenName.includes(lowerQuery) ||\n member.courtesyName?.includes(lowerQuery) ||\n member.artName?.includes(lowerQuery),\n )\n setSearchResults(results)\n },\n [treeData],\n )\n\n // Listen for import events\n useEffect(() => {\n const handleImport = (e: CustomEvent) => {\n loadData(e.detail)\n }\n window.addEventListener(\"family-data-import\" as any, handleImport as any)\n return () => window.removeEventListener(\"family-data-import\" as any, handleImport as any)\n }, [loadData])\n\n return (\n \n {children}\n \n )\n}\n\nexport function useFamily() {\n const context = useContext(FamilyContext)\n if (context === undefined) {\n throw new Error(\"useFamily must be used within a FamilyProvider\")\n }\n return context\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 303, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/register-sw.ts"],"sourcesContent":["export function registerServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n console.log(\"Service Worker 不被支持\")\n return\n }\n\n const register = () => {\n navigator.serviceWorker\n .register(\"/sw.js\")\n .then((registration) => {\n console.log(\"Service Worker 注册成功:\", registration.scope)\n\n // 检查更新\n registration.addEventListener(\"updatefound\", () => {\n const newWorker = registration.installing\n if (newWorker) {\n newWorker.addEventListener(\"statechange\", () => {\n if (newWorker.state === \"installed\" && navigator.serviceWorker.controller) {\n // 新的 Service Worker 已安装,提示用户刷新\n console.log(\"发现新版本,可以刷新页面\")\n }\n })\n }\n })\n })\n .catch((error) => {\n console.log(\"Service Worker 注册失败:\", error)\n })\n }\n\n // 如果页面已经加载完成,直接注册;否则等待 load 事件\n if (document.readyState === \"complete\") {\n register()\n } else {\n window.addEventListener(\"load\", register)\n }\n}\n\nexport function unregisterServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n return\n }\n\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(\"Service Worker 注销失败:\", error)\n })\n}\n"],"names":[],"mappings":";;;;;;AAAO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE,QAAQ,GAAG,CAAC;QACZ;IACF;;;IAEA,MAAM;AA8BR;AAEO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE;IACF;;;AASF"}}, - {"offset": {"line": 329, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;;;AAEO,SAAS,GAAG,GAAG,MAAoB;IACxC,OAAO,IAAA,2RAAO,EAAC,IAAA,qPAAI,EAAC;AACtB"}}, - {"offset": {"line": 344, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/button.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n \n )\n}\n\nexport { Button, buttonVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,iBAAiB,IAAA,ySAAG,EACxB,+bACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,WAAW;YACX,WAAW;QACb;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAAS,OAAO,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,KAAK,EACf,GAAG,OAIF;IACD,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,eAAe;YAAE;YAAS;YAAM;QAAU;QACvD,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 403, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA;;;AAEA,SAAS,KAAK,EAAE,SAAS,EAAE,GAAG,OAAoC;IAChE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,qFACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,4JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,UAAU,EAAE,SAAS,EAAE,GAAG,OAAoC;IACrE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,8BAA8B;QAC3C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAoC;IAC3E,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kEACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EAAE,SAAS,EAAE,GAAG,OAAoC;IACvE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,QAAQ;QACrB,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2CAA2C;QACxD,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 505, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps) {\n return (\n \n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":[],"mappings":";;;;;;;;;AACA;AAEA;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,qOACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,GAAG,OAC8D;IACjE,qBACE,oaAAC;QACC,aAAU;QACV,MAAK;QACL,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,+DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,iBAAiB,EACxB,SAAS,EACT,GAAG,OACyB;IAC5B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kGACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 571, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, X, Smartphone } from \"lucide-react\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function PWAInstaller() {\n const [deferredPrompt, setDeferredPrompt] = useState(null)\n const [isInstallable, setIsInstallable] = useState(false)\n const [isInstalled, setIsInstalled] = useState(false)\n const [showPrompt, setShowPrompt] = useState(false)\n\n useEffect(() => {\n // 检查是否已安装\n if (typeof window !== \"undefined\") {\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches\n const isIOSStandalone = (window.navigator as any).standalone === true\n \n if (isStandalone || isIOSStandalone) {\n setIsInstalled(true)\n return\n }\n }\n\n // 监听 beforeinstallprompt 事件\n const handleBeforeInstallPrompt = (e: Event) => {\n e.preventDefault()\n setDeferredPrompt(e)\n setIsInstallable(true)\n \n // 延迟显示提示(给用户一些时间浏览应用)\n setTimeout(() => {\n const hasSeenPrompt = localStorage.getItem('pwa-install-prompt-seen')\n if (!hasSeenPrompt) {\n setShowPrompt(true)\n }\n }, 30000) // 30秒后显示\n }\n\n // 监听安装完成事件\n const handleAppInstalled = () => {\n setIsInstalled(true)\n setShowPrompt(false)\n setIsInstallable(false)\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.addEventListener('appinstalled', handleAppInstalled)\n\n return () => {\n window.removeEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.removeEventListener('appinstalled', handleAppInstalled)\n }\n }\n }, [])\n\n const handleInstallClick = async () => {\n if (!deferredPrompt) return\n\n // 显示安装提示\n deferredPrompt.prompt()\n\n // 等待用户响应\n const { outcome } = await deferredPrompt.userChoice\n \n if (outcome === 'accepted') {\n console.log('用户接受了安装')\n } else {\n console.log('用户拒绝了安装')\n }\n\n setDeferredPrompt(null)\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n const handleDismiss = () => {\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n if (isInstalled) {\n return null\n }\n\n if (!isInstallable) {\n return null\n }\n\n return (\n <>\n {/* 浮动安装提示 */}\n {showPrompt && (\n
\n \n \n
\n
\n \n 安装应用\n
\n \n \n \n
\n \n 将家谱应用添加到主屏幕,随时随地访问\n \n
\n \n \n \n 立即安装\n \n \n
\n
\n )}\n\n {/* 设置页面的安装按钮 */}\n {!showPrompt && (\n \n \n \n 将应用安装到设备\n \n \n \n )}\n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;;;;;;;AAQO,SAAS;IACd,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,IAAA,uYAAQ,EAAM;IAC1D,MAAM,CAAC,eAAe,iBAAiB,GAAG,IAAA,uYAAQ,EAAC;IACnD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,YAAY,cAAc,GAAG,IAAA,uYAAQ,EAAC;IAE7C,IAAA,wYAAS,EAAC;QACR,UAAU;QACV;;QAUA,4BAA4B;QAC5B,MAAM,4BAA4B,CAAC;YACjC,EAAE,cAAc;YAChB,kBAAkB;YAClB,iBAAiB;YAEjB,sBAAsB;YACtB,WAAW;gBACT,MAAM,gBAAgB,aAAa,OAAO,CAAC;gBAC3C,IAAI,CAAC,eAAe;oBAClB,cAAc;gBAChB;YACF,GAAG,QAAO,SAAS;QACrB;QAEA,WAAW;QACX,MAAM,qBAAqB;YACzB,eAAe;YACf,cAAc;YACd,iBAAiB;QACnB;QAEA;;IASF,GAAG,EAAE;IAEL,MAAM,qBAAqB;QACzB,IAAI,CAAC,gBAAgB;QAErB,SAAS;QACT,eAAe,MAAM;QAErB,SAAS;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,UAAU;QAEnD,IAAI,YAAY,YAAY;YAC1B,QAAQ,GAAG,CAAC;QACd,OAAO;YACL,QAAQ,GAAG,CAAC;QACd;QAEA,kBAAkB;QAClB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,MAAM,gBAAgB;QACpB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,IAAI,aAAa;QACf,OAAO;IACT;IAEA,IAAI,CAAC,eAAe;QAClB,OAAO;IACT;IAEA,qBACE;;YAEG,4BACC,oaAAC;gBAAI,WAAU;0BACb,cAAA,oaAAC,wLAAI;oBAAC,WAAU;;sCACd,oaAAC,8LAAU;4BAAC,WAAU;;8CACpB,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAI,WAAU;;8DACb,oaAAC,uWAAU;oDAAC,WAAU;;;;;;8DACtB,oaAAC,6LAAS;oDAAC,WAAU;8DAAY;;;;;;;;;;;;sDAEnC,oaAAC,4LAAM;4CACL,SAAQ;4CACR,MAAK;4CACL,WAAU;4CACV,SAAS;sDAET,cAAA,oaAAC,4UAAC;gDAAC,WAAU;;;;;;;;;;;;;;;;;8CAGjB,oaAAC,mMAAe;oCAAC,WAAU;8CAAU;;;;;;;;;;;;sCAIvC,oaAAC,+LAAW;4BAAC,WAAU;sCACrB,cAAA,oaAAC,4LAAM;gCACL,SAAS;gCACT,WAAU;gCACV,MAAK;;kDAEL,oaAAC,iWAAQ;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;;;;;;;;;;;;;;;;;YAS9C,CAAC,4BACA,oaAAC,0LAAK;gBAAC,WAAU;gBAAqD,SAAS;;kCAC7E,oaAAC,iWAAQ;wBAAC,WAAU;;;;;;kCACpB,oaAAC,qMAAgB;wBAAC,WAAU;;0CAC1B,oaAAC;0CAAK;;;;;;0CACN,oaAAC,4LAAM;gCAAC,MAAK;gCAAK,SAAQ;0CAAU;;;;;;;;;;;;;;;;;;;;AAQhD"}}, - {"offset": {"line": 806, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect } from \"react\"\nimport { registerServiceWorker } from \"@/lib/register-sw\"\nimport { PWAInstaller } from \"./pwa-installer\"\n\nexport function PWAProvider({ children }: { children: React.ReactNode }) {\n useEffect(() => {\n registerServiceWorker()\n }, [])\n\n return (\n <>\n {children}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AAJA;;;;;AAMO,SAAS,YAAY,EAAE,QAAQ,EAAiC;IACrE,IAAA,wYAAS,EAAC;QACR,IAAA,qMAAqB;IACvB,GAAG,EAAE;IAEL,qBACE;;YACG;0BACD,oaAAC,6MAAY;;;;;;;AAGnB"}}, - {"offset": {"line": 838, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { SessionProvider as NextAuthSessionProvider } from \"next-auth/react\"\n\nexport function SessionProvider({ children }: { children: React.ReactNode }) {\n return {children}\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAIO,SAAS,gBAAgB,EAAE,QAAQ,EAAiC;IACzE,qBAAO,oaAAC,scAAuB;kBAAE;;;;;;AACnC"}}] + {"offset": {"line": 28, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/context/family-context.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport { createContext, useContext, useState, useCallback, useEffect } from \"react\"\nimport type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface FamilyTreeInfo {\n id: string\n name: string\n description: string | null\n ownerId: string\n rootMemberId: string | null\n}\n\ninterface FamilyContextType {\n treeData: FamilyTreeData\n currentTree: FamilyTreeInfo | null\n getMember: (id: string) => FamilyMember | undefined\n addMember: (member: FamilyMember) => Promise\n updateMember: (id: string, updates: Partial) => Promise\n deleteMember: (id: string) => Promise\n searchResults: FamilyMember[]\n searchMembers: (query: string) => void\n loadData: (data: FamilyTreeData) => Promise\n resetData: () => Promise\n isLoading: boolean\n highlightedMemberId: string | null\n setHighlightedMemberId: (id: string | null) => void\n}\n\nconst FamilyContext = createContext(undefined)\n\nexport function FamilyProvider({ children }: { children: React.ReactNode }) {\n const { data: session, status } = useSession()\n const searchParams = useSearchParams()\n const [searchResults, setSearchResults] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [highlightedMemberId, setHighlightedMemberId] = useState(null)\n const [treeData, setTreeData] = useState({\n rootId: \"\",\n members: {},\n })\n const [currentTree, setCurrentTree] = useState(null)\n\n // 监听 URL 和 Session 变化,加载家族树\n useEffect(() => {\n const controller = new AbortController()\n const signal = controller.signal\n\n const loadTree = async () => {\n const treeId = searchParams.get('treeId')\n \n // 如果 session 正在加载,等待\n if (status === 'loading') {\n return\n }\n \n // 如果 session 不存在(未登录),清除所有数据\n if (!session?.user?.id) {\n if (!signal.aborted) {\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n setIsLoading(false)\n }\n return\n }\n\n // 如果 treeId 与当前树相同,跳过\n if (treeId && treeId === currentTree?.id) {\n return\n }\n\n // 如果没有 treeId 且已有树,跳过\n if (!treeId && currentTree) {\n return\n }\n\n // 需要加载新树\n const targetTreeId = treeId || 'first'\n \n if (!signal.aborted) setIsLoading(true)\n \n const fetchUrl = targetTreeId === 'first' \n ? '/api/trees' \n : `/api/trees/${targetTreeId}`\n \n try {\n const res = await fetch(fetchUrl, { signal })\n if (!res.ok) {\n throw new Error(`HTTP error! status: ${res.status}`)\n }\n const data = await res.json()\n \n if (signal.aborted) return\n\n let tree = null\n if (targetTreeId === 'first') {\n tree = data.trees?.[0]\n } else {\n tree = data.tree\n }\n \n if (tree) {\n setCurrentTree(tree)\n // 加载该树的成员数据\n try {\n const memberRes = await fetch(`/api/trees/${tree.id}/members`, { signal })\n if (!memberRes.ok) {\n throw new Error(`Failed to load members: ${memberRes.status}`)\n }\n const memberData = await memberRes.json()\n \n if (signal.aborted) return\n\n if (memberData.members) {\n const membersMap = memberData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: memberData.rootId || \"\",\n members: membersMap,\n })\n }\n } catch (err: any) {\n if (err.name === 'AbortError') return\n console.error('加载成员数据失败:', err)\n // 即使成员加载失败,也保留树的信息\n setTreeData({ rootId: \"\", members: {} })\n }\n } else {\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n }\n } catch (err: any) {\n if (err.name === 'AbortError') return\n \n // 忽略 Failed to fetch 错误,通常发生在页面跳转或网络问题时\n if (err.message === 'Failed to fetch' || err.toString().includes('Failed to fetch')) {\n return\n }\n \n console.error('加载家族树失败:', err.message || err)\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n } finally {\n if (!signal.aborted) setIsLoading(false)\n }\n }\n\n loadTree()\n\n return () => {\n controller.abort()\n }\n }, [searchParams, session?.user?.id, status, currentTree?.id])\n\n const getMember = useCallback(\n (id: string) => {\n return treeData.members[id]\n },\n [treeData],\n )\n\n const addMember = useCallback(async (member: FamilyMember) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(member),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '添加成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [data.member.id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const updateMember = useCallback(async (id: string, updates: Partial) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(updates),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '更新成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const deleteMember = useCallback(async (id: string) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'DELETE',\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除成员失败')\n }\n \n // 更新本地状态\n setTreeData(prev => {\n const newMembers = { ...prev.members }\n delete newMembers[id]\n return {\n ...prev,\n members: newMembers,\n }\n })\n }, [currentTree?.id])\n\n const loadData = useCallback(async (data: FamilyTreeData) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n // 导入数据到服务器\n const response = await fetch(`/api/trees/${currentTree.id}/import`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '导入数据失败')\n }\n \n // 重新加载数据\n const membersResponse = await fetch(`/api/trees/${currentTree.id}/members`)\n const membersData = await membersResponse.json()\n \n if (membersData.members) {\n const membersMap = membersData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: membersData.rootId || \"\",\n members: membersMap,\n })\n }\n }, [currentTree?.id])\n\n const resetData = useCallback(async () => {\n // 重置为空数据\n setTreeData({ rootId: \"\", members: {} })\n }, [])\n\n const searchMembers = useCallback(\n (query: string) => {\n if (!query.trim()) {\n setSearchResults([])\n return\n }\n\n const lowerQuery = query.toLowerCase()\n // Perform search on the in-memory treeData for simplicity and speed\n // (Dexie also supports querying, but we already have the data loaded)\n const results = Object.values(treeData.members).filter(\n (member) =>\n member.fullName.includes(lowerQuery) ||\n member.givenName.includes(lowerQuery) ||\n member.courtesyName?.includes(lowerQuery) ||\n member.artName?.includes(lowerQuery),\n )\n setSearchResults(results)\n },\n [treeData],\n )\n\n // Listen for import events\n useEffect(() => {\n const handleImport = (e: CustomEvent) => {\n loadData(e.detail)\n }\n window.addEventListener(\"family-data-import\" as any, handleImport as any)\n return () => window.removeEventListener(\"family-data-import\" as any, handleImport as any)\n }, [loadData])\n\n return (\n \n {children}\n \n )\n}\n\nexport function useFamily() {\n const context = useContext(FamilyContext)\n if (context === undefined) {\n throw new Error(\"useFamily must be used within a FamilyProvider\")\n }\n return context\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 340, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/register-sw.ts"],"sourcesContent":["export function registerServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n console.log(\"Service Worker 不被支持\")\n return\n }\n\n const register = () => {\n navigator.serviceWorker\n .register(\"/sw.js\")\n .then((registration) => {\n // 检查更新\n registration.addEventListener(\"updatefound\", () => {\n const newWorker = registration.installing\n if (newWorker) {\n newWorker.addEventListener(\"statechange\", () => {\n if (newWorker.state === \"installed\" && navigator.serviceWorker.controller) {\n // 新的 Service Worker 已安装\n }\n })\n }\n })\n })\n .catch((error) => {\n console.error(\"Service Worker 注册失败:\", error)\n })\n }\n\n // 如果页面已经加载完成,直接注册;否则等待 load 事件\n if (document.readyState === \"complete\") {\n register()\n } else {\n window.addEventListener(\"load\", register)\n }\n}\n\nexport function unregisterServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n return\n }\n\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(\"Service Worker 注销失败:\", error)\n })\n}\n"],"names":[],"mappings":";;;;;;AAAO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE,QAAQ,GAAG,CAAC;QACZ;IACF;;;IAEA,MAAM;AA2BR;AAEO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE;IACF;;;AASF"}}, + {"offset": {"line": 366, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;;;AAEO,SAAS,GAAG,GAAG,MAAoB;IACxC,OAAO,IAAA,2RAAO,EAAC,IAAA,qPAAI,EAAC;AACtB"}}, + {"offset": {"line": 381, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/button.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n \n )\n}\n\nexport { Button, buttonVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,iBAAiB,IAAA,ySAAG,EACxB,+bACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,WAAW;YACX,WAAW;QACb;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAAS,OAAO,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,KAAK,EACf,GAAG,OAIF;IACD,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,eAAe;YAAE;YAAS;YAAM;QAAU;QACvD,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 440, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA;;;AAEA,SAAS,KAAK,EAAE,SAAS,EAAE,GAAG,OAAoC;IAChE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,qFACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,4JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,UAAU,EAAE,SAAS,EAAE,GAAG,OAAoC;IACrE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,8BAA8B;QAC3C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAoC;IAC3E,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kEACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EAAE,SAAS,EAAE,GAAG,OAAoC;IACvE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,QAAQ;QACrB,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2CAA2C;QACxD,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 542, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps) {\n return (\n \n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":[],"mappings":";;;;;;;;;AACA;AAEA;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,qOACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,GAAG,OAC8D;IACjE,qBACE,oaAAC;QACC,aAAU;QACV,MAAK;QACL,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,+DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,iBAAiB,EACxB,SAAS,EACT,GAAG,OACyB;IAC5B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kGACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 608, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, X, Smartphone } from \"lucide-react\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function PWAInstaller() {\n const [deferredPrompt, setDeferredPrompt] = useState(null)\n const [isInstallable, setIsInstallable] = useState(false)\n const [isInstalled, setIsInstalled] = useState(false)\n const [showPrompt, setShowPrompt] = useState(false)\n\n useEffect(() => {\n // 检查是否已安装\n if (typeof window !== \"undefined\") {\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches\n const isIOSStandalone = (window.navigator as any).standalone === true\n \n if (isStandalone || isIOSStandalone) {\n setIsInstalled(true)\n return\n }\n }\n\n // 监听 beforeinstallprompt 事件\n const handleBeforeInstallPrompt = (e: Event) => {\n e.preventDefault()\n setDeferredPrompt(e)\n setIsInstallable(true)\n \n // 延迟显示提示(给用户一些时间浏览应用)\n setTimeout(() => {\n const hasSeenPrompt = localStorage.getItem('pwa-install-prompt-seen')\n if (!hasSeenPrompt) {\n setShowPrompt(true)\n }\n }, 30000) // 30秒后显示\n }\n\n // 监听安装完成事件\n const handleAppInstalled = () => {\n setIsInstalled(true)\n setShowPrompt(false)\n setIsInstallable(false)\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.addEventListener('appinstalled', handleAppInstalled)\n\n return () => {\n window.removeEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.removeEventListener('appinstalled', handleAppInstalled)\n }\n }\n }, [])\n\n const handleInstallClick = async () => {\n if (!deferredPrompt) return\n\n // 显示安装提示\n deferredPrompt.prompt()\n\n // 等待用户响应\n const { outcome } = await deferredPrompt.userChoice\n \n if (outcome === 'accepted') {\n console.log('用户接受了安装')\n } else {\n console.log('用户拒绝了安装')\n }\n\n setDeferredPrompt(null)\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n const handleDismiss = () => {\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n if (isInstalled) {\n return null\n }\n\n if (!isInstallable) {\n return null\n }\n\n return (\n <>\n {/* 浮动安装提示 */}\n {showPrompt && (\n
\n \n \n
\n
\n \n 安装应用\n
\n \n \n \n
\n \n 将家谱应用添加到主屏幕,随时随地访问\n \n
\n \n \n \n 立即安装\n \n \n
\n
\n )}\n\n {/* 设置页面的安装按钮 */}\n {!showPrompt && (\n \n \n \n 将应用安装到设备\n \n \n \n )}\n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;;;;;;;AAQO,SAAS;IACd,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,IAAA,uYAAQ,EAAM;IAC1D,MAAM,CAAC,eAAe,iBAAiB,GAAG,IAAA,uYAAQ,EAAC;IACnD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,YAAY,cAAc,GAAG,IAAA,uYAAQ,EAAC;IAE7C,IAAA,wYAAS,EAAC;QACR,UAAU;QACV;;QAUA,4BAA4B;QAC5B,MAAM,4BAA4B,CAAC;YACjC,EAAE,cAAc;YAChB,kBAAkB;YAClB,iBAAiB;YAEjB,sBAAsB;YACtB,WAAW;gBACT,MAAM,gBAAgB,aAAa,OAAO,CAAC;gBAC3C,IAAI,CAAC,eAAe;oBAClB,cAAc;gBAChB;YACF,GAAG,QAAO,SAAS;QACrB;QAEA,WAAW;QACX,MAAM,qBAAqB;YACzB,eAAe;YACf,cAAc;YACd,iBAAiB;QACnB;QAEA;;IASF,GAAG,EAAE;IAEL,MAAM,qBAAqB;QACzB,IAAI,CAAC,gBAAgB;QAErB,SAAS;QACT,eAAe,MAAM;QAErB,SAAS;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,UAAU;QAEnD,IAAI,YAAY,YAAY;YAC1B,QAAQ,GAAG,CAAC;QACd,OAAO;YACL,QAAQ,GAAG,CAAC;QACd;QAEA,kBAAkB;QAClB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,MAAM,gBAAgB;QACpB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,IAAI,aAAa;QACf,OAAO;IACT;IAEA,IAAI,CAAC,eAAe;QAClB,OAAO;IACT;IAEA,qBACE;;YAEG,4BACC,oaAAC;gBAAI,WAAU;0BACb,cAAA,oaAAC,wLAAI;oBAAC,WAAU;;sCACd,oaAAC,8LAAU;4BAAC,WAAU;;8CACpB,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAI,WAAU;;8DACb,oaAAC,uWAAU;oDAAC,WAAU;;;;;;8DACtB,oaAAC,6LAAS;oDAAC,WAAU;8DAAY;;;;;;;;;;;;sDAEnC,oaAAC,4LAAM;4CACL,SAAQ;4CACR,MAAK;4CACL,WAAU;4CACV,SAAS;sDAET,cAAA,oaAAC,4UAAC;gDAAC,WAAU;;;;;;;;;;;;;;;;;8CAGjB,oaAAC,mMAAe;oCAAC,WAAU;8CAAU;;;;;;;;;;;;sCAIvC,oaAAC,+LAAW;4BAAC,WAAU;sCACrB,cAAA,oaAAC,4LAAM;gCACL,SAAS;gCACT,WAAU;gCACV,MAAK;;kDAEL,oaAAC,iWAAQ;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;;;;;;;;;;;;;;;;;YAS9C,CAAC,4BACA,oaAAC,0LAAK;gBAAC,WAAU;gBAAqD,SAAS;;kCAC7E,oaAAC,iWAAQ;wBAAC,WAAU;;;;;;kCACpB,oaAAC,qMAAgB;wBAAC,WAAU;;0CAC1B,oaAAC;0CAAK;;;;;;0CACN,oaAAC,4LAAM;gCAAC,MAAK;gCAAK,SAAQ;0CAAU;;;;;;;;;;;;;;;;;;;;AAQhD"}}, + {"offset": {"line": 843, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect } from \"react\"\nimport { registerServiceWorker } from \"@/lib/register-sw\"\nimport { PWAInstaller } from \"./pwa-installer\"\n\nexport function PWAProvider({ children }: { children: React.ReactNode }) {\n useEffect(() => {\n registerServiceWorker()\n }, [])\n\n return (\n <>\n {children}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AAJA;;;;;AAMO,SAAS,YAAY,EAAE,QAAQ,EAAiC;IACrE,IAAA,wYAAS,EAAC;QACR,IAAA,qMAAqB;IACvB,GAAG,EAAE;IAEL,qBACE;;YACG;0BACD,oaAAC,6MAAY;;;;;;;AAGnB"}}, + {"offset": {"line": 875, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { SessionProvider as NextAuthSessionProvider } from \"next-auth/react\"\n\nexport function SessionProvider({ children }: { children: React.ReactNode }) {\n return {children}\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAIO,SAAS,gBAAgB,EAAE,QAAQ,EAAiC;IACzE,qBAAO,oaAAC,scAAuB;kBAAE;;;;;;AACnC"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js b/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js index 81a25bab..62871c16 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js @@ -369,6 +369,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)"); @@ -396,6 +397,7 @@ function SiteHeader() { const [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); + const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); const handleSignOut = async ()=>{ @@ -413,6 +415,46 @@ function SiteHeader() { } return "U"; }; + // 删除家族树 + const handleDeleteTree = async (tree, e)=>{ + e.stopPropagation(); // 阻止触发选择事件 + // 检查权限 + if (tree.ownerId !== session?.user?.id) { + alert('只有家族树的创建者才能删除'); + return; + } + const confirmText = `确定要删除家族树"${tree.name}"吗?\n\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`; + if (!confirm(confirmText)) { + return; + } + // 二次确认 + const finalConfirm = prompt(`请输入家族树名称"${tree.name}"以确认删除:`); + if (finalConfirm !== tree.name) { + alert('名称不匹配,删除已取消'); + return; + } + setDeletingTreeId(tree.id); + try { + const response = await fetch(`/api/trees/${tree.id}`, { + method: 'DELETE' + }); + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || '删除失败'); + } + // 刷新家族树列表 + await loadFamilyTrees(); + // 如果删除的是当前树,跳转到首页 + if (currentTree?.id === tree.id) { + window.location.href = '/'; + } + } catch (error) { + console.error('删除家族树失败:', error); + alert('删除失败:' + error.message); + } finally{ + setDeletingTreeId(null); + } + }; // 获取家族树列表 const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>{ if (session?.user?.id) { @@ -491,12 +533,12 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 122, + lineNumber: 172, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 121, + lineNumber: 171, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -504,13 +546,13 @@ function SiteHeader() { children: "华夏谱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 124, + lineNumber: 174, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 120, + lineNumber: 170, columnNumber: 11 }, this), session && familyTrees.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { @@ -526,25 +568,25 @@ function SiteHeader() { children: currentTree?.name || '选择家族树' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 132, + lineNumber: 182, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 133, + lineNumber: 183, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 131, + lineNumber: 181, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 130, + lineNumber: 180, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -555,12 +597,12 @@ function SiteHeader() { children: "我的家族树" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 137, + lineNumber: 187, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 138, + lineNumber: 188, columnNumber: 17 }, this), familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -568,33 +610,60 @@ function SiteHeader() { setCurrentTree(tree); router.push(`/?treeId=${tree.id}`); }, - className: "cursor-pointer", + className: "cursor-pointer flex items-center justify-between group", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "flex-1 truncate", children: tree.name }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 148, + lineNumber: 198, columnNumber: 21 }, this), - currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-primary", - children: "✓" - }, void 0, false, { + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center gap-2", + children: [ + currentTree?.id === tree.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-primary", + children: "✓" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 201, + columnNumber: 25 + }, this), + tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "ghost", + size: "sm", + className: "h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-destructive hover:text-destructive-foreground", + onClick: (e)=>handleDeleteTree(tree, e), + disabled: deletingTreeId === tree.id, + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], { + className: "h-3 w-3" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 211, + columnNumber: 27 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", + lineNumber: 204, + columnNumber: 25 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 150, - columnNumber: 23 + lineNumber: 199, + columnNumber: 21 }, this) ] }, tree.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 140, + lineNumber: 190, columnNumber: 19 }, this)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 154, + lineNumber: 217, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -605,32 +674,32 @@ function SiteHeader() { className: "h-4 w-4 mr-2" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 159, + lineNumber: 222, columnNumber: 19 }, this), "创建新家族树" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 155, + lineNumber: 218, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 136, + lineNumber: 186, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 129, + lineNumber: 179, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 119, + lineNumber: 169, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", { @@ -642,7 +711,7 @@ function SiteHeader() { children: "总览 (Overview)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 168, + lineNumber: 231, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -651,7 +720,7 @@ function SiteHeader() { children: "族谱 (Tree)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 174, + lineNumber: 237, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -660,7 +729,7 @@ function SiteHeader() { children: "成员 (Members)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 177, + lineNumber: 240, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -669,13 +738,13 @@ function SiteHeader() { children: "大事记 (Timeline)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 180, + lineNumber: 243, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 167, + lineNumber: 230, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -689,7 +758,7 @@ function SiteHeader() { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 187, + lineNumber: 250, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], { @@ -700,7 +769,7 @@ function SiteHeader() { className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 188, + lineNumber: 251, columnNumber: 13 }, this), showResults && searchResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -721,7 +790,7 @@ function SiteHeader() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 208, + lineNumber: 271, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -729,7 +798,7 @@ function SiteHeader() { children: member.gender === "male" ? "男" : "女" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 209, + lineNumber: 272, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -741,13 +810,13 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 212, + lineNumber: 275, columnNumber: 27 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 207, + lineNumber: 270, columnNumber: 25 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -758,28 +827,28 @@ function SiteHeader() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 214, + lineNumber: 277, columnNumber: 25 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 206, + lineNumber: 269, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 205, + lineNumber: 268, columnNumber: 21 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 200, + lineNumber: 263, columnNumber: 19 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 198, + lineNumber: 261, columnNumber: 15 }, this), showResults && searchQuery && searchResults.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -787,13 +856,13 @@ function SiteHeader() { children: "未找到匹配的成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 227, + lineNumber: 290, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 186, + lineNumber: 249, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -805,7 +874,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 234, + lineNumber: 297, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -813,13 +882,13 @@ function SiteHeader() { children: "Notifications" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 235, + lineNumber: 298, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 233, + lineNumber: 296, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -833,7 +902,7 @@ function SiteHeader() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 240, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -841,18 +910,18 @@ function SiteHeader() { children: "Settings" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 241, + lineNumber: 304, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 239, + lineNumber: 302, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 238, + lineNumber: 301, columnNumber: 11 }, this), status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], { @@ -861,12 +930,12 @@ function SiteHeader() { children: "..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 247, + lineNumber: 310, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 246, + lineNumber: 309, columnNumber: 13 }, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], { children: [ @@ -883,30 +952,30 @@ function SiteHeader() { alt: session.user?.name || "User" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 254, + lineNumber: 317, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], { children: getUserInitial() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 255, + lineNumber: 318, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 253, + lineNumber: 316, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 252, + lineNumber: 315, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 251, + lineNumber: 314, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], { @@ -924,7 +993,7 @@ function SiteHeader() { children: session.user?.name || "用户" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 262, + lineNumber: 325, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -932,23 +1001,23 @@ function SiteHeader() { children: session.user?.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 263, + lineNumber: 326, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 261, + lineNumber: 324, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 260, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 268, + lineNumber: 331, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -961,30 +1030,30 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 271, + lineNumber: 334, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "个人设置" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 272, + lineNumber: 335, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 270, + lineNumber: 333, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 269, + lineNumber: 332, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 275, + lineNumber: 338, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], { @@ -995,32 +1064,32 @@ function SiteHeader() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 277, + lineNumber: 340, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { children: "退出登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 278, + lineNumber: 341, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 276, + lineNumber: 339, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 259, + lineNumber: 322, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 250, + lineNumber: 313, columnNumber: 13 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/auth/signin", @@ -1030,29 +1099,29 @@ function SiteHeader() { children: "登录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 284, + lineNumber: 347, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 283, + lineNumber: 346, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 185, + lineNumber: 248, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 118, + lineNumber: 168, columnNumber: 7 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx", - lineNumber: 117, + lineNumber: 167, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js.map b/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js.map index 0f401664..1519e7a1 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js.map +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__ef100adf._.js.map @@ -5,19 +5,19 @@ {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n )\n}\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAEA;;;AAEA,SAAS,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAsC;IACzE,qBACE,oaAAC;QACC,MAAM;QACN,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8bACA,iFACA,0GACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 29, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":[],"mappings":";;;;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,8DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2BAA2B;QACxC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,eAAe,EACtB,SAAS,EACT,GAAG,OACmD;IACtD,qBACE,oaAAC,ybAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,oEACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 82, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dropdown-menu.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n \n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean\n}) {\n return (\n \n {children}\n \n \n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer\"\n >\n {tree.name}\n {currentTree?.id === tree.id && (\n \n )}\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n \n \n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1062, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/gedcom.ts"],"sourcesContent":["import type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { parseGedcom } from \"read-gedcom\"\n\n/**\n * 将 FamilyTreeData 导出为 GEDCOM 格式\n */\nexport function exportToGedcom(treeData: FamilyTreeData): string {\n const lines: string[] = []\n \n // GEDCOM Header\n lines.push(\"0 HEAD\")\n lines.push(\"1 SOUR Chinese Family Tree\")\n lines.push(\"2 VERS 1.0\")\n lines.push(\"2 NAME 华夏谱\")\n lines.push(\"1 DEST ANY\")\n lines.push(\"1 DATE \" + new Date().toISOString().split('T')[0].replace(/-/g, ' '))\n lines.push(\"1 CHAR UTF-8\")\n lines.push(\"1 GEDC\")\n lines.push(\"2 VERS 5.5.1\")\n lines.push(\"2 FORM LINEAGE-LINKED\")\n \n const members = Object.values(treeData.members)\n \n // 个人记录 (INDI)\n members.forEach(member => {\n lines.push(`0 @I${member.id}@ INDI`)\n lines.push(`1 NAME ${member.fullName}`)\n lines.push(`2 GIVN ${member.givenName}`)\n lines.push(`2 SURN ${member.surname}`)\n \n if (member.courtesyName) {\n lines.push(`2 _AKA ${member.courtesyName}`)\n }\n \n if (member.gender === 'male') {\n lines.push(\"1 SEX M\")\n } else if (member.gender === 'female') {\n lines.push(\"1 SEX F\")\n }\n \n // 出生信息\n if (member.birthDate) {\n lines.push(\"1 BIRT\")\n lines.push(`2 DATE ${formatGedcomDate(member.birthDate)}`)\n if (member.birthPlace) {\n lines.push(`2 PLAC ${member.birthPlace}`)\n }\n }\n \n // 逝世信息\n if (member.deathDate) {\n lines.push(\"1 DEAT\")\n lines.push(`2 DATE ${formatGedcomDate(member.deathDate)}`)\n if (member.burialPlace) {\n lines.push(`2 PLAC ${member.burialPlace}`)\n }\n }\n \n // 籍贯\n if (member.ancestralHome) {\n lines.push(\"1 RESI\")\n lines.push(`2 PLAC ${member.ancestralHome}`)\n }\n \n // 备注\n if (member.bio) {\n lines.push(\"1 NOTE \" + member.bio.replace(/\\n/g, \"\\n1 CONT \"))\n }\n \n // 家庭关系 - 作为子女\n if (member.fatherId || member.motherId) {\n const famId = `F${member.fatherId || member.motherId}_${member.id}`\n lines.push(`1 FAMC @${famId}@`)\n }\n \n // 家庭关系 - 作为配偶\n if (member.spouseIds.length > 0) {\n member.spouseIds.forEach(spouseId => {\n const famId = `F${member.id}_${spouseId}`\n lines.push(`1 FAMS @${famId}@`)\n })\n }\n })\n \n // 家庭记录 (FAM)\n const processedFamilies = new Set()\n \n members.forEach(member => {\n // 创建父母家庭\n if (member.fatherId || member.motherId) {\n const famId = `F${member.fatherId || member.motherId}_${member.id}`\n if (!processedFamilies.has(famId)) {\n lines.push(`0 @${famId}@ FAM`)\n if (member.fatherId) {\n lines.push(`1 HUSB @I${member.fatherId}@`)\n }\n if (member.motherId) {\n lines.push(`1 WIFE @I${member.motherId}@`)\n }\n \n // 查找所有同父母的子女\n const siblings = members.filter(m => \n m.fatherId === member.fatherId && m.motherId === member.motherId\n )\n siblings.forEach(child => {\n lines.push(`1 CHIL @I${child.id}@`)\n })\n \n processedFamilies.add(famId)\n }\n }\n \n // 创建配偶家庭\n if (member.spouseIds.length > 0) {\n member.spouseIds.forEach(spouseId => {\n const famId = member.gender === 'male' \n ? `F${member.id}_${spouseId}`\n : `F${spouseId}_${member.id}`\n \n if (!processedFamilies.has(famId)) {\n lines.push(`0 @${famId}@ FAM`)\n \n if (member.gender === 'male') {\n lines.push(`1 HUSB @I${member.id}@`)\n lines.push(`1 WIFE @I${spouseId}@`)\n } else {\n lines.push(`1 HUSB @I${spouseId}@`)\n lines.push(`1 WIFE @I${member.id}@`)\n }\n \n // 添加子女\n member.childrenIds.forEach(childId => {\n lines.push(`1 CHIL @I${childId}@`)\n })\n \n processedFamilies.add(famId)\n }\n })\n }\n })\n \n // GEDCOM Trailer\n lines.push(\"0 TRLR\")\n \n return lines.join(\"\\n\")\n}\n\n/**\n * 从 GEDCOM 格式导入数据\n */\nexport function importFromGedcom(gedcomText: string): FamilyTreeData {\n const parsed = parseGedcom(gedcomText as any)\n const members: Record = {}\n let rootId: string | undefined\n \n // 第一遍:创建所有个人\n const records = Array.isArray(parsed) ? parsed : (parsed as any).tree || []\n records.forEach((record: any) => {\n if (record.tag === 'INDI') {\n const id = record.pointer.replace('@I', '').replace('@', '')\n \n let fullName = ''\n let givenName = ''\n let surname = ''\n let courtesyName: string | undefined\n let gender: 'male' | 'female' | 'other' = 'other'\n let birthDate: string | undefined\n let deathDate: string | undefined\n let birthPlace: string | undefined\n let burialPlace: string | undefined\n let ancestralHome: string | undefined\n let bio: string | undefined\n \n record.tree.forEach((field: any) => {\n if (field.tag === 'NAME') {\n fullName = field.data.replace(/\\//g, '').trim()\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'GIVN') givenName = subField.data\n if (subField.tag === 'SURN') surname = subField.data\n if (subField.tag === '_AKA') courtesyName = subField.data\n })\n }\n if (field.tag === 'SEX') {\n gender = field.data === 'M' ? 'male' : field.data === 'F' ? 'female' : 'other'\n }\n if (field.tag === 'BIRT') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'DATE') birthDate = parseGedcomDate(subField.data)\n if (subField.tag === 'PLAC') birthPlace = subField.data\n })\n }\n if (field.tag === 'DEAT') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'DATE') deathDate = parseGedcomDate(subField.data)\n if (subField.tag === 'PLAC') burialPlace = subField.data\n })\n }\n if (field.tag === 'RESI') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'PLAC') ancestralHome = subField.data\n })\n }\n if (field.tag === 'NOTE') {\n bio = field.data\n }\n })\n \n members[id] = {\n id,\n surname: surname || '未知',\n givenName: givenName || fullName,\n fullName: fullName || `${surname}${givenName}`,\n gender,\n generation: 1, // 将在第二遍中计算\n courtesyName,\n birthDate,\n deathDate,\n birthPlace,\n burialPlace,\n ancestralHome,\n bio,\n spouseIds: [],\n childrenIds: [],\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n })\n \n // 第二遍:建立关系\n records.forEach((record: any) => {\n if (record.tag === 'FAM') {\n let husbId: string | undefined\n let wifeId: string | undefined\n const childIds: string[] = []\n \n record.tree.forEach((field: any) => {\n if (field.tag === 'HUSB') {\n husbId = field.data.replace('@I', '').replace('@', '')\n }\n if (field.tag === 'WIFE') {\n wifeId = field.data.replace('@I', '').replace('@', '')\n }\n if (field.tag === 'CHIL') {\n childIds.push(field.data.replace('@I', '').replace('@', ''))\n }\n })\n \n // 设置配偶关系\n if (husbId && wifeId) {\n if (members[husbId] && !members[husbId].spouseIds.includes(wifeId)) {\n members[husbId].spouseIds.push(wifeId)\n }\n if (members[wifeId] && !members[wifeId].spouseIds.includes(husbId)) {\n members[wifeId].spouseIds.push(husbId)\n }\n }\n \n // 设置父母-子女关系\n childIds.forEach(childId => {\n if (members[childId]) {\n if (husbId) {\n members[childId].fatherId = husbId\n if (members[husbId] && !members[husbId].childrenIds.includes(childId)) {\n members[husbId].childrenIds.push(childId)\n }\n }\n if (wifeId) {\n members[childId].motherId = wifeId\n if (members[wifeId] && !members[wifeId].childrenIds.includes(childId)) {\n members[wifeId].childrenIds.push(childId)\n }\n }\n }\n })\n }\n })\n \n // 计算世代并找到根节点\n const calculateGeneration = (id: string, visited = new Set()): number => {\n if (visited.has(id)) return 1 // 防止循环引用\n visited.add(id)\n \n const member = members[id]\n if (!member) return 1\n \n if (!member.fatherId && !member.motherId) {\n return 1 // 根节点\n }\n \n const fatherGen = member.fatherId ? calculateGeneration(member.fatherId, visited) : 0\n const motherGen = member.motherId ? calculateGeneration(member.motherId, visited) : 0\n \n return Math.max(fatherGen, motherGen) + 1\n }\n \n Object.keys(members).forEach(id => {\n members[id].generation = calculateGeneration(id)\n })\n \n // 找到第一代作为根节点\n rootId = Object.keys(members).find(id => members[id].generation === 1)\n \n return {\n members,\n rootId,\n }\n}\n\n// 辅助函数:格式化日期为 GEDCOM 格式\nfunction formatGedcomDate(isoDate: string): string {\n const date = new Date(isoDate)\n const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']\n return `${date.getDate()} ${months[date.getMonth()]} ${date.getFullYear()}`\n}\n\n// 辅助函数:解析 GEDCOM 日期为 ISO 格式\nfunction parseGedcomDate(gedcomDate: string): string {\n const months: Record = {\n JAN: 0, FEB: 1, MAR: 2, APR: 3, MAY: 4, JUN: 5,\n JUL: 6, AUG: 7, SEP: 8, OCT: 9, NOV: 10, DEC: 11\n }\n \n const parts = gedcomDate.trim().split(' ')\n if (parts.length === 3) {\n const day = parseInt(parts[0])\n const month = months[parts[1].toUpperCase()]\n const year = parseInt(parts[2])\n \n if (!isNaN(day) && month !== undefined && !isNaN(year)) {\n return new Date(year, month, day).toISOString().split('T')[0]\n }\n }\n \n // 如果只有年份\n if (parts.length === 1 && !isNaN(parseInt(parts[0]))) {\n return `${parts[0]}-01-01`\n }\n \n return new Date().toISOString().split('T')[0]\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1382, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/switch.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\n\nimport { cn } from '@/lib/utils'\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { Switch }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6WACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sbAAqB;YACpB,aAAU;YACV,WACE;;;;;;;;;;;AAKV"}}, - {"offset": {"line": 1417, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 1444, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/notifications.ts"],"sourcesContent":["import type { FamilyMember } from \"@/types/family\"\n\n/**\n * 请求浏览器通知权限\n */\nexport async function requestNotificationPermission(): Promise {\n if (typeof window === \"undefined\" || !(\"Notification\" in window)) {\n console.warn(\"浏览器不支持通知\")\n return false\n }\n\n if (Notification.permission === \"granted\") {\n return true\n }\n\n if (Notification.permission !== \"denied\") {\n const permission = await Notification.requestPermission()\n return permission === \"granted\"\n }\n\n return false\n}\n\n/**\n * 发送浏览器通知\n */\nexport function sendNotification(title: string, options?: NotificationOptions) {\n if (typeof window === \"undefined\" || !(\"Notification\" in window)) {\n return\n }\n \n if (Notification.permission === \"granted\") {\n new Notification(title, {\n icon: \"/icon.svg\",\n badge: \"/icon.svg\",\n ...options,\n })\n }\n}\n\n/**\n * 检查今天是否有纪念日\n */\nexport function checkTodayAnniversaries(members: FamilyMember[]): {\n birthdays: FamilyMember[]\n deathdays: FamilyMember[]\n} {\n const today = new Date()\n const currentMonth = today.getMonth() + 1\n const currentDay = today.getDate()\n\n const birthdays: FamilyMember[] = []\n const deathdays: FamilyMember[] = []\n\n members.forEach((member) => {\n // 检查生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n if (birthDate.getMonth() + 1 === currentMonth && birthDate.getDate() === currentDay) {\n birthdays.push(member)\n }\n }\n\n // 检查忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n if (deathDate.getMonth() + 1 === currentMonth && deathDate.getDate() === currentDay) {\n deathdays.push(member)\n }\n }\n })\n\n return { birthdays, deathdays }\n}\n\n/**\n * 检查即将到来的纪念日(未来7天)\n */\nexport function checkUpcomingAnniversaries(members: FamilyMember[], days: number = 7): {\n birthdays: Array<{ member: FamilyMember; daysUntil: number }>\n deathdays: Array<{ member: FamilyMember; daysUntil: number }>\n} {\n const today = new Date()\n const birthdays: Array<{ member: FamilyMember; daysUntil: number }> = []\n const deathdays: Array<{ member: FamilyMember; daysUntil: number }> = []\n\n members.forEach((member) => {\n // 检查生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirthday = new Date(today.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n \n if (thisYearBirthday < today) {\n thisYearBirthday.setFullYear(today.getFullYear() + 1)\n }\n\n const daysUntil = Math.ceil((thisYearBirthday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24))\n \n if (daysUntil > 0 && daysUntil <= days) {\n birthdays.push({ member, daysUntil })\n }\n }\n\n // 检查忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeathday = new Date(today.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n \n if (thisYearDeathday < today) {\n thisYearDeathday.setFullYear(today.getFullYear() + 1)\n }\n\n const daysUntil = Math.ceil((thisYearDeathday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24))\n \n if (daysUntil > 0 && daysUntil <= days) {\n deathdays.push({ member, daysUntil })\n }\n }\n })\n\n return { birthdays, deathdays }\n}\n\n/**\n * 发送今日纪念日通知\n */\nexport function notifyTodayAnniversaries(members: FamilyMember[]) {\n const { birthdays, deathdays } = checkTodayAnniversaries(members)\n\n if (birthdays.length > 0) {\n const names = birthdays.map(m => m.fullName).join(\"、\")\n sendNotification(\"🎂 今日生日提醒\", {\n body: `今天是 ${names} 的生日!`,\n tag: \"birthday-today\",\n })\n }\n\n if (deathdays.length > 0) {\n const names = deathdays.map(m => m.fullName).join(\"、\")\n sendNotification(\"🕯️ 今日忌日提醒\", {\n body: `今天是 ${names} 的忌日,缅怀先人。`,\n tag: \"deathday-today\",\n })\n }\n}\n\n/**\n * 设置每日通知检查\n */\nexport function setupDailyNotificationCheck(members: FamilyMember[]) {\n if (typeof window === \"undefined\") {\n return\n }\n \n // 检查是否已经在今天检查过\n const lastCheckDate = localStorage.getItem(\"lastNotificationCheck\")\n const today = new Date().toDateString()\n\n if (lastCheckDate !== today) {\n notifyTodayAnniversaries(members)\n localStorage.setItem(\"lastNotificationCheck\", today)\n }\n\n // 设置每小时检查一次(防止用户长时间开着页面)\n setInterval(() => {\n const currentDate = new Date().toDateString()\n const lastCheck = localStorage.getItem(\"lastNotificationCheck\")\n \n if (lastCheck !== currentDate) {\n notifyTodayAnniversaries(members)\n localStorage.setItem(\"lastNotificationCheck\", currentDate)\n }\n }, 60 * 60 * 1000) // 每小时检查一次\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1572, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/notification-settings.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Switch } from \"@/components/ui/switch\"\nimport { Label } from \"@/components/ui/label\"\nimport { Bell, BellOff, Check, X } from \"lucide-react\"\nimport { requestNotificationPermission, checkUpcomingAnniversaries } from \"@/lib/notifications\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function NotificationSettings() {\n const { treeData } = useFamily()\n const [notificationEnabled, setNotificationEnabled] = useState(false)\n const [permission, setPermission] = useState(\"default\")\n const [isClient, setIsClient] = useState(false)\n const [upcomingEvents, setUpcomingEvents] = useState<{\n birthdays: Array<{ member: any; daysUntil: number }>\n deathdays: Array<{ member: any; daysUntil: number }>\n }>({ birthdays: [], deathdays: [] })\n\n useEffect(() => {\n // 标记为客户端\n setIsClient(true)\n \n // 检查通知权限\n if (typeof window !== \"undefined\" && \"Notification\" in window) {\n setPermission(Notification.permission)\n setNotificationEnabled(Notification.permission === \"granted\")\n }\n\n // 检查即将到来的纪念日\n const members = Object.values(treeData.members)\n const upcoming = checkUpcomingAnniversaries(members, 7)\n setUpcomingEvents(upcoming)\n }, [treeData])\n\n const handleEnableNotifications = async () => {\n const granted = await requestNotificationPermission()\n if (granted) {\n setNotificationEnabled(true)\n setPermission(\"granted\")\n \n // 发送测试通知\n new Notification(\"通知已启用\", {\n body: \"您将收到家族纪念日提醒\",\n icon: \"/icon.svg\",\n })\n } else {\n setPermission(Notification.permission)\n }\n }\n\n const handleDisableNotifications = () => {\n setNotificationEnabled(false)\n alert(\"请在浏览器设置中禁用此网站的通知权限\")\n }\n\n return (\n
\n \n \n \n \n 纪念日通知\n \n \n 接收家族成员生日和忌日的浏览器通知\n \n \n \n {!isClient ? (\n
\n 加载中...\n
\n ) : !(typeof window !== \"undefined\" && \"Notification\" in window) ? (\n \n \n 您的浏览器不支持通知功能\n \n \n ) : (\n <>\n
\n
\n \n

\n 每天自动检查并提醒当日纪念日\n

\n
\n {\n if (checked) {\n handleEnableNotifications()\n } else {\n handleDisableNotifications()\n }\n }}\n />\n
\n\n {permission === \"denied\" && (\n \n \n \n 通知权限已被拒绝。请在浏览器设置中允许此网站发送通知。\n \n \n )}\n\n {permission === \"granted\" && (\n \n \n \n 通知已启用。您将在每天首次访问时收到当日纪念日提醒。\n \n \n )}\n\n {notificationEnabled && (\n {\n new Notification(\"测试通知\", {\n body: \"这是一条测试通知\",\n icon: \"/icon.svg\",\n })\n }}\n >\n 发送测试通知\n \n )}\n \n )}\n
\n
\n\n {/* 即将到来的纪念日 */}\n {(upcomingEvents.birthdays.length > 0 || upcomingEvents.deathdays.length > 0) && (\n \n \n 即将到来的纪念日(7天内)\n 提前准备,不错过重要日子\n \n \n
\n {upcomingEvents.birthdays.length > 0 && (\n
\n

\n 🎂 生日\n

\n
\n {upcomingEvents.birthdays.map(({ member, daysUntil }) => (\n \n
\n

{member.fullName}

\n

\n {new Date(member.birthDate).toLocaleDateString('zh-CN', {\n month: 'long',\n day: 'numeric'\n })}\n

\n
\n
\n

\n {daysUntil === 1 ? '明天' : `${daysUntil}天后`}\n

\n
\n
\n ))}\n
\n
\n )}\n\n {upcomingEvents.deathdays.length > 0 && (\n
\n

\n 🕯️ 忌日\n

\n
\n {upcomingEvents.deathdays.map(({ member, daysUntil }) => (\n \n
\n

{member.fullName}

\n

\n {new Date(member.deathDate!).toLocaleDateString('zh-CN', {\n month: 'long',\n day: 'numeric'\n })}\n

\n
\n
\n

\n {daysUntil === 1 ? '明天' : `${daysUntil}天后`}\n

\n
\n
\n ))}\n
\n
\n )}\n
\n
\n
\n )}\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1911, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, - {"offset": {"line": 1981, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> &\n VariantProps & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span'\n\n return (\n \n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,kZACA;IACE,UAAU;QACR,SAAS;YACP,SACE;YACF,WACE;YACF,aACE;YACF,SACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,UAAU,KAAK,EACf,GAAG,OAEuD;IAC1D,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 2027, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, - {"offset": {"line": 2066, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/activity-logger.ts"],"sourcesContent":["import { db, type ActivityLog } from \"./db\"\nimport { v4 as uuidv4 } from \"uuid\"\n\n/**\n * 记录活动日志\n */\nexport async function logActivity(\n action: ActivityLog[\"action\"],\n entityType: ActivityLog[\"entityType\"],\n entityId?: string,\n entityName?: string,\n changes?: any\n): Promise {\n try {\n const log: ActivityLog = {\n id: uuidv4(),\n action,\n entityType,\n entityId,\n entityName,\n changes,\n timestamp: new Date().toISOString(),\n userId: \"local-user\", // 本地版本暂时使用固定用户ID\n userName: \"本地用户\",\n }\n\n await db.activityLogs.add(log)\n } catch (error) {\n console.error(\"记录活动日志失败:\", error)\n }\n}\n\n/**\n * 获取活动日志列表\n */\nexport async function getActivityLogs(limit: number = 50): Promise {\n try {\n return await db.activityLogs\n .orderBy(\"timestamp\")\n .reverse()\n .limit(limit)\n .toArray()\n } catch (error) {\n console.error(\"获取活动日志失败:\", error)\n return []\n }\n}\n\n/**\n * 获取特定成员的活动日志\n */\nexport async function getMemberActivityLogs(memberId: string): Promise {\n try {\n return await db.activityLogs\n .where(\"entityId\")\n .equals(memberId)\n .reverse()\n .sortBy(\"timestamp\")\n } catch (error) {\n console.error(\"获取成员活动日志失败:\", error)\n return []\n }\n}\n\n/**\n * 清除旧日志(保留最近N天)\n */\nexport async function cleanOldLogs(daysToKeep: number = 90): Promise {\n try {\n const cutoffDate = new Date()\n cutoffDate.setDate(cutoffDate.getDate() - daysToKeep)\n const cutoffTimestamp = cutoffDate.toISOString()\n\n const oldLogs = await db.activityLogs\n .where(\"timestamp\")\n .below(cutoffTimestamp)\n .toArray()\n\n await db.activityLogs\n .where(\"timestamp\")\n .below(cutoffTimestamp)\n .delete()\n\n return oldLogs.length\n } catch (error) {\n console.error(\"清除旧日志失败:\", error)\n return 0\n }\n}\n\n/**\n * 获取活动统计\n */\nexport async function getActivityStats(): Promise<{\n total: number\n byAction: Record\n byEntityType: Record\n recentCount: number\n}> {\n try {\n const allLogs = await db.activityLogs.toArray()\n const oneDayAgo = new Date()\n oneDayAgo.setDate(oneDayAgo.getDate() - 1)\n\n const byAction: Record = {}\n const byEntityType: Record = {}\n let recentCount = 0\n\n allLogs.forEach((log) => {\n byAction[log.action] = (byAction[log.action] || 0) + 1\n byEntityType[log.entityType] = (byEntityType[log.entityType] || 0) + 1\n\n if (new Date(log.timestamp) > oneDayAgo) {\n recentCount++\n }\n })\n\n return {\n total: allLogs.length,\n byAction,\n byEntityType,\n recentCount,\n }\n } catch (error) {\n console.error(\"获取活动统计失败:\", error)\n return {\n total: 0,\n byAction: {},\n byEntityType: {},\n recentCount: 0,\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;;;AAKO,eAAe,YACpB,MAA6B,EAC7B,UAAqC,EACrC,QAAiB,EACjB,UAAmB,EACnB,OAAa;IAEb,IAAI;QACF,MAAM,MAAmB;YACvB,IAAI,IAAA,0RAAM;YACV;YACA;YACA;YACA;YACA;YACA,WAAW,IAAI,OAAO,WAAW;YACjC,QAAQ;YACR,UAAU;QACZ;QAEA,MAAM,sKAAE,CAAC,YAAY,CAAC,GAAG,CAAC;IAC5B,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;IAC7B;AACF;AAKO,eAAe,gBAAgB,QAAgB,EAAE;IACtD,IAAI;QACF,OAAO,MAAM,sKAAE,CAAC,YAAY,CACzB,OAAO,CAAC,aACR,OAAO,GACP,KAAK,CAAC,OACN,OAAO;IACZ,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;QAC3B,OAAO,EAAE;IACX;AACF;AAKO,eAAe,sBAAsB,QAAgB;IAC1D,IAAI;QACF,OAAO,MAAM,sKAAE,CAAC,YAAY,CACzB,KAAK,CAAC,YACN,MAAM,CAAC,UACP,OAAO,GACP,MAAM,CAAC;IACZ,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,eAAe;QAC7B,OAAO,EAAE;IACX;AACF;AAKO,eAAe,aAAa,aAAqB,EAAE;IACxD,IAAI;QACF,MAAM,aAAa,IAAI;QACvB,WAAW,OAAO,CAAC,WAAW,OAAO,KAAK;QAC1C,MAAM,kBAAkB,WAAW,WAAW;QAE9C,MAAM,UAAU,MAAM,sKAAE,CAAC,YAAY,CAClC,KAAK,CAAC,aACN,KAAK,CAAC,iBACN,OAAO;QAEV,MAAM,sKAAE,CAAC,YAAY,CAClB,KAAK,CAAC,aACN,KAAK,CAAC,iBACN,MAAM;QAET,OAAO,QAAQ,MAAM;IACvB,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,OAAO;IACT;AACF;AAKO,eAAe;IAMpB,IAAI;QACF,MAAM,UAAU,MAAM,sKAAE,CAAC,YAAY,CAAC,OAAO;QAC7C,MAAM,YAAY,IAAI;QACtB,UAAU,OAAO,CAAC,UAAU,OAAO,KAAK;QAExC,MAAM,WAAmC,CAAC;QAC1C,MAAM,eAAuC,CAAC;QAC9C,IAAI,cAAc;QAElB,QAAQ,OAAO,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI;YACrD,YAAY,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI;YAErE,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,WAAW;gBACvC;YACF;QACF;QAEA,OAAO;YACL,OAAO,QAAQ,MAAM;YACrB;YACA;YACA;QACF;IACF,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;QAC3B,OAAO;YACL,OAAO;YACP,UAAU,CAAC;YACX,cAAc,CAAC;YACf,aAAa;QACf;IACF;AACF"}}, - {"offset": {"line": 2164, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/activity-log-viewer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Button } from \"@/components/ui/button\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { History, Trash2, RefreshCw, User, FileText, Image, Settings } from \"lucide-react\"\nimport { getActivityLogs, cleanOldLogs, getActivityStats } from \"@/lib/activity-logger\"\nimport type { ActivityLog } from \"@/lib/db\"\nimport { format } from \"date-fns\"\n\nconst actionLabels = {\n create: \"创建\",\n update: \"更新\",\n delete: \"删除\",\n import: \"导入\",\n export: \"导出\",\n}\n\nconst actionColors = {\n create: \"bg-green-500\",\n update: \"bg-blue-500\",\n delete: \"bg-red-500\",\n import: \"bg-purple-500\",\n export: \"bg-orange-500\",\n}\n\nconst entityTypeLabels = {\n member: \"成员\",\n photo: \"照片\",\n story: \"故事\",\n settings: \"设置\",\n}\n\nconst entityTypeIcons = {\n member: User,\n photo: Image,\n story: FileText,\n settings: Settings,\n}\n\nexport function ActivityLogViewer() {\n const [logs, setLogs] = useState([])\n const [stats, setStats] = useState(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(null)\n\n const loadLogs = async () => {\n setLoading(true)\n setError(null)\n try {\n const [activityLogs, activityStats] = await Promise.all([\n getActivityLogs(100),\n getActivityStats()\n ])\n setLogs(activityLogs)\n setStats(activityStats)\n } catch (err) {\n console.error(\"加载日志失败:\", err)\n setError(err instanceof Error ? err.message : \"加载失败\")\n } finally {\n setLoading(false)\n }\n }\n\n useEffect(() => {\n loadLogs()\n }, [])\n\n const handleCleanOldLogs = async () => {\n if (confirm(\"确定要清除90天前的日志吗?\")) {\n const count = await cleanOldLogs(90)\n alert(`已清除 ${count} 条旧日志`)\n loadLogs()\n }\n }\n\n return (\n
\n \n \n \n \n 操作日志\n \n \n 查看所有修谱操作记录\n \n \n \n {stats && (\n
\n
\n

总记录数

\n

{stats.total}

\n
\n
\n

24小时内

\n

{stats.recentCount}

\n
\n
\n

创建操作

\n

{stats.byAction.create || 0}

\n
\n
\n

更新操作

\n

{stats.byAction.update || 0}

\n
\n
\n )}\n\n
\n \n \n 刷新\n \n \n \n 清除旧日志\n \n
\n\n \n {error ? (\n
\n 加载失败: {error}\n
\n ) : loading ? (\n
\n 加载中...\n
\n ) : logs.length === 0 ? (\n
\n 暂无操作记录\n
\n ) : (\n
\n {logs.map((log) => {\n const EntityIcon = entityTypeIcons[log.entityType]\n return (\n \n
\n \n
\n
\n
\n \n {actionLabels[log.action]}\n \n \n {entityTypeLabels[log.entityType]}\n \n {log.entityName && (\n \n {log.entityName}\n \n )}\n
\n
\n

\n {log.userName || \"系统\"}\n

\n

\n {format(new Date(log.timestamp), \"yyyy-MM-dd HH:mm:ss\")}\n

\n
\n {log.changes && Object.keys(log.changes).length > 0 && (\n
\n \n 查看变更详情\n \n
\n                              {JSON.stringify(log.changes, null, 2)}\n                            
\n
\n )}\n
\n
\n )\n })}\n
\n )}\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 2625, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db-upgrade.ts"],"sourcesContent":["import Dexie from \"dexie\"\nimport { db } from \"./db\"\n\n/**\n * 检查数据库版本并升级\n */\nexport async function checkAndUpgradeDatabase(): Promise {\n try {\n // 检查 activityLogs 表是否存在\n const tables = db.tables.map(t => t.name)\n \n if (!tables.includes(\"activityLogs\")) {\n console.log(\"检测到需要升级数据库...\")\n \n // 关闭当前连接\n db.close()\n \n // 删除旧数据库(注意:这会清除所有数据)\n // 在生产环境中,应该做数据迁移而不是删除\n await Dexie.delete(\"FamilyTreeDB\")\n \n // 重新打开数据库(会自动创建最新版本)\n await db.open()\n \n console.log(\"数据库升级完成\")\n return true\n }\n \n return false\n } catch (error) {\n console.error(\"数据库升级失败:\", error)\n return false\n }\n}\n\n/**\n * 手动升级数据库(保留数据)\n */\nexport async function upgradeDatabase(): Promise {\n try {\n // 1. 备份现有数据\n const members = await db.members.toArray()\n const settings = await db.settings.toArray()\n const images = await db.images.toArray()\n \n console.log(\"备份数据:\", { members: members.length, settings: settings.length, images: images.length })\n \n // 2. 关闭并删除数据库\n db.close()\n await Dexie.delete(\"FamilyTreeDB\")\n \n // 3. 重新打开(会创建新版本)\n await db.open()\n \n // 4. 恢复数据\n if (members.length > 0) {\n await db.members.bulkAdd(members)\n }\n if (settings.length > 0) {\n await db.settings.bulkAdd(settings)\n }\n if (images.length > 0) {\n await db.images.bulkAdd(images)\n }\n \n console.log(\"数据库升级完成,数据已恢复\")\n } catch (error) {\n console.error(\"数据库升级失败:\", error)\n throw error\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;AACA;;;AAKO,eAAe;IACpB,IAAI;QACF,wBAAwB;QACxB,MAAM,SAAS,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,IAAK,EAAE,IAAI;QAExC,IAAI,CAAC,OAAO,QAAQ,CAAC,iBAAiB;YACpC,QAAQ,GAAG,CAAC;YAEZ,SAAS;YACT,sKAAE,CAAC,KAAK;YAER,sBAAsB;YACtB,sBAAsB;YACtB,MAAM,+PAAK,CAAC,MAAM,CAAC;YAEnB,qBAAqB;YACrB,MAAM,sKAAE,CAAC,IAAI;YAEb,QAAQ,GAAG,CAAC;YACZ,OAAO;QACT;QAEA,OAAO;IACT,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,OAAO;IACT;AACF;AAKO,eAAe;IACpB,IAAI;QACF,YAAY;QACZ,MAAM,UAAU,MAAM,sKAAE,CAAC,OAAO,CAAC,OAAO;QACxC,MAAM,WAAW,MAAM,sKAAE,CAAC,QAAQ,CAAC,OAAO;QAC1C,MAAM,SAAS,MAAM,sKAAE,CAAC,MAAM,CAAC,OAAO;QAEtC,QAAQ,GAAG,CAAC,SAAS;YAAE,SAAS,QAAQ,MAAM;YAAE,UAAU,SAAS,MAAM;YAAE,QAAQ,OAAO,MAAM;QAAC;QAEjG,cAAc;QACd,sKAAE,CAAC,KAAK;QACR,MAAM,+PAAK,CAAC,MAAM,CAAC;QAEnB,kBAAkB;QAClB,MAAM,sKAAE,CAAC,IAAI;QAEb,UAAU;QACV,IAAI,QAAQ,MAAM,GAAG,GAAG;YACtB,MAAM,sKAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B;QACA,IAAI,SAAS,MAAM,GAAG,GAAG;YACvB,MAAM,sKAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5B;QACA,IAAI,OAAO,MAAM,GAAG,GAAG;YACrB,MAAM,sKAAE,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1B;QAEA,QAAQ,GAAG,CAAC;IACd,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,MAAM;IACR;AACF"}}, - {"offset": {"line": 2693, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/error-boundary.tsx"],"sourcesContent":["\"use client\"\n\nimport React from \"react\"\n\ninterface Props {\n children: React.ReactNode\n fallback?: React.ReactNode\n}\n\ninterface State {\n hasError: boolean\n error?: Error\n}\n\nexport class ErrorBoundary extends React.Component {\n constructor(props: Props) {\n super(props)\n this.state = { hasError: false }\n }\n\n static getDerivedStateFromError(error: Error): State {\n return { hasError: true, error }\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error(\"ErrorBoundary 捕获错误:\", error, errorInfo)\n }\n\n render() {\n if (this.state.hasError) {\n return (\n this.props.fallback || (\n
\n

组件加载失败

\n

\n {this.state.error?.message || \"未知错误\"}\n

\n this.setState({ hasError: false })}\n >\n 重试\n \n
\n )\n )\n }\n\n return this.props.children\n }\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAcO,MAAM,sBAAsB,sYAAK,CAAC,SAAS;IAChD,YAAY,KAAY,CAAE;QACxB,KAAK,CAAC;QACN,IAAI,CAAC,KAAK,GAAG;YAAE,UAAU;QAAM;IACjC;IAEA,OAAO,yBAAyB,KAAY,EAAS;QACnD,OAAO;YAAE,UAAU;YAAM;QAAM;IACjC;IAEA,kBAAkB,KAAY,EAAE,SAA0B,EAAE;QAC1D,QAAQ,KAAK,CAAC,uBAAuB,OAAO;IAC9C;IAEA,SAAS;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,OACE,IAAI,CAAC,KAAK,CAAC,QAAQ,kBACjB,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAG,WAAU;kCAA0C;;;;;;kCACxD,oaAAC;wBAAE,WAAU;kCACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW;;;;;;kCAEhC,oaAAC;wBACC,WAAU;wBACV,SAAS,IAAM,IAAI,CAAC,QAAQ,CAAC;gCAAE,UAAU;4BAAM;kCAChD;;;;;;;;;;;;QAMT;QAEA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;IAC5B;AACF"}}, - {"offset": {"line": 2764, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/change-password.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\nimport { Lock, CheckCircle2 } from \"lucide-react\"\n\nexport function ChangePassword() {\n const [currentPassword, setCurrentPassword] = useState(\"\")\n const [newPassword, setNewPassword] = useState(\"\")\n const [confirmPassword, setConfirmPassword] = useState(\"\")\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(false)\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n setError(\"\")\n setSuccess(false)\n setLoading(true)\n\n try {\n const response = await fetch(\"/api/user/change-password\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n currentPassword,\n newPassword,\n confirmPassword,\n }),\n })\n\n const data = await response.json()\n\n if (!response.ok) {\n setError(data.error || \"修改密码失败\")\n return\n }\n\n setSuccess(true)\n setCurrentPassword(\"\")\n setNewPassword(\"\")\n setConfirmPassword(\"\")\n\n // 3秒后清除成功消息\n setTimeout(() => setSuccess(false), 3000)\n } catch (err) {\n setError(\"修改密码失败,请稍后重试\")\n } finally {\n setLoading(false)\n }\n }\n\n return (\n \n \n \n 修改密码\n \n 更改您的登录密码\n \n \n
\n {error && (\n \n {error}\n \n )}\n\n {success && (\n \n \n \n 密码修改成功!\n \n \n )}\n\n
\n \n setCurrentPassword(e.target.value)}\n required\n disabled={loading}\n />\n
\n\n
\n \n setNewPassword(e.target.value)}\n required\n disabled={loading}\n minLength={6}\n />\n
\n\n
\n \n setConfirmPassword(e.target.value)}\n required\n disabled={loading}\n />\n
\n\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AARA;;;;;;;;;AAUO,SAAS;IACd,MAAM,CAAC,iBAAiB,mBAAmB,GAAG,IAAA,uYAAQ,EAAC;IACvD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,iBAAiB,mBAAmB,GAAG,IAAA,uYAAQ,EAAC;IACvD,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAC;IACvC,MAAM,CAAC,OAAO,SAAS,GAAG,IAAA,uYAAQ,EAAC;IACnC,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAC;IAEvC,MAAM,eAAe,OAAO;QAC1B,EAAE,cAAc;QAChB,SAAS;QACT,WAAW;QACX,WAAW;QAEX,IAAI;YACF,MAAM,WAAW,MAAM,MAAM,6BAA6B;gBACxD,QAAQ;gBACR,SAAS;oBACP,gBAAgB;gBAClB;gBACA,MAAM,KAAK,SAAS,CAAC;oBACnB;oBACA;oBACA;gBACF;YACF;YAEA,MAAM,OAAO,MAAM,SAAS,IAAI;YAEhC,IAAI,CAAC,SAAS,EAAE,EAAE;gBAChB,SAAS,KAAK,KAAK,IAAI;gBACvB;YACF;YAEA,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YAEnB,YAAY;YACZ,WAAW,IAAM,WAAW,QAAQ;QACtC,EAAE,OAAO,KAAK;YACZ,SAAS;QACX,SAAU;YACR,WAAW;QACb;IACF;IAEA,qBACE,oaAAC,wLAAI;;0BACH,oaAAC,8LAAU;;kCACT,oaAAC,6LAAS;wBAAC,WAAU;;0CACnB,oaAAC,qVAAI;gCAAC,WAAU;;;;;;4BAAY;;;;;;;kCAE9B,oaAAC,mMAAe;kCAAC;;;;;;;;;;;;0BAEnB,oaAAC,+LAAW;0BACV,cAAA,oaAAC;oBAAK,UAAU;oBAAc,WAAU;;wBACrC,uBACC,oaAAC,0LAAK;4BAAC,SAAQ;sCACb,cAAA,oaAAC,qMAAgB;0CAAE;;;;;;;;;;;wBAItB,yBACC,oaAAC,0LAAK;4BAAC,WAAU;;8CACf,oaAAC,gXAAY;oCAAC,WAAU;;;;;;8CACxB,oaAAC,qMAAgB;oCAAC,WAAU;8CAAiB;;;;;;;;;;;;sCAMjD,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAkB;;;;;;8CACjC,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK;oCAClD,QAAQ;oCACR,UAAU;;;;;;;;;;;;sCAId,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAc;;;;;;8CAC7B,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,eAAe,EAAE,MAAM,CAAC,KAAK;oCAC9C,QAAQ;oCACR,UAAU;oCACV,WAAW;;;;;;;;;;;;sCAIf,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAkB;;;;;;8CACjC,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK;oCAClD,QAAQ;oCACR,UAAU;;;;;;;;;;;;sCAId,oaAAC,4LAAM;4BAAC,MAAK;4BAAS,UAAU;4BAAS,WAAU;sCAChD,UAAU,WAAW;;;;;;;;;;;;;;;;;;;;;;;AAMlC"}}, - {"offset": {"line": 3027, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/settings/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, Upload, AlertTriangle, RefreshCw, FileText, Bell, History, Database, User as UserIcon } from \"lucide-react\"\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"\nimport { useRef, useState, useEffect } from \"react\"\nimport { exportToGedcom, importFromGedcom } from \"@/lib/gedcom\"\nimport { NotificationSettings } from \"@/components/settings/notification-settings\"\nimport { ActivityLogViewer } from \"@/components/settings/activity-log-viewer\"\nimport { upgradeDatabase } from \"@/lib/db-upgrade\"\nimport { ErrorBoundary } from \"@/components/error-boundary\"\nimport { useSession } from \"next-auth/react\"\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\"\nimport { ChangePassword } from \"@/components/settings/change-password\"\n\ninterface UserProfile {\n id: string\n email: string\n name: string | null\n createdAt: string\n updatedAt: string\n ownedTreesCount: number\n collaborations: Array<{\n treeId: string\n treeName: string\n role: string\n }>\n}\n\nexport default function SettingsPage() {\n const { treeData, loadData, resetData } = useFamily()\n const { data: session } = useSession()\n const [importStatus, setImportStatus] = useState(\"\")\n const [gedcomStatus, setGedcomStatus] = useState(\"\")\n const [userProfile, setUserProfile] = useState(null)\n const fileInputRef = useRef(null)\n const gedcomInputRef = useRef(null)\n \n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取用户资料\n useEffect(() => {\n if (session?.user?.id) {\n fetch('/api/user/profile')\n .then(res => res.json())\n .then(data => {\n if (data.user) {\n setUserProfile(data.user)\n }\n })\n .catch(err => console.error('获取用户资料失败:', err))\n }\n }, [session?.user?.id])\n\n const getRoleText = (role: string) => {\n const roleMap: Record = {\n 'OWNER': '所有者',\n 'EDITOR': '编辑者',\n 'VIEWER': '查看者'\n }\n return roleMap[role] || role\n }\n\n const getRoleBadgeColor = (role: string) => {\n const colorMap: Record = {\n 'OWNER': 'bg-purple-100 text-purple-700 border-purple-200',\n 'EDITOR': 'bg-blue-100 text-blue-700 border-blue-200',\n 'VIEWER': 'bg-gray-100 text-gray-700 border-gray-200'\n }\n return colorMap[role] || 'bg-gray-100 text-gray-700'\n }\n\n return (\n
\n \n
\n

系统设置 (Settings)

\n\n
\n {/* 用户信息和密码修改 - 两列布局 */}\n {session && (\n
\n \n \n \n 用户信息\n \n 您的账号信息和角色\n \n \n
\n \n {getUserInitial()}\n \n
\n

{session.user?.name || \"用户\"}

\n

{session.user?.email}

\n

\n 用户 ID: {session.user?.id}\n

\n
\n
\n\n {userProfile && (userProfile.ownedTreesCount > 0 || userProfile.collaborations.length > 0) && (\n
\n

我的家族树

\n
\n {/* 显示拥有的家族树(所有者) */}\n {userProfile.ownedTreesCount > 0 && (\n
\n \n {getRoleText('OWNER')}\n \n {userProfile.ownedTreesCount} 个家族树\n
\n )}\n \n {/* 显示协作的家族树 */}\n {userProfile.collaborations.length > 0 && (\n
\n {userProfile.collaborations.map((collab) => (\n
\n {collab.treeName}\n \n {getRoleText(collab.role)}\n \n
\n ))}\n
\n )}\n
\n
\n )}\n
\n
\n \n \n
\n )}\n \n {/* 通知设置和数据备份 - 两列布局 */}\n
\n \n \n \n \n \n 数据备份 (Backup)\n \n 将家族数据导出为 JSON 文件进行本地保存。\n \n \n {\n const dataStr = JSON.stringify(treeData, null, 2)\n const blob = new Blob([dataStr], { type: \"application/json\" })\n const url = URL.createObjectURL(blob)\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `family_tree_backup_${new Date().toISOString().split(\"T\")[0]}.json`\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }}\n >\n 导出数据 (Export JSON)\n \n \n \n
\n\n {/* 数据恢复和 GEDCOM - 两列布局 */}\n
\n \n \n \n 数据恢复 (Restore)\n \n 从 JSON 备份文件恢复数据。注意:这将覆盖当前的所有数据。\n \n \n \n \n 警告\n 导入操作不可撤销。建议在导入前先导出当前数据备份。\n \n\n
\n {\n const file = e.target.files?.[0]\n if (!file) return\n\n const reader = new FileReader()\n reader.onload = async (event) => {\n try {\n const jsonStr = event.target?.result as string\n const data = JSON.parse(jsonStr)\n await loadData(data)\n setImportStatus(\"导入成功!\")\n if (fileInputRef.current) fileInputRef.current.value = \"\"\n } catch (err) {\n console.error(err)\n setImportStatus(\"错误:无法解析 JSON 文件\")\n }\n }\n reader.readAsText(file)\n }}\n />\n \n {importStatus}\n
\n
\n
\n\n \n \n \n GEDCOM 格式\n \n 导入/导出标准 GEDCOM 格式,兼容其他家谱软件(如 Ancestry、MyHeritage)。\n \n \n
\n {\n const gedcomText = exportToGedcom(treeData)\n const blob = new Blob([gedcomText], { type: \"text/plain;charset=utf-8\" })\n const url = URL.createObjectURL(blob)\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `family_tree_${new Date().toISOString().split(\"T\")[0]}.ged`\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }}\n >\n \n 导出 GEDCOM\n \n \n {\n const file = e.target.files?.[0]\n if (!file) return\n\n const reader = new FileReader()\n reader.onload = async (event) => {\n try {\n const gedcomText = event.target?.result as string\n const importedData = importFromGedcom(gedcomText)\n await loadData(importedData)\n setGedcomStatus(\"GEDCOM 导入成功!\")\n if (gedcomInputRef.current) gedcomInputRef.current.value = \"\"\n } catch (err) {\n console.error(err)\n setGedcomStatus(\"错误:无法解析 GEDCOM 文件\")\n }\n }\n reader.readAsText(file)\n }}\n />\n \n {gedcomStatus && {gedcomStatus}}\n
\n
\n
\n
\n\n {/* 数据库和系统管理 - 两列布局 */}\n
\n \n \n \n 数据库维护\n \n 升级数据库以支持新功能(如操作日志)\n \n \n \n \n 如果操作日志功能不工作,请点击下方按钮升级数据库。升级会保留所有现有数据。\n \n \n {\n if (confirm(\"确定要升级数据库吗?这会保留所有现有数据。\")) {\n try {\n await upgradeDatabase()\n alert(\"数据库升级成功!请刷新页面。\")\n window.location.reload()\n } catch (error) {\n alert(\"数据库升级失败:\" + (error as Error).message)\n }\n }\n }}\n >\n \n 升级数据库\n \n \n \n\n \n \n \n 危险区域 (Danger Zone)\n \n 这些操作不可逆,请谨慎使用。\n \n \n {\n if (confirm(\"确定要重置吗?所有更改将丢失。\")) {\n await resetData()\n alert(\"数据已重置为演示状态。\")\n }\n }}\n >\n 重置所有数据\n \n \n \n
\n\n {/* 操作日志 - 全宽 */}\n \n \n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 357, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/site-header.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\nimport { BookOpen, Search, Bell, Settings, LogOut, User, ChevronDown, Plus, Trash2 } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useState, useRef, useEffect, useCallback } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useSession, signOut } from \"next-auth/react\"\n\ninterface FamilyTree {\n id: string\n name: string\n description: string | null\n ownerId: string\n}\n\nexport function SiteHeader() {\n const { searchMembers, searchResults } = useFamily()\n const { data: session, status } = useSession()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [showResults, setShowResults] = useState(false)\n const [familyTrees, setFamilyTrees] = useState([])\n const [currentTree, setCurrentTree] = useState(null)\n const [deletingTreeId, setDeletingTreeId] = useState(null)\n const searchRef = useRef(null)\n const router = useRouter()\n\n const handleSignOut = async () => {\n await signOut({ callbackUrl: \"/auth/signin\" })\n }\n\n // 获取用户名首字母作为头像\n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 删除家族树\n const handleDeleteTree = async (tree: FamilyTree, e: React.MouseEvent) => {\n e.stopPropagation() // 阻止触发选择事件\n\n // 检查权限\n if (tree.ownerId !== session?.user?.id) {\n alert('只有家族树的创建者才能删除')\n return\n }\n\n const confirmText = `确定要删除家族树\"${tree.name}\"吗?\\n\\n此操作将永久删除所有成员、活动日志和协作者数据,且不可撤销!`\n if (!confirm(confirmText)) {\n return\n }\n\n // 二次确认\n const finalConfirm = prompt(`请输入家族树名称\"${tree.name}\"以确认删除:`)\n if (finalConfirm !== tree.name) {\n alert('名称不匹配,删除已取消')\n return\n }\n\n setDeletingTreeId(tree.id)\n try {\n const response = await fetch(`/api/trees/${tree.id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除失败')\n }\n\n // 刷新家族树列表\n await loadFamilyTrees()\n \n // 如果删除的是当前树,跳转到首页\n if (currentTree?.id === tree.id) {\n window.location.href = '/'\n }\n } catch (error) {\n console.error('删除家族树失败:', error)\n alert('删除失败:' + (error as Error).message)\n } finally {\n setDeletingTreeId(null)\n }\n }\n\n // 获取家族树列表\n const loadFamilyTrees = useCallback(() => {\n if (session?.user?.id) {\n fetch('/api/trees')\n .then(res => res.json())\n .then(data => {\n if (data.trees) {\n setFamilyTrees(data.trees)\n // 如果 URL 中有 treeId,使用该树,否则使用第一个\n const urlParams = new URLSearchParams(window.location.search)\n const treeId = urlParams.get('treeId')\n if (treeId) {\n const tree = data.trees.find((t: FamilyTree) => t.id === treeId)\n if (tree) {\n setCurrentTree(tree)\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n } else if (data.trees.length > 0) {\n setCurrentTree(data.trees[0])\n }\n }\n })\n .catch(err => console.error('获取家族树失败:', err))\n }\n }, [session?.user?.id])\n\n useEffect(() => {\n loadFamilyTrees()\n }, [loadFamilyTrees])\n\n // 监听路由变化,刷新家族树列表\n useEffect(() => {\n const handleRouteChange = () => {\n loadFamilyTrees()\n }\n \n window.addEventListener('focus', handleRouteChange)\n return () => window.removeEventListener('focus', handleRouteChange)\n }, [loadFamilyTrees])\n\n // 点击外部关闭搜索结果\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setShowResults(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n const handleSearch = (query: string) => {\n setSearchQuery(query)\n searchMembers(query)\n setShowResults(query.length > 0)\n }\n\n const handleSelectMember = (memberId: string) => {\n router.push(`/members/${memberId}`)\n setSearchQuery(\"\")\n setShowResults(false)\n }\n\n return (\n
\n
\n
\n \n
\n \n
\n 华夏谱\n \n \n {/* 家族树选择器 */}\n {session && familyTrees.length > 0 && (\n \n \n \n \n \n 我的家族树\n \n {familyTrees.map((tree) => (\n {\n setCurrentTree(tree)\n router.push(`/?treeId=${tree.id}`)\n }}\n className=\"cursor-pointer flex items-center justify-between group\"\n >\n {tree.name}\n
\n {currentTree?.id === tree.id && (\n \n )}\n {tree.ownerId === session?.user?.id && (\n handleDeleteTree(tree, e)}\n disabled={deletingTreeId === tree.id}\n >\n \n \n )}\n
\n \n ))}\n \n router.push('/trees/new')}\n className=\"cursor-pointer text-primary\"\n >\n \n 创建新家族树\n \n
\n
\n )}\n
\n\n \n\n
\n \n\n \n\n \n \n \n\n {status === \"loading\" ? (\n \n ...\n \n ) : session ? (\n \n \n \n \n \n \n
\n

{session.user?.name || \"用户\"}

\n

\n {session.user?.email}\n

\n
\n
\n \n \n \n \n 个人设置\n \n \n \n \n \n 退出登录\n \n
\n
\n ) : (\n \n \n \n )}\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1131, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/gedcom.ts"],"sourcesContent":["import type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { parseGedcom } from \"read-gedcom\"\n\n/**\n * 将 FamilyTreeData 导出为 GEDCOM 格式\n */\nexport function exportToGedcom(treeData: FamilyTreeData): string {\n const lines: string[] = []\n \n // GEDCOM Header\n lines.push(\"0 HEAD\")\n lines.push(\"1 SOUR Chinese Family Tree\")\n lines.push(\"2 VERS 1.0\")\n lines.push(\"2 NAME 华夏谱\")\n lines.push(\"1 DEST ANY\")\n lines.push(\"1 DATE \" + new Date().toISOString().split('T')[0].replace(/-/g, ' '))\n lines.push(\"1 CHAR UTF-8\")\n lines.push(\"1 GEDC\")\n lines.push(\"2 VERS 5.5.1\")\n lines.push(\"2 FORM LINEAGE-LINKED\")\n \n const members = Object.values(treeData.members)\n \n // 个人记录 (INDI)\n members.forEach(member => {\n lines.push(`0 @I${member.id}@ INDI`)\n lines.push(`1 NAME ${member.fullName}`)\n lines.push(`2 GIVN ${member.givenName}`)\n lines.push(`2 SURN ${member.surname}`)\n \n if (member.courtesyName) {\n lines.push(`2 _AKA ${member.courtesyName}`)\n }\n \n if (member.gender === 'male') {\n lines.push(\"1 SEX M\")\n } else if (member.gender === 'female') {\n lines.push(\"1 SEX F\")\n }\n \n // 出生信息\n if (member.birthDate) {\n lines.push(\"1 BIRT\")\n lines.push(`2 DATE ${formatGedcomDate(member.birthDate)}`)\n if (member.birthPlace) {\n lines.push(`2 PLAC ${member.birthPlace}`)\n }\n }\n \n // 逝世信息\n if (member.deathDate) {\n lines.push(\"1 DEAT\")\n lines.push(`2 DATE ${formatGedcomDate(member.deathDate)}`)\n if (member.burialPlace) {\n lines.push(`2 PLAC ${member.burialPlace}`)\n }\n }\n \n // 籍贯\n if (member.ancestralHome) {\n lines.push(\"1 RESI\")\n lines.push(`2 PLAC ${member.ancestralHome}`)\n }\n \n // 备注\n if (member.bio) {\n lines.push(\"1 NOTE \" + member.bio.replace(/\\n/g, \"\\n1 CONT \"))\n }\n \n // 家庭关系 - 作为子女\n if (member.fatherId || member.motherId) {\n const famId = `F${member.fatherId || member.motherId}_${member.id}`\n lines.push(`1 FAMC @${famId}@`)\n }\n \n // 家庭关系 - 作为配偶\n if (member.spouseIds.length > 0) {\n member.spouseIds.forEach(spouseId => {\n const famId = `F${member.id}_${spouseId}`\n lines.push(`1 FAMS @${famId}@`)\n })\n }\n })\n \n // 家庭记录 (FAM)\n const processedFamilies = new Set()\n \n members.forEach(member => {\n // 创建父母家庭\n if (member.fatherId || member.motherId) {\n const famId = `F${member.fatherId || member.motherId}_${member.id}`\n if (!processedFamilies.has(famId)) {\n lines.push(`0 @${famId}@ FAM`)\n if (member.fatherId) {\n lines.push(`1 HUSB @I${member.fatherId}@`)\n }\n if (member.motherId) {\n lines.push(`1 WIFE @I${member.motherId}@`)\n }\n \n // 查找所有同父母的子女\n const siblings = members.filter(m => \n m.fatherId === member.fatherId && m.motherId === member.motherId\n )\n siblings.forEach(child => {\n lines.push(`1 CHIL @I${child.id}@`)\n })\n \n processedFamilies.add(famId)\n }\n }\n \n // 创建配偶家庭\n if (member.spouseIds.length > 0) {\n member.spouseIds.forEach(spouseId => {\n const famId = member.gender === 'male' \n ? `F${member.id}_${spouseId}`\n : `F${spouseId}_${member.id}`\n \n if (!processedFamilies.has(famId)) {\n lines.push(`0 @${famId}@ FAM`)\n \n if (member.gender === 'male') {\n lines.push(`1 HUSB @I${member.id}@`)\n lines.push(`1 WIFE @I${spouseId}@`)\n } else {\n lines.push(`1 HUSB @I${spouseId}@`)\n lines.push(`1 WIFE @I${member.id}@`)\n }\n \n // 添加子女\n member.childrenIds.forEach(childId => {\n lines.push(`1 CHIL @I${childId}@`)\n })\n \n processedFamilies.add(famId)\n }\n })\n }\n })\n \n // GEDCOM Trailer\n lines.push(\"0 TRLR\")\n \n return lines.join(\"\\n\")\n}\n\n/**\n * 从 GEDCOM 格式导入数据\n */\nexport function importFromGedcom(gedcomText: string): FamilyTreeData {\n const parsed = parseGedcom(gedcomText as any)\n const members: Record = {}\n let rootId: string | undefined\n \n // 第一遍:创建所有个人\n const records = Array.isArray(parsed) ? parsed : (parsed as any).tree || []\n records.forEach((record: any) => {\n if (record.tag === 'INDI') {\n const id = record.pointer.replace('@I', '').replace('@', '')\n \n let fullName = ''\n let givenName = ''\n let surname = ''\n let courtesyName: string | undefined\n let gender: 'male' | 'female' | 'other' = 'other'\n let birthDate: string | undefined\n let deathDate: string | undefined\n let birthPlace: string | undefined\n let burialPlace: string | undefined\n let ancestralHome: string | undefined\n let bio: string | undefined\n \n record.tree.forEach((field: any) => {\n if (field.tag === 'NAME') {\n fullName = field.data.replace(/\\//g, '').trim()\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'GIVN') givenName = subField.data\n if (subField.tag === 'SURN') surname = subField.data\n if (subField.tag === '_AKA') courtesyName = subField.data\n })\n }\n if (field.tag === 'SEX') {\n gender = field.data === 'M' ? 'male' : field.data === 'F' ? 'female' : 'other'\n }\n if (field.tag === 'BIRT') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'DATE') birthDate = parseGedcomDate(subField.data)\n if (subField.tag === 'PLAC') birthPlace = subField.data\n })\n }\n if (field.tag === 'DEAT') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'DATE') deathDate = parseGedcomDate(subField.data)\n if (subField.tag === 'PLAC') burialPlace = subField.data\n })\n }\n if (field.tag === 'RESI') {\n field.tree?.forEach((subField: any) => {\n if (subField.tag === 'PLAC') ancestralHome = subField.data\n })\n }\n if (field.tag === 'NOTE') {\n bio = field.data\n }\n })\n \n members[id] = {\n id,\n surname: surname || '未知',\n givenName: givenName || fullName,\n fullName: fullName || `${surname}${givenName}`,\n gender,\n generation: 1, // 将在第二遍中计算\n courtesyName,\n birthDate,\n deathDate,\n birthPlace,\n burialPlace,\n ancestralHome,\n bio,\n spouseIds: [],\n childrenIds: [],\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n })\n \n // 第二遍:建立关系\n records.forEach((record: any) => {\n if (record.tag === 'FAM') {\n let husbId: string | undefined\n let wifeId: string | undefined\n const childIds: string[] = []\n \n record.tree.forEach((field: any) => {\n if (field.tag === 'HUSB') {\n husbId = field.data.replace('@I', '').replace('@', '')\n }\n if (field.tag === 'WIFE') {\n wifeId = field.data.replace('@I', '').replace('@', '')\n }\n if (field.tag === 'CHIL') {\n childIds.push(field.data.replace('@I', '').replace('@', ''))\n }\n })\n \n // 设置配偶关系\n if (husbId && wifeId) {\n if (members[husbId] && !members[husbId].spouseIds.includes(wifeId)) {\n members[husbId].spouseIds.push(wifeId)\n }\n if (members[wifeId] && !members[wifeId].spouseIds.includes(husbId)) {\n members[wifeId].spouseIds.push(husbId)\n }\n }\n \n // 设置父母-子女关系\n childIds.forEach(childId => {\n if (members[childId]) {\n if (husbId) {\n members[childId].fatherId = husbId\n if (members[husbId] && !members[husbId].childrenIds.includes(childId)) {\n members[husbId].childrenIds.push(childId)\n }\n }\n if (wifeId) {\n members[childId].motherId = wifeId\n if (members[wifeId] && !members[wifeId].childrenIds.includes(childId)) {\n members[wifeId].childrenIds.push(childId)\n }\n }\n }\n })\n }\n })\n \n // 计算世代并找到根节点\n const calculateGeneration = (id: string, visited = new Set()): number => {\n if (visited.has(id)) return 1 // 防止循环引用\n visited.add(id)\n \n const member = members[id]\n if (!member) return 1\n \n if (!member.fatherId && !member.motherId) {\n return 1 // 根节点\n }\n \n const fatherGen = member.fatherId ? calculateGeneration(member.fatherId, visited) : 0\n const motherGen = member.motherId ? calculateGeneration(member.motherId, visited) : 0\n \n return Math.max(fatherGen, motherGen) + 1\n }\n \n Object.keys(members).forEach(id => {\n members[id].generation = calculateGeneration(id)\n })\n \n // 找到第一代作为根节点\n rootId = Object.keys(members).find(id => members[id].generation === 1)\n \n return {\n members,\n rootId,\n }\n}\n\n// 辅助函数:格式化日期为 GEDCOM 格式\nfunction formatGedcomDate(isoDate: string): string {\n const date = new Date(isoDate)\n const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']\n return `${date.getDate()} ${months[date.getMonth()]} ${date.getFullYear()}`\n}\n\n// 辅助函数:解析 GEDCOM 日期为 ISO 格式\nfunction parseGedcomDate(gedcomDate: string): string {\n const months: Record = {\n JAN: 0, FEB: 1, MAR: 2, APR: 3, MAY: 4, JUN: 5,\n JUL: 6, AUG: 7, SEP: 8, OCT: 9, NOV: 10, DEC: 11\n }\n \n const parts = gedcomDate.trim().split(' ')\n if (parts.length === 3) {\n const day = parseInt(parts[0])\n const month = months[parts[1].toUpperCase()]\n const year = parseInt(parts[2])\n \n if (!isNaN(day) && month !== undefined && !isNaN(year)) {\n return new Date(year, month, day).toISOString().split('T')[0]\n }\n }\n \n // 如果只有年份\n if (parts.length === 1 && !isNaN(parseInt(parts[0]))) {\n return `${parts[0]}-01-01`\n }\n \n return new Date().toISOString().split('T')[0]\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1451, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/switch.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\n\nimport { cn } from '@/lib/utils'\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { Switch }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,OAAO,EACd,SAAS,EACT,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6WACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sbAAqB;YACpB,aAAU;YACV,WACE;;;;;;;;;;;AAKV"}}, + {"offset": {"line": 1486, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport { Label }\n"],"names":[],"mappings":";;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,MAAM,EACb,SAAS,EACT,GAAG,OAC8C;IACjD,qBACE,oaAAC,obAAmB;QAClB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,uNACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 1513, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/notifications.ts"],"sourcesContent":["import type { FamilyMember } from \"@/types/family\"\n\n/**\n * 请求浏览器通知权限\n */\nexport async function requestNotificationPermission(): Promise {\n if (typeof window === \"undefined\" || !(\"Notification\" in window)) {\n console.warn(\"浏览器不支持通知\")\n return false\n }\n\n if (Notification.permission === \"granted\") {\n return true\n }\n\n if (Notification.permission !== \"denied\") {\n const permission = await Notification.requestPermission()\n return permission === \"granted\"\n }\n\n return false\n}\n\n/**\n * 发送浏览器通知\n */\nexport function sendNotification(title: string, options?: NotificationOptions) {\n if (typeof window === \"undefined\" || !(\"Notification\" in window)) {\n return\n }\n \n if (Notification.permission === \"granted\") {\n new Notification(title, {\n icon: \"/icon.svg\",\n badge: \"/icon.svg\",\n ...options,\n })\n }\n}\n\n/**\n * 检查今天是否有纪念日\n */\nexport function checkTodayAnniversaries(members: FamilyMember[]): {\n birthdays: FamilyMember[]\n deathdays: FamilyMember[]\n} {\n const today = new Date()\n const currentMonth = today.getMonth() + 1\n const currentDay = today.getDate()\n\n const birthdays: FamilyMember[] = []\n const deathdays: FamilyMember[] = []\n\n members.forEach((member) => {\n // 检查生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n if (birthDate.getMonth() + 1 === currentMonth && birthDate.getDate() === currentDay) {\n birthdays.push(member)\n }\n }\n\n // 检查忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n if (deathDate.getMonth() + 1 === currentMonth && deathDate.getDate() === currentDay) {\n deathdays.push(member)\n }\n }\n })\n\n return { birthdays, deathdays }\n}\n\n/**\n * 检查即将到来的纪念日(未来7天)\n */\nexport function checkUpcomingAnniversaries(members: FamilyMember[], days: number = 7): {\n birthdays: Array<{ member: FamilyMember; daysUntil: number }>\n deathdays: Array<{ member: FamilyMember; daysUntil: number }>\n} {\n const today = new Date()\n const birthdays: Array<{ member: FamilyMember; daysUntil: number }> = []\n const deathdays: Array<{ member: FamilyMember; daysUntil: number }> = []\n\n members.forEach((member) => {\n // 检查生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirthday = new Date(today.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n \n if (thisYearBirthday < today) {\n thisYearBirthday.setFullYear(today.getFullYear() + 1)\n }\n\n const daysUntil = Math.ceil((thisYearBirthday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24))\n \n if (daysUntil > 0 && daysUntil <= days) {\n birthdays.push({ member, daysUntil })\n }\n }\n\n // 检查忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeathday = new Date(today.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n \n if (thisYearDeathday < today) {\n thisYearDeathday.setFullYear(today.getFullYear() + 1)\n }\n\n const daysUntil = Math.ceil((thisYearDeathday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24))\n \n if (daysUntil > 0 && daysUntil <= days) {\n deathdays.push({ member, daysUntil })\n }\n }\n })\n\n return { birthdays, deathdays }\n}\n\n/**\n * 发送今日纪念日通知\n */\nexport function notifyTodayAnniversaries(members: FamilyMember[]) {\n const { birthdays, deathdays } = checkTodayAnniversaries(members)\n\n if (birthdays.length > 0) {\n const names = birthdays.map(m => m.fullName).join(\"、\")\n sendNotification(\"🎂 今日生日提醒\", {\n body: `今天是 ${names} 的生日!`,\n tag: \"birthday-today\",\n })\n }\n\n if (deathdays.length > 0) {\n const names = deathdays.map(m => m.fullName).join(\"、\")\n sendNotification(\"🕯️ 今日忌日提醒\", {\n body: `今天是 ${names} 的忌日,缅怀先人。`,\n tag: \"deathday-today\",\n })\n }\n}\n\n/**\n * 设置每日通知检查\n */\nexport function setupDailyNotificationCheck(members: FamilyMember[]) {\n if (typeof window === \"undefined\") {\n return\n }\n \n // 检查是否已经在今天检查过\n const lastCheckDate = localStorage.getItem(\"lastNotificationCheck\")\n const today = new Date().toDateString()\n\n if (lastCheckDate !== today) {\n notifyTodayAnniversaries(members)\n localStorage.setItem(\"lastNotificationCheck\", today)\n }\n\n // 设置每小时检查一次(防止用户长时间开着页面)\n setInterval(() => {\n const currentDate = new Date().toDateString()\n const lastCheck = localStorage.getItem(\"lastNotificationCheck\")\n \n if (lastCheck !== currentDate) {\n notifyTodayAnniversaries(members)\n localStorage.setItem(\"lastNotificationCheck\", currentDate)\n }\n }, 60 * 60 * 1000) // 每小时检查一次\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1641, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/notification-settings.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Switch } from \"@/components/ui/switch\"\nimport { Label } from \"@/components/ui/label\"\nimport { Bell, BellOff, Check, X } from \"lucide-react\"\nimport { requestNotificationPermission, checkUpcomingAnniversaries } from \"@/lib/notifications\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function NotificationSettings() {\n const { treeData } = useFamily()\n const [notificationEnabled, setNotificationEnabled] = useState(false)\n const [permission, setPermission] = useState(\"default\")\n const [isClient, setIsClient] = useState(false)\n const [upcomingEvents, setUpcomingEvents] = useState<{\n birthdays: Array<{ member: any; daysUntil: number }>\n deathdays: Array<{ member: any; daysUntil: number }>\n }>({ birthdays: [], deathdays: [] })\n\n useEffect(() => {\n // 标记为客户端\n setIsClient(true)\n \n // 检查通知权限\n if (typeof window !== \"undefined\" && \"Notification\" in window) {\n setPermission(Notification.permission)\n setNotificationEnabled(Notification.permission === \"granted\")\n }\n\n // 检查即将到来的纪念日\n const members = Object.values(treeData.members)\n const upcoming = checkUpcomingAnniversaries(members, 7)\n setUpcomingEvents(upcoming)\n }, [treeData])\n\n const handleEnableNotifications = async () => {\n const granted = await requestNotificationPermission()\n if (granted) {\n setNotificationEnabled(true)\n setPermission(\"granted\")\n \n // 发送测试通知\n new Notification(\"通知已启用\", {\n body: \"您将收到家族纪念日提醒\",\n icon: \"/icon.svg\",\n })\n } else {\n setPermission(Notification.permission)\n }\n }\n\n const handleDisableNotifications = () => {\n setNotificationEnabled(false)\n alert(\"请在浏览器设置中禁用此网站的通知权限\")\n }\n\n return (\n
\n \n \n \n \n 纪念日通知\n \n \n 接收家族成员生日和忌日的浏览器通知\n \n \n \n {!isClient ? (\n
\n 加载中...\n
\n ) : !(typeof window !== \"undefined\" && \"Notification\" in window) ? (\n \n \n 您的浏览器不支持通知功能\n \n \n ) : (\n <>\n
\n
\n \n

\n 每天自动检查并提醒当日纪念日\n

\n
\n {\n if (checked) {\n handleEnableNotifications()\n } else {\n handleDisableNotifications()\n }\n }}\n />\n
\n\n {permission === \"denied\" && (\n \n \n \n 通知权限已被拒绝。请在浏览器设置中允许此网站发送通知。\n \n \n )}\n\n {permission === \"granted\" && (\n \n \n \n 通知已启用。您将在每天首次访问时收到当日纪念日提醒。\n \n \n )}\n\n {notificationEnabled && (\n {\n new Notification(\"测试通知\", {\n body: \"这是一条测试通知\",\n icon: \"/icon.svg\",\n })\n }}\n >\n 发送测试通知\n \n )}\n \n )}\n
\n
\n\n {/* 即将到来的纪念日 */}\n {(upcomingEvents.birthdays.length > 0 || upcomingEvents.deathdays.length > 0) && (\n \n \n 即将到来的纪念日(7天内)\n 提前准备,不错过重要日子\n \n \n
\n {upcomingEvents.birthdays.length > 0 && (\n
\n

\n 🎂 生日\n

\n
\n {upcomingEvents.birthdays.map(({ member, daysUntil }) => (\n \n
\n

{member.fullName}

\n

\n {new Date(member.birthDate).toLocaleDateString('zh-CN', {\n month: 'long',\n day: 'numeric'\n })}\n

\n
\n
\n

\n {daysUntil === 1 ? '明天' : `${daysUntil}天后`}\n

\n
\n
\n ))}\n
\n
\n )}\n\n {upcomingEvents.deathdays.length > 0 && (\n
\n

\n 🕯️ 忌日\n

\n
\n {upcomingEvents.deathdays.map(({ member, daysUntil }) => (\n \n
\n

{member.fullName}

\n

\n {new Date(member.deathDate!).toLocaleDateString('zh-CN', {\n month: 'long',\n day: 'numeric'\n })}\n

\n
\n
\n

\n {daysUntil === 1 ? '明天' : `${daysUntil}天后`}\n

\n
\n
\n ))}\n
\n
\n )}\n
\n
\n
\n )}\n
\n )\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1980, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/scroll-area.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"names":[],"mappings":";;;;;;;AAGA;AAEA;AALA;;;;AAOA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OACmD;IACtD,qBACE,oaAAC,6bAAwB;QACvB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,YAAY;QACzB,GAAG,KAAK;;0BAET,oaAAC,icAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAET;;;;;;0BAEH,oaAAC;;;;;0BACD,oaAAC,+bAA0B;;;;;;;;;;;AAGjC;AAEA,SAAS,UAAU,EACjB,SAAS,EACT,cAAc,UAAU,EACxB,GAAG,OACkE;IACrE,qBACE,oaAAC,4cAAuC;QACtC,aAAU;QACV,aAAa;QACb,WAAW,IAAA,yKAAE,EACX,sDACA,gBAAgB,cACd,8CACF,gBAAgB,gBACd,gDACF;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,wcAAmC;YAClC,aAAU;YACV,WAAU;;;;;;;;;;;AAIlB"}}, + {"offset": {"line": 2050, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> &\n VariantProps & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span'\n\n return (\n \n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,kZACA;IACE,UAAU;QACR,SAAS;YACP,SACE;YACF,WACE;YACF,aACE;YACF,SACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,UAAU,KAAK,EACf,GAAG,OAEuD;IAC1D,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 2096, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db.ts"],"sourcesContent":["import Dexie, { type Table } from \"dexie\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport interface GlobalSettings {\n key: string\n value: any\n}\n\nexport interface StoredImage {\n id: string\n blob: Blob\n mimeType: string\n createdAt: string\n}\n\nexport interface ActivityLog {\n id: string\n action: \"create\" | \"update\" | \"delete\" | \"import\" | \"export\"\n entityType: \"member\" | \"photo\" | \"story\" | \"settings\"\n entityId?: string\n entityName?: string\n changes?: any\n timestamp: string\n userId?: string\n userName?: string\n}\n\nexport class FamilyTreeDB extends Dexie {\n members!: Table\n settings!: Table\n images!: Table\n activityLogs!: Table\n\n constructor() {\n super(\"FamilyTreeDB\")\n this.version(1).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n })\n this.version(2).stores({\n members: \"id, fullName, fatherId, motherId, [fatherId+motherId]\", // Index for searching\n settings: \"key\", // Key-value store for rootId etc.\n images: \"id\", // Store images by ID\n activityLogs: \"id, timestamp, action, entityType, entityId\",\n })\n }\n}\n\nexport const db = new FamilyTreeDB()\n"],"names":[],"mappings":";;;;;;AAAA;;AA2BO,MAAM,qBAAqB,+PAAK;IACrC,QAA6B;IAC7B,SAAgC;IAChC,OAA2B;IAC3B,aAAiC;IAEjC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;QACV;QACA,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACrB,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc;QAChB;IACF;AACF;AAEO,MAAM,KAAK,IAAI"}}, + {"offset": {"line": 2135, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/activity-logger.ts"],"sourcesContent":["import { db, type ActivityLog } from \"./db\"\nimport { v4 as uuidv4 } from \"uuid\"\n\n/**\n * 记录活动日志\n */\nexport async function logActivity(\n action: ActivityLog[\"action\"],\n entityType: ActivityLog[\"entityType\"],\n entityId?: string,\n entityName?: string,\n changes?: any\n): Promise {\n try {\n const log: ActivityLog = {\n id: uuidv4(),\n action,\n entityType,\n entityId,\n entityName,\n changes,\n timestamp: new Date().toISOString(),\n userId: \"local-user\", // 本地版本暂时使用固定用户ID\n userName: \"本地用户\",\n }\n\n await db.activityLogs.add(log)\n } catch (error) {\n console.error(\"记录活动日志失败:\", error)\n }\n}\n\n/**\n * 获取活动日志列表\n */\nexport async function getActivityLogs(limit: number = 50): Promise {\n try {\n return await db.activityLogs\n .orderBy(\"timestamp\")\n .reverse()\n .limit(limit)\n .toArray()\n } catch (error) {\n console.error(\"获取活动日志失败:\", error)\n return []\n }\n}\n\n/**\n * 获取特定成员的活动日志\n */\nexport async function getMemberActivityLogs(memberId: string): Promise {\n try {\n return await db.activityLogs\n .where(\"entityId\")\n .equals(memberId)\n .reverse()\n .sortBy(\"timestamp\")\n } catch (error) {\n console.error(\"获取成员活动日志失败:\", error)\n return []\n }\n}\n\n/**\n * 清除旧日志(保留最近N天)\n */\nexport async function cleanOldLogs(daysToKeep: number = 90): Promise {\n try {\n const cutoffDate = new Date()\n cutoffDate.setDate(cutoffDate.getDate() - daysToKeep)\n const cutoffTimestamp = cutoffDate.toISOString()\n\n const oldLogs = await db.activityLogs\n .where(\"timestamp\")\n .below(cutoffTimestamp)\n .toArray()\n\n await db.activityLogs\n .where(\"timestamp\")\n .below(cutoffTimestamp)\n .delete()\n\n return oldLogs.length\n } catch (error) {\n console.error(\"清除旧日志失败:\", error)\n return 0\n }\n}\n\n/**\n * 获取活动统计\n */\nexport async function getActivityStats(): Promise<{\n total: number\n byAction: Record\n byEntityType: Record\n recentCount: number\n}> {\n try {\n const allLogs = await db.activityLogs.toArray()\n const oneDayAgo = new Date()\n oneDayAgo.setDate(oneDayAgo.getDate() - 1)\n\n const byAction: Record = {}\n const byEntityType: Record = {}\n let recentCount = 0\n\n allLogs.forEach((log) => {\n byAction[log.action] = (byAction[log.action] || 0) + 1\n byEntityType[log.entityType] = (byEntityType[log.entityType] || 0) + 1\n\n if (new Date(log.timestamp) > oneDayAgo) {\n recentCount++\n }\n })\n\n return {\n total: allLogs.length,\n byAction,\n byEntityType,\n recentCount,\n }\n } catch (error) {\n console.error(\"获取活动统计失败:\", error)\n return {\n total: 0,\n byAction: {},\n byEntityType: {},\n recentCount: 0,\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;;;AAKO,eAAe,YACpB,MAA6B,EAC7B,UAAqC,EACrC,QAAiB,EACjB,UAAmB,EACnB,OAAa;IAEb,IAAI;QACF,MAAM,MAAmB;YACvB,IAAI,IAAA,0RAAM;YACV;YACA;YACA;YACA;YACA;YACA,WAAW,IAAI,OAAO,WAAW;YACjC,QAAQ;YACR,UAAU;QACZ;QAEA,MAAM,sKAAE,CAAC,YAAY,CAAC,GAAG,CAAC;IAC5B,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;IAC7B;AACF;AAKO,eAAe,gBAAgB,QAAgB,EAAE;IACtD,IAAI;QACF,OAAO,MAAM,sKAAE,CAAC,YAAY,CACzB,OAAO,CAAC,aACR,OAAO,GACP,KAAK,CAAC,OACN,OAAO;IACZ,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;QAC3B,OAAO,EAAE;IACX;AACF;AAKO,eAAe,sBAAsB,QAAgB;IAC1D,IAAI;QACF,OAAO,MAAM,sKAAE,CAAC,YAAY,CACzB,KAAK,CAAC,YACN,MAAM,CAAC,UACP,OAAO,GACP,MAAM,CAAC;IACZ,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,eAAe;QAC7B,OAAO,EAAE;IACX;AACF;AAKO,eAAe,aAAa,aAAqB,EAAE;IACxD,IAAI;QACF,MAAM,aAAa,IAAI;QACvB,WAAW,OAAO,CAAC,WAAW,OAAO,KAAK;QAC1C,MAAM,kBAAkB,WAAW,WAAW;QAE9C,MAAM,UAAU,MAAM,sKAAE,CAAC,YAAY,CAClC,KAAK,CAAC,aACN,KAAK,CAAC,iBACN,OAAO;QAEV,MAAM,sKAAE,CAAC,YAAY,CAClB,KAAK,CAAC,aACN,KAAK,CAAC,iBACN,MAAM;QAET,OAAO,QAAQ,MAAM;IACvB,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,OAAO;IACT;AACF;AAKO,eAAe;IAMpB,IAAI;QACF,MAAM,UAAU,MAAM,sKAAE,CAAC,YAAY,CAAC,OAAO;QAC7C,MAAM,YAAY,IAAI;QACtB,UAAU,OAAO,CAAC,UAAU,OAAO,KAAK;QAExC,MAAM,WAAmC,CAAC;QAC1C,MAAM,eAAuC,CAAC;QAC9C,IAAI,cAAc;QAElB,QAAQ,OAAO,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI;YACrD,YAAY,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI;YAErE,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,WAAW;gBACvC;YACF;QACF;QAEA,OAAO;YACL,OAAO,QAAQ,MAAM;YACrB;YACA;YACA;QACF;IACF,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,aAAa;QAC3B,OAAO;YACL,OAAO;YACP,UAAU,CAAC;YACX,cAAc,CAAC;YACf,aAAa;QACf;IACF;AACF"}}, + {"offset": {"line": 2233, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/activity-log-viewer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Button } from \"@/components/ui/button\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { History, Trash2, RefreshCw, User, FileText, Image, Settings } from \"lucide-react\"\nimport { getActivityLogs, cleanOldLogs, getActivityStats } from \"@/lib/activity-logger\"\nimport type { ActivityLog } from \"@/lib/db\"\nimport { format } from \"date-fns\"\n\nconst actionLabels = {\n create: \"创建\",\n update: \"更新\",\n delete: \"删除\",\n import: \"导入\",\n export: \"导出\",\n}\n\nconst actionColors = {\n create: \"bg-green-500\",\n update: \"bg-blue-500\",\n delete: \"bg-red-500\",\n import: \"bg-purple-500\",\n export: \"bg-orange-500\",\n}\n\nconst entityTypeLabels = {\n member: \"成员\",\n photo: \"照片\",\n story: \"故事\",\n settings: \"设置\",\n}\n\nconst entityTypeIcons = {\n member: User,\n photo: Image,\n story: FileText,\n settings: Settings,\n}\n\nexport function ActivityLogViewer() {\n const [logs, setLogs] = useState([])\n const [stats, setStats] = useState(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(null)\n\n const loadLogs = async () => {\n setLoading(true)\n setError(null)\n try {\n const [activityLogs, activityStats] = await Promise.all([\n getActivityLogs(100),\n getActivityStats()\n ])\n setLogs(activityLogs)\n setStats(activityStats)\n } catch (err) {\n console.error(\"加载日志失败:\", err)\n setError(err instanceof Error ? err.message : \"加载失败\")\n } finally {\n setLoading(false)\n }\n }\n\n useEffect(() => {\n loadLogs()\n }, [])\n\n const handleCleanOldLogs = async () => {\n if (confirm(\"确定要清除90天前的日志吗?\")) {\n const count = await cleanOldLogs(90)\n alert(`已清除 ${count} 条旧日志`)\n loadLogs()\n }\n }\n\n return (\n
\n \n \n \n \n 操作日志\n \n \n 查看所有修谱操作记录\n \n \n \n {stats && (\n
\n
\n

总记录数

\n

{stats.total}

\n
\n
\n

24小时内

\n

{stats.recentCount}

\n
\n
\n

创建操作

\n

{stats.byAction.create || 0}

\n
\n
\n

更新操作

\n

{stats.byAction.update || 0}

\n
\n
\n )}\n\n
\n \n \n 刷新\n \n \n \n 清除旧日志\n \n
\n\n \n {error ? (\n
\n 加载失败: {error}\n
\n ) : loading ? (\n
\n 加载中...\n
\n ) : logs.length === 0 ? (\n
\n 暂无操作记录\n
\n ) : (\n
\n {logs.map((log) => {\n const EntityIcon = entityTypeIcons[log.entityType]\n return (\n \n
\n \n
\n
\n
\n \n {actionLabels[log.action]}\n \n \n {entityTypeLabels[log.entityType]}\n \n {log.entityName && (\n \n {log.entityName}\n \n )}\n
\n
\n

\n {log.userName || \"系统\"}\n

\n

\n {format(new Date(log.timestamp), \"yyyy-MM-dd HH:mm:ss\")}\n

\n
\n {log.changes && Object.keys(log.changes).length > 0 && (\n
\n \n 查看变更详情\n \n
\n                              {JSON.stringify(log.changes, null, 2)}\n                            
\n
\n )}\n
\n
\n )\n })}\n
\n )}\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAVA;;;;;;;;;;AAYA,MAAM,eAAe;IACnB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;AAEA,MAAM,eAAe;IACnB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;AAEA,MAAM,mBAAmB;IACvB,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;AACZ;AAEA,MAAM,kBAAkB;IACtB,QAAQ,qVAAI;IACZ,OAAO,wVAAK;IACZ,OAAO,qWAAQ;IACf,UAAU,iWAAQ;AACpB;AAEO,SAAS;IACd,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAA,uYAAQ,EAAgB,EAAE;IAClD,MAAM,CAAC,OAAO,SAAS,GAAG,IAAA,uYAAQ,EAAM;IACxC,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAC;IACvC,MAAM,CAAC,OAAO,SAAS,GAAG,IAAA,uYAAQ,EAAgB;IAElD,MAAM,WAAW;QACf,WAAW;QACX,SAAS;QACT,IAAI;YACF,MAAM,CAAC,cAAc,cAAc,GAAG,MAAM,QAAQ,GAAG,CAAC;gBACtD,IAAA,mMAAe,EAAC;gBAChB,IAAA,oMAAgB;aACjB;YACD,QAAQ;YACR,SAAS;QACX,EAAE,OAAO,KAAK;YACZ,QAAQ,KAAK,CAAC,WAAW;YACzB,SAAS,eAAe,QAAQ,IAAI,OAAO,GAAG;QAChD,SAAU;YACR,WAAW;QACb;IACF;IAEA,IAAA,wYAAS,EAAC;QACR;IACF,GAAG,EAAE;IAEL,MAAM,qBAAqB;QACzB,IAAI,QAAQ,mBAAmB;YAC7B,MAAM,QAAQ,MAAM,IAAA,gMAAY,EAAC;YACjC,MAAM,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC;YACzB;QACF;IACF;IAEA,qBACE,oaAAC;QAAI,WAAU;kBACb,cAAA,oaAAC,wLAAI;;8BACH,oaAAC,8LAAU;;sCACT,oaAAC,6LAAS;4BAAC,WAAU;;8CACnB,oaAAC,8VAAO;oCAAC,WAAU;;;;;;gCAAY;;;;;;;sCAGjC,oaAAC,mMAAe;sCAAC;;;;;;;;;;;;8BAInB,oaAAC,+LAAW;;wBACT,uBACC,oaAAC;4BAAI,WAAU;;8CACb,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAE,WAAU;sDAAgC;;;;;;sDAC7C,oaAAC;4CAAE,WAAU;sDAAsB,MAAM,KAAK;;;;;;;;;;;;8CAEhD,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAE,WAAU;sDAAgC;;;;;;sDAC7C,oaAAC;4CAAE,WAAU;sDAAsB,MAAM,WAAW;;;;;;;;;;;;8CAEtD,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAE,WAAU;sDAAgC;;;;;;sDAC7C,oaAAC;4CAAE,WAAU;sDAAsB,MAAM,QAAQ,CAAC,MAAM,IAAI;;;;;;;;;;;;8CAE9D,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAE,WAAU;sDAAgC;;;;;;sDAC7C,oaAAC;4CAAE,WAAU;sDAAsB,MAAM,QAAQ,CAAC,MAAM,IAAI;;;;;;;;;;;;;;;;;;sCAKlE,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,4LAAM;oCACL,SAAQ;oCACR,MAAK;oCACL,SAAS;;sDAET,oaAAC,wWAAS;4CAAC,WAAU;;;;;;wCAAiB;;;;;;;8CAGxC,oaAAC,4LAAM;oCACL,SAAQ;oCACR,MAAK;oCACL,SAAS;;sDAET,oaAAC,+VAAM;4CAAC,WAAU;;;;;;wCAAiB;;;;;;;;;;;;;sCAKvC,oaAAC,wMAAU;4BAAC,WAAU;sCACnB,sBACC,oaAAC;gCAAI,WAAU;;oCAAoC;oCAC1C;;;;;;uCAEP,wBACF,oaAAC;gCAAI,WAAU;0CAAyC;;;;;uCAGtD,KAAK,MAAM,KAAK,kBAClB,oaAAC;gCAAI,WAAU;0CAAyC;;;;;qDAIxD,oaAAC;gCAAI,WAAU;0CACZ,KAAK,GAAG,CAAC,CAAC;oCACT,MAAM,aAAa,eAAe,CAAC,IAAI,UAAU,CAAC;oCAClD,qBACE,oaAAC;wCAEC,WAAU;;0DAEV,oaAAC;gDAAI,WAAW,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC,cAAc,CAAC;0DAC1E,cAAA,oaAAC;oDAAW,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,UAAU;;;;;;;;;;;0DAEtF,oaAAC;gDAAI,WAAU;;kEACb,oaAAC;wDAAI,WAAU;;0EACb,oaAAC,0LAAK;gEAAC,SAAQ;gEAAU,WAAU;0EAChC,YAAY,CAAC,IAAI,MAAM,CAAC;;;;;;0EAE3B,oaAAC,0LAAK;gEAAC,SAAQ;gEAAY,WAAU;0EAClC,gBAAgB,CAAC,IAAI,UAAU,CAAC;;;;;;4DAElC,IAAI,UAAU,kBACb,oaAAC;gEAAK,WAAU;0EACb,IAAI,UAAU;;;;;;;;;;;;kEAIrB,oaAAC;wDAAI,WAAU;;0EACb,oaAAC;gEAAE,WAAU;0EACV,IAAI,QAAQ,IAAI;;;;;;0EAEnB,oaAAC;gEAAE,WAAU;0EACV,IAAA,8QAAM,EAAC,IAAI,KAAK,IAAI,SAAS,GAAG;;;;;;;;;;;;oDAGpC,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,EAAE,MAAM,GAAG,mBAChD,oaAAC;wDAAQ,WAAU;;0EACjB,oaAAC;gEAAQ,WAAU;0EAAqE;;;;;;0EAGxF,oaAAC;gEAAI,WAAU;0EACZ,KAAK,SAAS,CAAC,IAAI,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;uCAlCtC,IAAI,EAAE;;;;;gCAyCjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQhB"}}, + {"offset": {"line": 2694, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/db-upgrade.ts"],"sourcesContent":["import Dexie from \"dexie\"\nimport { db } from \"./db\"\n\n/**\n * 检查数据库版本并升级\n */\nexport async function checkAndUpgradeDatabase(): Promise {\n try {\n // 检查 activityLogs 表是否存在\n const tables = db.tables.map(t => t.name)\n \n if (!tables.includes(\"activityLogs\")) {\n console.log(\"检测到需要升级数据库...\")\n \n // 关闭当前连接\n db.close()\n \n // 删除旧数据库(注意:这会清除所有数据)\n // 在生产环境中,应该做数据迁移而不是删除\n await Dexie.delete(\"FamilyTreeDB\")\n \n // 重新打开数据库(会自动创建最新版本)\n await db.open()\n \n console.log(\"数据库升级完成\")\n return true\n }\n \n return false\n } catch (error) {\n console.error(\"数据库升级失败:\", error)\n return false\n }\n}\n\n/**\n * 手动升级数据库(保留数据)\n */\nexport async function upgradeDatabase(): Promise {\n try {\n // 1. 备份现有数据\n const members = await db.members.toArray()\n const settings = await db.settings.toArray()\n const images = await db.images.toArray()\n \n console.log(\"备份数据:\", { members: members.length, settings: settings.length, images: images.length })\n \n // 2. 关闭并删除数据库\n db.close()\n await Dexie.delete(\"FamilyTreeDB\")\n \n // 3. 重新打开(会创建新版本)\n await db.open()\n \n // 4. 恢复数据\n if (members.length > 0) {\n await db.members.bulkAdd(members)\n }\n if (settings.length > 0) {\n await db.settings.bulkAdd(settings)\n }\n if (images.length > 0) {\n await db.images.bulkAdd(images)\n }\n \n console.log(\"数据库升级完成,数据已恢复\")\n } catch (error) {\n console.error(\"数据库升级失败:\", error)\n throw error\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;AACA;;;AAKO,eAAe;IACpB,IAAI;QACF,wBAAwB;QACxB,MAAM,SAAS,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,IAAK,EAAE,IAAI;QAExC,IAAI,CAAC,OAAO,QAAQ,CAAC,iBAAiB;YACpC,QAAQ,GAAG,CAAC;YAEZ,SAAS;YACT,sKAAE,CAAC,KAAK;YAER,sBAAsB;YACtB,sBAAsB;YACtB,MAAM,+PAAK,CAAC,MAAM,CAAC;YAEnB,qBAAqB;YACrB,MAAM,sKAAE,CAAC,IAAI;YAEb,QAAQ,GAAG,CAAC;YACZ,OAAO;QACT;QAEA,OAAO;IACT,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,OAAO;IACT;AACF;AAKO,eAAe;IACpB,IAAI;QACF,YAAY;QACZ,MAAM,UAAU,MAAM,sKAAE,CAAC,OAAO,CAAC,OAAO;QACxC,MAAM,WAAW,MAAM,sKAAE,CAAC,QAAQ,CAAC,OAAO;QAC1C,MAAM,SAAS,MAAM,sKAAE,CAAC,MAAM,CAAC,OAAO;QAEtC,QAAQ,GAAG,CAAC,SAAS;YAAE,SAAS,QAAQ,MAAM;YAAE,UAAU,SAAS,MAAM;YAAE,QAAQ,OAAO,MAAM;QAAC;QAEjG,cAAc;QACd,sKAAE,CAAC,KAAK;QACR,MAAM,+PAAK,CAAC,MAAM,CAAC;QAEnB,kBAAkB;QAClB,MAAM,sKAAE,CAAC,IAAI;QAEb,UAAU;QACV,IAAI,QAAQ,MAAM,GAAG,GAAG;YACtB,MAAM,sKAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B;QACA,IAAI,SAAS,MAAM,GAAG,GAAG;YACvB,MAAM,sKAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5B;QACA,IAAI,OAAO,MAAM,GAAG,GAAG;YACrB,MAAM,sKAAE,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1B;QAEA,QAAQ,GAAG,CAAC;IACd,EAAE,OAAO,OAAO;QACd,QAAQ,KAAK,CAAC,YAAY;QAC1B,MAAM;IACR;AACF"}}, + {"offset": {"line": 2762, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/error-boundary.tsx"],"sourcesContent":["\"use client\"\n\nimport React from \"react\"\n\ninterface Props {\n children: React.ReactNode\n fallback?: React.ReactNode\n}\n\ninterface State {\n hasError: boolean\n error?: Error\n}\n\nexport class ErrorBoundary extends React.Component {\n constructor(props: Props) {\n super(props)\n this.state = { hasError: false }\n }\n\n static getDerivedStateFromError(error: Error): State {\n return { hasError: true, error }\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error(\"ErrorBoundary 捕获错误:\", error, errorInfo)\n }\n\n render() {\n if (this.state.hasError) {\n return (\n this.props.fallback || (\n
\n

组件加载失败

\n

\n {this.state.error?.message || \"未知错误\"}\n

\n this.setState({ hasError: false })}\n >\n 重试\n \n
\n )\n )\n }\n\n return this.props.children\n }\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAcO,MAAM,sBAAsB,sYAAK,CAAC,SAAS;IAChD,YAAY,KAAY,CAAE;QACxB,KAAK,CAAC;QACN,IAAI,CAAC,KAAK,GAAG;YAAE,UAAU;QAAM;IACjC;IAEA,OAAO,yBAAyB,KAAY,EAAS;QACnD,OAAO;YAAE,UAAU;YAAM;QAAM;IACjC;IAEA,kBAAkB,KAAY,EAAE,SAA0B,EAAE;QAC1D,QAAQ,KAAK,CAAC,uBAAuB,OAAO;IAC9C;IAEA,SAAS;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,OACE,IAAI,CAAC,KAAK,CAAC,QAAQ,kBACjB,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAG,WAAU;kCAA0C;;;;;;kCACxD,oaAAC;wBAAE,WAAU;kCACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW;;;;;;kCAEhC,oaAAC;wBACC,WAAU;wBACV,SAAS,IAAM,IAAI,CAAC,QAAQ,CAAC;gCAAE,UAAU;4BAAM;kCAChD;;;;;;;;;;;;QAMT;QAEA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;IAC5B;AACF"}}, + {"offset": {"line": 2833, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/settings/change-password.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\nimport { Lock, CheckCircle2 } from \"lucide-react\"\n\nexport function ChangePassword() {\n const [currentPassword, setCurrentPassword] = useState(\"\")\n const [newPassword, setNewPassword] = useState(\"\")\n const [confirmPassword, setConfirmPassword] = useState(\"\")\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(false)\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n setError(\"\")\n setSuccess(false)\n setLoading(true)\n\n try {\n const response = await fetch(\"/api/user/change-password\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n currentPassword,\n newPassword,\n confirmPassword,\n }),\n })\n\n const data = await response.json()\n\n if (!response.ok) {\n setError(data.error || \"修改密码失败\")\n return\n }\n\n setSuccess(true)\n setCurrentPassword(\"\")\n setNewPassword(\"\")\n setConfirmPassword(\"\")\n\n // 3秒后清除成功消息\n setTimeout(() => setSuccess(false), 3000)\n } catch (err) {\n setError(\"修改密码失败,请稍后重试\")\n } finally {\n setLoading(false)\n }\n }\n\n return (\n \n \n \n 修改密码\n \n 更改您的登录密码\n \n \n
\n {error && (\n \n {error}\n \n )}\n\n {success && (\n \n \n \n 密码修改成功!\n \n \n )}\n\n
\n \n setCurrentPassword(e.target.value)}\n required\n disabled={loading}\n />\n
\n\n
\n \n setNewPassword(e.target.value)}\n required\n disabled={loading}\n minLength={6}\n />\n
\n\n
\n \n setConfirmPassword(e.target.value)}\n required\n disabled={loading}\n />\n
\n\n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AARA;;;;;;;;;AAUO,SAAS;IACd,MAAM,CAAC,iBAAiB,mBAAmB,GAAG,IAAA,uYAAQ,EAAC;IACvD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,iBAAiB,mBAAmB,GAAG,IAAA,uYAAQ,EAAC;IACvD,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAC;IACvC,MAAM,CAAC,OAAO,SAAS,GAAG,IAAA,uYAAQ,EAAC;IACnC,MAAM,CAAC,SAAS,WAAW,GAAG,IAAA,uYAAQ,EAAC;IAEvC,MAAM,eAAe,OAAO;QAC1B,EAAE,cAAc;QAChB,SAAS;QACT,WAAW;QACX,WAAW;QAEX,IAAI;YACF,MAAM,WAAW,MAAM,MAAM,6BAA6B;gBACxD,QAAQ;gBACR,SAAS;oBACP,gBAAgB;gBAClB;gBACA,MAAM,KAAK,SAAS,CAAC;oBACnB;oBACA;oBACA;gBACF;YACF;YAEA,MAAM,OAAO,MAAM,SAAS,IAAI;YAEhC,IAAI,CAAC,SAAS,EAAE,EAAE;gBAChB,SAAS,KAAK,KAAK,IAAI;gBACvB;YACF;YAEA,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YAEnB,YAAY;YACZ,WAAW,IAAM,WAAW,QAAQ;QACtC,EAAE,OAAO,KAAK;YACZ,SAAS;QACX,SAAU;YACR,WAAW;QACb;IACF;IAEA,qBACE,oaAAC,wLAAI;;0BACH,oaAAC,8LAAU;;kCACT,oaAAC,6LAAS;wBAAC,WAAU;;0CACnB,oaAAC,qVAAI;gCAAC,WAAU;;;;;;4BAAY;;;;;;;kCAE9B,oaAAC,mMAAe;kCAAC;;;;;;;;;;;;0BAEnB,oaAAC,+LAAW;0BACV,cAAA,oaAAC;oBAAK,UAAU;oBAAc,WAAU;;wBACrC,uBACC,oaAAC,0LAAK;4BAAC,SAAQ;sCACb,cAAA,oaAAC,qMAAgB;0CAAE;;;;;;;;;;;wBAItB,yBACC,oaAAC,0LAAK;4BAAC,WAAU;;8CACf,oaAAC,gXAAY;oCAAC,WAAU;;;;;;8CACxB,oaAAC,qMAAgB;oCAAC,WAAU;8CAAiB;;;;;;;;;;;;sCAMjD,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAkB;;;;;;8CACjC,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK;oCAClD,QAAQ;oCACR,UAAU;;;;;;;;;;;;sCAId,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAc;;;;;;8CAC7B,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,eAAe,EAAE,MAAM,CAAC,KAAK;oCAC9C,QAAQ;oCACR,UAAU;oCACV,WAAW;;;;;;;;;;;;sCAIf,oaAAC;4BAAI,WAAU;;8CACb,oaAAC,0LAAK;oCAAC,SAAQ;8CAAkB;;;;;;8CACjC,oaAAC,0LAAK;oCACJ,IAAG;oCACH,MAAK;oCACL,aAAY;oCACZ,OAAO;oCACP,UAAU,CAAC,IAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK;oCAClD,QAAQ;oCACR,UAAU;;;;;;;;;;;;sCAId,oaAAC,4LAAM;4BAAC,MAAK;4BAAS,UAAU;4BAAS,WAAU;sCAChD,UAAU,WAAW;;;;;;;;;;;;;;;;;;;;;;;AAMlC"}}, + {"offset": {"line": 3096, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/settings/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { SiteHeader } from \"@/components/site-header\"\nimport { useFamily } from \"@/context/family-context\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, Upload, AlertTriangle, RefreshCw, FileText, Bell, History, Database, User as UserIcon } from \"lucide-react\"\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"\nimport { useRef, useState, useEffect } from \"react\"\nimport { exportToGedcom, importFromGedcom } from \"@/lib/gedcom\"\nimport { NotificationSettings } from \"@/components/settings/notification-settings\"\nimport { ActivityLogViewer } from \"@/components/settings/activity-log-viewer\"\nimport { upgradeDatabase } from \"@/lib/db-upgrade\"\nimport { ErrorBoundary } from \"@/components/error-boundary\"\nimport { useSession } from \"next-auth/react\"\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\"\nimport { ChangePassword } from \"@/components/settings/change-password\"\n\ninterface UserProfile {\n id: string\n email: string\n name: string | null\n createdAt: string\n updatedAt: string\n ownedTreesCount: number\n collaborations: Array<{\n treeId: string\n treeName: string\n role: string\n }>\n}\n\nexport default function SettingsPage() {\n const { treeData, loadData, resetData } = useFamily()\n const { data: session } = useSession()\n const [importStatus, setImportStatus] = useState(\"\")\n const [gedcomStatus, setGedcomStatus] = useState(\"\")\n const [userProfile, setUserProfile] = useState(null)\n const fileInputRef = useRef(null)\n const gedcomInputRef = useRef(null)\n \n const getUserInitial = () => {\n if (session?.user?.name) {\n return session.user.name.charAt(0).toUpperCase()\n }\n if (session?.user?.email) {\n return session.user.email.charAt(0).toUpperCase()\n }\n return \"U\"\n }\n\n // 获取用户资料\n useEffect(() => {\n if (session?.user?.id) {\n fetch('/api/user/profile')\n .then(res => res.json())\n .then(data => {\n if (data.user) {\n setUserProfile(data.user)\n }\n })\n .catch(err => console.error('获取用户资料失败:', err))\n }\n }, [session?.user?.id])\n\n const getRoleText = (role: string) => {\n const roleMap: Record = {\n 'OWNER': '所有者',\n 'EDITOR': '编辑者',\n 'VIEWER': '查看者'\n }\n return roleMap[role] || role\n }\n\n const getRoleBadgeColor = (role: string) => {\n const colorMap: Record = {\n 'OWNER': 'bg-purple-100 text-purple-700 border-purple-200',\n 'EDITOR': 'bg-blue-100 text-blue-700 border-blue-200',\n 'VIEWER': 'bg-gray-100 text-gray-700 border-gray-200'\n }\n return colorMap[role] || 'bg-gray-100 text-gray-700'\n }\n\n return (\n
\n \n
\n

系统设置 (Settings)

\n\n
\n {/* 用户信息和密码修改 - 两列布局 */}\n {session && (\n
\n \n \n \n 用户信息\n \n 您的账号信息和角色\n \n \n
\n \n {getUserInitial()}\n \n
\n

{session.user?.name || \"用户\"}

\n

{session.user?.email}

\n

\n 用户 ID: {session.user?.id}\n

\n
\n
\n\n {userProfile && (userProfile.ownedTreesCount > 0 || userProfile.collaborations.length > 0) && (\n
\n

我的家族树

\n
\n {/* 显示拥有的家族树(所有者) */}\n {userProfile.ownedTreesCount > 0 && (\n
\n \n {getRoleText('OWNER')}\n \n {userProfile.ownedTreesCount} 个家族树\n
\n )}\n \n {/* 显示协作的家族树 */}\n {userProfile.collaborations.length > 0 && (\n
\n {userProfile.collaborations.map((collab) => (\n
\n {collab.treeName}\n \n {getRoleText(collab.role)}\n \n
\n ))}\n
\n )}\n
\n
\n )}\n
\n
\n \n \n
\n )}\n \n {/* 通知设置和数据备份 - 两列布局 */}\n
\n \n \n \n \n \n 数据备份 (Backup)\n \n 将家族数据导出为 JSON 文件进行本地保存。\n \n \n {\n const dataStr = JSON.stringify(treeData, null, 2)\n const blob = new Blob([dataStr], { type: \"application/json\" })\n const url = URL.createObjectURL(blob)\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `family_tree_backup_${new Date().toISOString().split(\"T\")[0]}.json`\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }}\n >\n 导出数据 (Export JSON)\n \n \n \n
\n\n {/* 数据恢复和 GEDCOM - 两列布局 */}\n
\n \n \n \n 数据恢复 (Restore)\n \n 从 JSON 备份文件恢复数据。注意:这将覆盖当前的所有数据。\n \n \n \n \n 警告\n 导入操作不可撤销。建议在导入前先导出当前数据备份。\n \n\n
\n {\n const file = e.target.files?.[0]\n if (!file) return\n\n const reader = new FileReader()\n reader.onload = async (event) => {\n try {\n const jsonStr = event.target?.result as string\n const data = JSON.parse(jsonStr)\n await loadData(data)\n setImportStatus(\"导入成功!\")\n if (fileInputRef.current) fileInputRef.current.value = \"\"\n } catch (err) {\n console.error(err)\n setImportStatus(\"错误:无法解析 JSON 文件\")\n }\n }\n reader.readAsText(file)\n }}\n />\n \n {importStatus}\n
\n
\n
\n\n \n \n \n GEDCOM 格式\n \n 导入/导出标准 GEDCOM 格式,兼容其他家谱软件(如 Ancestry、MyHeritage)。\n \n \n
\n {\n const gedcomText = exportToGedcom(treeData)\n const blob = new Blob([gedcomText], { type: \"text/plain;charset=utf-8\" })\n const url = URL.createObjectURL(blob)\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `family_tree_${new Date().toISOString().split(\"T\")[0]}.ged`\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }}\n >\n \n 导出 GEDCOM\n \n \n {\n const file = e.target.files?.[0]\n if (!file) return\n\n const reader = new FileReader()\n reader.onload = async (event) => {\n try {\n const gedcomText = event.target?.result as string\n const importedData = importFromGedcom(gedcomText)\n await loadData(importedData)\n setGedcomStatus(\"GEDCOM 导入成功!\")\n if (gedcomInputRef.current) gedcomInputRef.current.value = \"\"\n } catch (err) {\n console.error(err)\n setGedcomStatus(\"错误:无法解析 GEDCOM 文件\")\n }\n }\n reader.readAsText(file)\n }}\n />\n \n {gedcomStatus && {gedcomStatus}}\n
\n
\n
\n
\n\n {/* 数据库和系统管理 - 两列布局 */}\n
\n \n \n \n 数据库维护\n \n 升级数据库以支持新功能(如操作日志)\n \n \n \n \n 如果操作日志功能不工作,请点击下方按钮升级数据库。升级会保留所有现有数据。\n \n \n {\n if (confirm(\"确定要升级数据库吗?这会保留所有现有数据。\")) {\n try {\n await upgradeDatabase()\n alert(\"数据库升级成功!请刷新页面。\")\n window.location.reload()\n } catch (error) {\n alert(\"数据库升级失败:\" + (error as Error).message)\n }\n }\n }}\n >\n \n 升级数据库\n \n \n \n\n \n \n \n 危险区域 (Danger Zone)\n \n 这些操作不可逆,请谨慎使用。\n \n \n {\n if (confirm(\"确定要重置吗?所有更改将丢失。\")) {\n await resetData()\n alert(\"数据已重置为演示状态。\")\n }\n }}\n >\n 重置所有数据\n \n \n \n
\n\n {/* 操作日志 - 全宽 */}\n \n \n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js b/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js index 93c87ebb..dfdb7e32 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js @@ -43,7 +43,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch ; const FamilyContext = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"])(undefined); function FamilyProvider({ children }) { - const { data: session } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSession"])(); + const { data: session, status } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSession"])(); const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSearchParams"])(); const [searchResults, setSearchResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]); const [isLoading, setIsLoading] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(true); @@ -55,79 +55,116 @@ function FamilyProvider({ children }) { const [currentTree, setCurrentTree] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null); // 监听 URL 和 Session 变化,加载家族树 (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{ - const treeId = searchParams.get('treeId'); - console.log('FamilyContext - Effect triggered, treeId:', treeId, 'currentTree:', currentTree?.id); - // 如果 session 不存在,清除所有数据 - if (!session?.user?.id) { - console.log('FamilyContext - No session, clearing data'); - setCurrentTree(null); - setTreeData({ - rootId: "", - members: {} - }); - setIsLoading(false); - return; - } - // 如果 treeId 与当前树相同,跳过 - if (treeId && treeId === currentTree?.id) { - console.log('FamilyContext - Same tree, skipping'); - return; - } - // 如果没有 treeId 且已有树,跳过 - if (!treeId && currentTree) { - console.log('FamilyContext - No treeId but has currentTree, skipping'); - return; - } - // 需要加载新树 - const targetTreeId = treeId || 'first'; - console.log('FamilyContext - Loading tree:', targetTreeId); - setIsLoading(true); - const fetchUrl = targetTreeId === 'first' ? '/api/trees' : `/api/trees/${targetTreeId}`; - console.log('FamilyContext - Fetching URL:', fetchUrl); - fetch(fetchUrl).then((res)=>res.json()).then((data)=>{ - let tree = null; - if (targetTreeId === 'first') { - tree = data.trees?.[0]; - } else { - tree = data.tree; + const controller = new AbortController(); + const signal = controller.signal; + const loadTree = async ()=>{ + const treeId = searchParams.get('treeId'); + // 如果 session 正在加载,等待 + if (status === 'loading') { + return; } - console.log('FamilyContext - Fetched tree:', tree?.name, tree?.id); - if (tree) { - setCurrentTree(tree); - // 加载该树的成员数据 - return fetch(`/api/trees/${tree.id}/members`).then((res)=>res.json()).then((memberData)=>{ - console.log('FamilyContext - Loaded members:', memberData.members?.length); - if (memberData.members) { - const membersMap = memberData.members.reduce((acc, member)=>{ - acc[member.id] = member; - return acc; - }, {}); + // 如果 session 不存在(未登录),清除所有数据 + if (!session?.user?.id) { + if (!signal.aborted) { + setCurrentTree(null); + setTreeData({ + rootId: "", + members: {} + }); + setIsLoading(false); + } + return; + } + // 如果 treeId 与当前树相同,跳过 + if (treeId && treeId === currentTree?.id) { + return; + } + // 如果没有 treeId 且已有树,跳过 + if (!treeId && currentTree) { + return; + } + // 需要加载新树 + const targetTreeId = treeId || 'first'; + if (!signal.aborted) setIsLoading(true); + const fetchUrl = targetTreeId === 'first' ? '/api/trees' : `/api/trees/${targetTreeId}`; + try { + const res = await fetch(fetchUrl, { + signal + }); + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + const data = await res.json(); + if (signal.aborted) return; + let tree = null; + if (targetTreeId === 'first') { + tree = data.trees?.[0]; + } else { + tree = data.tree; + } + if (tree) { + setCurrentTree(tree); + // 加载该树的成员数据 + try { + const memberRes = await fetch(`/api/trees/${tree.id}/members`, { + signal + }); + if (!memberRes.ok) { + throw new Error(`Failed to load members: ${memberRes.status}`); + } + const memberData = await memberRes.json(); + if (signal.aborted) return; + if (memberData.members) { + const membersMap = memberData.members.reduce((acc, member)=>{ + acc[member.id] = member; + return acc; + }, {}); + setTreeData({ + rootId: memberData.rootId || "", + members: membersMap + }); + } + } catch (err) { + if (err.name === 'AbortError') return; + console.error('加载成员数据失败:', err); + // 即使成员加载失败,也保留树的信息 setTreeData({ - rootId: memberData.rootId || "", - members: membersMap + rootId: "", + members: {} }); } - }); - } else { - // 没找到树(可能是被删除了,或者没有权限) - console.log('FamilyContext - Tree not found'); + } else { + setCurrentTree(null); + setTreeData({ + rootId: "", + members: {} + }); + } + } catch (err) { + if (err.name === 'AbortError') return; + // 忽略 Failed to fetch 错误,通常发生在页面跳转或网络问题时 + if (err.message === 'Failed to fetch' || err.toString().includes('Failed to fetch')) { + return; + } + console.error('加载家族树失败:', err.message || err); setCurrentTree(null); setTreeData({ rootId: "", members: {} }); + } finally{ + if (!signal.aborted) setIsLoading(false); } - }).catch((err)=>{ - console.error('FamilyContext - Load failed:', err); - setCurrentTree(null); - setTreeData({ - rootId: "", - members: {} - }); - }).finally(()=>setIsLoading(false)); + }; + loadTree(); + return ()=>{ + controller.abort(); + }; }, [ searchParams, - session?.user?.id + session?.user?.id, + status, + currentTree?.id ]); const getMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])((id)=>{ return treeData.members[id]; @@ -286,7 +323,7 @@ function FamilyProvider({ children }) { children: children }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx", - lineNumber: 286, + lineNumber: 316, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js.map b/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js.map index ab2459c7..61879606 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js.map +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__f335d780._.js.map @@ -2,13 +2,13 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 28, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/context/family-context.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport { createContext, useContext, useState, useCallback, useEffect } from \"react\"\nimport type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface FamilyTreeInfo {\n id: string\n name: string\n description: string | null\n ownerId: string\n rootMemberId: string | null\n}\n\ninterface FamilyContextType {\n treeData: FamilyTreeData\n currentTree: FamilyTreeInfo | null\n getMember: (id: string) => FamilyMember | undefined\n addMember: (member: FamilyMember) => Promise\n updateMember: (id: string, updates: Partial) => Promise\n deleteMember: (id: string) => Promise\n searchResults: FamilyMember[]\n searchMembers: (query: string) => void\n loadData: (data: FamilyTreeData) => Promise\n resetData: () => Promise\n isLoading: boolean\n highlightedMemberId: string | null\n setHighlightedMemberId: (id: string | null) => void\n}\n\nconst FamilyContext = createContext(undefined)\n\nexport function FamilyProvider({ children }: { children: React.ReactNode }) {\n const { data: session } = useSession()\n const searchParams = useSearchParams()\n const [searchResults, setSearchResults] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [highlightedMemberId, setHighlightedMemberId] = useState(null)\n const [treeData, setTreeData] = useState({\n rootId: \"\",\n members: {},\n })\n const [currentTree, setCurrentTree] = useState(null)\n\n // 监听 URL 和 Session 变化,加载家族树\n useEffect(() => {\n const treeId = searchParams.get('treeId')\n console.log('FamilyContext - Effect triggered, treeId:', treeId, 'currentTree:', currentTree?.id)\n \n // 如果 session 不存在,清除所有数据\n if (!session?.user?.id) {\n console.log('FamilyContext - No session, clearing data')\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n setIsLoading(false)\n return\n }\n\n // 如果 treeId 与当前树相同,跳过\n if (treeId && treeId === currentTree?.id) {\n console.log('FamilyContext - Same tree, skipping')\n return\n }\n\n // 如果没有 treeId 且已有树,跳过\n if (!treeId && currentTree) {\n console.log('FamilyContext - No treeId but has currentTree, skipping')\n return\n }\n\n // 需要加载新树\n const targetTreeId = treeId || 'first'\n console.log('FamilyContext - Loading tree:', targetTreeId)\n \n setIsLoading(true)\n \n const fetchUrl = targetTreeId === 'first' \n ? '/api/trees' \n : `/api/trees/${targetTreeId}`\n \n console.log('FamilyContext - Fetching URL:', fetchUrl)\n \n fetch(fetchUrl)\n .then(res => res.json())\n .then(data => {\n let tree = null\n if (targetTreeId === 'first') {\n tree = data.trees?.[0]\n } else {\n tree = data.tree\n }\n \n console.log('FamilyContext - Fetched tree:', tree?.name, tree?.id)\n \n if (tree) {\n setCurrentTree(tree)\n // 加载该树的成员数据\n return fetch(`/api/trees/${tree.id}/members`)\n .then(res => res.json())\n .then(memberData => {\n console.log('FamilyContext - Loaded members:', memberData.members?.length)\n if (memberData.members) {\n const membersMap = memberData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: memberData.rootId || \"\",\n members: membersMap,\n })\n }\n })\n } else {\n // 没找到树(可能是被删除了,或者没有权限)\n console.log('FamilyContext - Tree not found')\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n }\n })\n .catch(err => {\n console.error('FamilyContext - Load failed:', err)\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n })\n .finally(() => setIsLoading(false))\n }, [searchParams, session?.user?.id])\n\n const getMember = useCallback(\n (id: string) => {\n return treeData.members[id]\n },\n [treeData],\n )\n\n const addMember = useCallback(async (member: FamilyMember) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(member),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '添加成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [data.member.id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const updateMember = useCallback(async (id: string, updates: Partial) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(updates),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '更新成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const deleteMember = useCallback(async (id: string) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'DELETE',\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除成员失败')\n }\n \n // 更新本地状态\n setTreeData(prev => {\n const newMembers = { ...prev.members }\n delete newMembers[id]\n return {\n ...prev,\n members: newMembers,\n }\n })\n }, [currentTree?.id])\n\n const loadData = useCallback(async (data: FamilyTreeData) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n // 导入数据到服务器\n const response = await fetch(`/api/trees/${currentTree.id}/import`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '导入数据失败')\n }\n \n // 重新加载数据\n const membersResponse = await fetch(`/api/trees/${currentTree.id}/members`)\n const membersData = await membersResponse.json()\n \n if (membersData.members) {\n const membersMap = membersData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: membersData.rootId || \"\",\n members: membersMap,\n })\n }\n }, [currentTree?.id])\n\n const resetData = useCallback(async () => {\n // 重置为空数据\n setTreeData({ rootId: \"\", members: {} })\n }, [])\n\n const searchMembers = useCallback(\n (query: string) => {\n if (!query.trim()) {\n setSearchResults([])\n return\n }\n\n const lowerQuery = query.toLowerCase()\n // Perform search on the in-memory treeData for simplicity and speed\n // (Dexie also supports querying, but we already have the data loaded)\n const results = Object.values(treeData.members).filter(\n (member) =>\n member.fullName.includes(lowerQuery) ||\n member.givenName.includes(lowerQuery) ||\n member.courtesyName?.includes(lowerQuery) ||\n member.artName?.includes(lowerQuery),\n )\n setSearchResults(results)\n },\n [treeData],\n )\n\n // Listen for import events\n useEffect(() => {\n const handleImport = (e: CustomEvent) => {\n loadData(e.detail)\n }\n window.addEventListener(\"family-data-import\" as any, handleImport as any)\n return () => window.removeEventListener(\"family-data-import\" as any, handleImport as any)\n }, [loadData])\n\n return (\n \n {children}\n \n )\n}\n\nexport function useFamily() {\n const context = useContext(FamilyContext)\n if (context === undefined) {\n throw new Error(\"useFamily must be used within a FamilyProvider\")\n }\n return context\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 303, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/register-sw.ts"],"sourcesContent":["export function registerServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n console.log(\"Service Worker 不被支持\")\n return\n }\n\n const register = () => {\n navigator.serviceWorker\n .register(\"/sw.js\")\n .then((registration) => {\n console.log(\"Service Worker 注册成功:\", registration.scope)\n\n // 检查更新\n registration.addEventListener(\"updatefound\", () => {\n const newWorker = registration.installing\n if (newWorker) {\n newWorker.addEventListener(\"statechange\", () => {\n if (newWorker.state === \"installed\" && navigator.serviceWorker.controller) {\n // 新的 Service Worker 已安装,提示用户刷新\n console.log(\"发现新版本,可以刷新页面\")\n }\n })\n }\n })\n })\n .catch((error) => {\n console.log(\"Service Worker 注册失败:\", error)\n })\n }\n\n // 如果页面已经加载完成,直接注册;否则等待 load 事件\n if (document.readyState === \"complete\") {\n register()\n } else {\n window.addEventListener(\"load\", register)\n }\n}\n\nexport function unregisterServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n return\n }\n\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(\"Service Worker 注销失败:\", error)\n })\n}\n"],"names":[],"mappings":";;;;;;AAAO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE,QAAQ,GAAG,CAAC;QACZ;IACF;;;IAEA,MAAM;AA8BR;AAEO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE;IACF;;;AASF"}}, - {"offset": {"line": 329, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;;;AAEO,SAAS,GAAG,GAAG,MAAoB;IACxC,OAAO,IAAA,2RAAO,EAAC,IAAA,qPAAI,EAAC;AACtB"}}, - {"offset": {"line": 344, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/button.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n \n )\n}\n\nexport { Button, buttonVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,iBAAiB,IAAA,ySAAG,EACxB,+bACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,WAAW;YACX,WAAW;QACb;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAAS,OAAO,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,KAAK,EACf,GAAG,OAIF;IACD,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,eAAe;YAAE;YAAS;YAAM;QAAU;QACvD,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 403, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA;;;AAEA,SAAS,KAAK,EAAE,SAAS,EAAE,GAAG,OAAoC;IAChE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,qFACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,4JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,UAAU,EAAE,SAAS,EAAE,GAAG,OAAoC;IACrE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,8BAA8B;QAC3C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAoC;IAC3E,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kEACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EAAE,SAAS,EAAE,GAAG,OAAoC;IACvE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,QAAQ;QACrB,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2CAA2C;QACxD,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 505, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps) {\n return (\n \n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":[],"mappings":";;;;;;;;;AACA;AAEA;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,qOACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,GAAG,OAC8D;IACjE,qBACE,oaAAC;QACC,aAAU;QACV,MAAK;QACL,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,+DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,iBAAiB,EACxB,SAAS,EACT,GAAG,OACyB;IAC5B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kGACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, - {"offset": {"line": 571, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, X, Smartphone } from \"lucide-react\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function PWAInstaller() {\n const [deferredPrompt, setDeferredPrompt] = useState(null)\n const [isInstallable, setIsInstallable] = useState(false)\n const [isInstalled, setIsInstalled] = useState(false)\n const [showPrompt, setShowPrompt] = useState(false)\n\n useEffect(() => {\n // 检查是否已安装\n if (typeof window !== \"undefined\") {\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches\n const isIOSStandalone = (window.navigator as any).standalone === true\n \n if (isStandalone || isIOSStandalone) {\n setIsInstalled(true)\n return\n }\n }\n\n // 监听 beforeinstallprompt 事件\n const handleBeforeInstallPrompt = (e: Event) => {\n e.preventDefault()\n setDeferredPrompt(e)\n setIsInstallable(true)\n \n // 延迟显示提示(给用户一些时间浏览应用)\n setTimeout(() => {\n const hasSeenPrompt = localStorage.getItem('pwa-install-prompt-seen')\n if (!hasSeenPrompt) {\n setShowPrompt(true)\n }\n }, 30000) // 30秒后显示\n }\n\n // 监听安装完成事件\n const handleAppInstalled = () => {\n setIsInstalled(true)\n setShowPrompt(false)\n setIsInstallable(false)\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.addEventListener('appinstalled', handleAppInstalled)\n\n return () => {\n window.removeEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.removeEventListener('appinstalled', handleAppInstalled)\n }\n }\n }, [])\n\n const handleInstallClick = async () => {\n if (!deferredPrompt) return\n\n // 显示安装提示\n deferredPrompt.prompt()\n\n // 等待用户响应\n const { outcome } = await deferredPrompt.userChoice\n \n if (outcome === 'accepted') {\n console.log('用户接受了安装')\n } else {\n console.log('用户拒绝了安装')\n }\n\n setDeferredPrompt(null)\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n const handleDismiss = () => {\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n if (isInstalled) {\n return null\n }\n\n if (!isInstallable) {\n return null\n }\n\n return (\n <>\n {/* 浮动安装提示 */}\n {showPrompt && (\n
\n \n \n
\n
\n \n 安装应用\n
\n \n \n \n
\n \n 将家谱应用添加到主屏幕,随时随地访问\n \n
\n \n \n \n 立即安装\n \n \n
\n
\n )}\n\n {/* 设置页面的安装按钮 */}\n {!showPrompt && (\n \n \n \n 将应用安装到设备\n \n \n \n )}\n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;;;;;;;AAQO,SAAS;IACd,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,IAAA,uYAAQ,EAAM;IAC1D,MAAM,CAAC,eAAe,iBAAiB,GAAG,IAAA,uYAAQ,EAAC;IACnD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,YAAY,cAAc,GAAG,IAAA,uYAAQ,EAAC;IAE7C,IAAA,wYAAS,EAAC;QACR,UAAU;QACV;;QAUA,4BAA4B;QAC5B,MAAM,4BAA4B,CAAC;YACjC,EAAE,cAAc;YAChB,kBAAkB;YAClB,iBAAiB;YAEjB,sBAAsB;YACtB,WAAW;gBACT,MAAM,gBAAgB,aAAa,OAAO,CAAC;gBAC3C,IAAI,CAAC,eAAe;oBAClB,cAAc;gBAChB;YACF,GAAG,QAAO,SAAS;QACrB;QAEA,WAAW;QACX,MAAM,qBAAqB;YACzB,eAAe;YACf,cAAc;YACd,iBAAiB;QACnB;QAEA;;IASF,GAAG,EAAE;IAEL,MAAM,qBAAqB;QACzB,IAAI,CAAC,gBAAgB;QAErB,SAAS;QACT,eAAe,MAAM;QAErB,SAAS;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,UAAU;QAEnD,IAAI,YAAY,YAAY;YAC1B,QAAQ,GAAG,CAAC;QACd,OAAO;YACL,QAAQ,GAAG,CAAC;QACd;QAEA,kBAAkB;QAClB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,MAAM,gBAAgB;QACpB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,IAAI,aAAa;QACf,OAAO;IACT;IAEA,IAAI,CAAC,eAAe;QAClB,OAAO;IACT;IAEA,qBACE;;YAEG,4BACC,oaAAC;gBAAI,WAAU;0BACb,cAAA,oaAAC,wLAAI;oBAAC,WAAU;;sCACd,oaAAC,8LAAU;4BAAC,WAAU;;8CACpB,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAI,WAAU;;8DACb,oaAAC,uWAAU;oDAAC,WAAU;;;;;;8DACtB,oaAAC,6LAAS;oDAAC,WAAU;8DAAY;;;;;;;;;;;;sDAEnC,oaAAC,4LAAM;4CACL,SAAQ;4CACR,MAAK;4CACL,WAAU;4CACV,SAAS;sDAET,cAAA,oaAAC,4UAAC;gDAAC,WAAU;;;;;;;;;;;;;;;;;8CAGjB,oaAAC,mMAAe;oCAAC,WAAU;8CAAU;;;;;;;;;;;;sCAIvC,oaAAC,+LAAW;4BAAC,WAAU;sCACrB,cAAA,oaAAC,4LAAM;gCACL,SAAS;gCACT,WAAU;gCACV,MAAK;;kDAEL,oaAAC,iWAAQ;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;;;;;;;;;;;;;;;;;YAS9C,CAAC,4BACA,oaAAC,0LAAK;gBAAC,WAAU;gBAAqD,SAAS;;kCAC7E,oaAAC,iWAAQ;wBAAC,WAAU;;;;;;kCACpB,oaAAC,qMAAgB;wBAAC,WAAU;;0CAC1B,oaAAC;0CAAK;;;;;;0CACN,oaAAC,4LAAM;gCAAC,MAAK;gCAAK,SAAQ;0CAAU;;;;;;;;;;;;;;;;;;;;AAQhD"}}, - {"offset": {"line": 806, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect } from \"react\"\nimport { registerServiceWorker } from \"@/lib/register-sw\"\nimport { PWAInstaller } from \"./pwa-installer\"\n\nexport function PWAProvider({ children }: { children: React.ReactNode }) {\n useEffect(() => {\n registerServiceWorker()\n }, [])\n\n return (\n <>\n {children}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AAJA;;;;;AAMO,SAAS,YAAY,EAAE,QAAQ,EAAiC;IACrE,IAAA,wYAAS,EAAC;QACR,IAAA,qMAAqB;IACvB,GAAG,EAAE;IAEL,qBACE;;YACG;0BACD,oaAAC,6MAAY;;;;;;;AAGnB"}}, - {"offset": {"line": 838, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { SessionProvider as NextAuthSessionProvider } from \"next-auth/react\"\n\nexport function SessionProvider({ children }: { children: React.ReactNode }) {\n return {children}\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAIO,SAAS,gBAAgB,EAAE,QAAQ,EAAiC;IACzE,qBAAO,oaAAC,scAAuB;kBAAE;;;;;;AACnC"}}] + {"offset": {"line": 28, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/context/family-context.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport { createContext, useContext, useState, useCallback, useEffect } from \"react\"\nimport type { FamilyMember, FamilyTreeData } from \"@/types/family\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\n\ninterface FamilyTreeInfo {\n id: string\n name: string\n description: string | null\n ownerId: string\n rootMemberId: string | null\n}\n\ninterface FamilyContextType {\n treeData: FamilyTreeData\n currentTree: FamilyTreeInfo | null\n getMember: (id: string) => FamilyMember | undefined\n addMember: (member: FamilyMember) => Promise\n updateMember: (id: string, updates: Partial) => Promise\n deleteMember: (id: string) => Promise\n searchResults: FamilyMember[]\n searchMembers: (query: string) => void\n loadData: (data: FamilyTreeData) => Promise\n resetData: () => Promise\n isLoading: boolean\n highlightedMemberId: string | null\n setHighlightedMemberId: (id: string | null) => void\n}\n\nconst FamilyContext = createContext(undefined)\n\nexport function FamilyProvider({ children }: { children: React.ReactNode }) {\n const { data: session, status } = useSession()\n const searchParams = useSearchParams()\n const [searchResults, setSearchResults] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [highlightedMemberId, setHighlightedMemberId] = useState(null)\n const [treeData, setTreeData] = useState({\n rootId: \"\",\n members: {},\n })\n const [currentTree, setCurrentTree] = useState(null)\n\n // 监听 URL 和 Session 变化,加载家族树\n useEffect(() => {\n const controller = new AbortController()\n const signal = controller.signal\n\n const loadTree = async () => {\n const treeId = searchParams.get('treeId')\n \n // 如果 session 正在加载,等待\n if (status === 'loading') {\n return\n }\n \n // 如果 session 不存在(未登录),清除所有数据\n if (!session?.user?.id) {\n if (!signal.aborted) {\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n setIsLoading(false)\n }\n return\n }\n\n // 如果 treeId 与当前树相同,跳过\n if (treeId && treeId === currentTree?.id) {\n return\n }\n\n // 如果没有 treeId 且已有树,跳过\n if (!treeId && currentTree) {\n return\n }\n\n // 需要加载新树\n const targetTreeId = treeId || 'first'\n \n if (!signal.aborted) setIsLoading(true)\n \n const fetchUrl = targetTreeId === 'first' \n ? '/api/trees' \n : `/api/trees/${targetTreeId}`\n \n try {\n const res = await fetch(fetchUrl, { signal })\n if (!res.ok) {\n throw new Error(`HTTP error! status: ${res.status}`)\n }\n const data = await res.json()\n \n if (signal.aborted) return\n\n let tree = null\n if (targetTreeId === 'first') {\n tree = data.trees?.[0]\n } else {\n tree = data.tree\n }\n \n if (tree) {\n setCurrentTree(tree)\n // 加载该树的成员数据\n try {\n const memberRes = await fetch(`/api/trees/${tree.id}/members`, { signal })\n if (!memberRes.ok) {\n throw new Error(`Failed to load members: ${memberRes.status}`)\n }\n const memberData = await memberRes.json()\n \n if (signal.aborted) return\n\n if (memberData.members) {\n const membersMap = memberData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: memberData.rootId || \"\",\n members: membersMap,\n })\n }\n } catch (err: any) {\n if (err.name === 'AbortError') return\n console.error('加载成员数据失败:', err)\n // 即使成员加载失败,也保留树的信息\n setTreeData({ rootId: \"\", members: {} })\n }\n } else {\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n }\n } catch (err: any) {\n if (err.name === 'AbortError') return\n \n // 忽略 Failed to fetch 错误,通常发生在页面跳转或网络问题时\n if (err.message === 'Failed to fetch' || err.toString().includes('Failed to fetch')) {\n return\n }\n \n console.error('加载家族树失败:', err.message || err)\n setCurrentTree(null)\n setTreeData({ rootId: \"\", members: {} })\n } finally {\n if (!signal.aborted) setIsLoading(false)\n }\n }\n\n loadTree()\n\n return () => {\n controller.abort()\n }\n }, [searchParams, session?.user?.id, status, currentTree?.id])\n\n const getMember = useCallback(\n (id: string) => {\n return treeData.members[id]\n },\n [treeData],\n )\n\n const addMember = useCallback(async (member: FamilyMember) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(member),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '添加成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [data.member.id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const updateMember = useCallback(async (id: string, updates: Partial) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(updates),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '更新成员失败')\n }\n \n const data = await response.json()\n \n // 更新本地状态\n setTreeData(prev => ({\n ...prev,\n members: {\n ...prev.members,\n [id]: data.member,\n },\n }))\n }, [currentTree?.id])\n\n const deleteMember = useCallback(async (id: string) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {\n method: 'DELETE',\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '删除成员失败')\n }\n \n // 更新本地状态\n setTreeData(prev => {\n const newMembers = { ...prev.members }\n delete newMembers[id]\n return {\n ...prev,\n members: newMembers,\n }\n })\n }, [currentTree?.id])\n\n const loadData = useCallback(async (data: FamilyTreeData) => {\n if (!currentTree?.id) throw new Error('没有选择家族树')\n \n // 导入数据到服务器\n const response = await fetch(`/api/trees/${currentTree.id}/import`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n \n if (!response.ok) {\n const error = await response.json()\n throw new Error(error.error || '导入数据失败')\n }\n \n // 重新加载数据\n const membersResponse = await fetch(`/api/trees/${currentTree.id}/members`)\n const membersData = await membersResponse.json()\n \n if (membersData.members) {\n const membersMap = membersData.members.reduce(\n (acc: Record, member: FamilyMember) => {\n acc[member.id] = member\n return acc\n },\n {}\n )\n setTreeData({\n rootId: membersData.rootId || \"\",\n members: membersMap,\n })\n }\n }, [currentTree?.id])\n\n const resetData = useCallback(async () => {\n // 重置为空数据\n setTreeData({ rootId: \"\", members: {} })\n }, [])\n\n const searchMembers = useCallback(\n (query: string) => {\n if (!query.trim()) {\n setSearchResults([])\n return\n }\n\n const lowerQuery = query.toLowerCase()\n // Perform search on the in-memory treeData for simplicity and speed\n // (Dexie also supports querying, but we already have the data loaded)\n const results = Object.values(treeData.members).filter(\n (member) =>\n member.fullName.includes(lowerQuery) ||\n member.givenName.includes(lowerQuery) ||\n member.courtesyName?.includes(lowerQuery) ||\n member.artName?.includes(lowerQuery),\n )\n setSearchResults(results)\n },\n [treeData],\n )\n\n // Listen for import events\n useEffect(() => {\n const handleImport = (e: CustomEvent) => {\n loadData(e.detail)\n }\n window.addEventListener(\"family-data-import\" as any, handleImport as any)\n return () => window.removeEventListener(\"family-data-import\" as any, handleImport as any)\n }, [loadData])\n\n return (\n \n {children}\n \n )\n}\n\nexport function useFamily() {\n const context = useContext(FamilyContext)\n if (context === undefined) {\n throw new Error(\"useFamily must be used within a FamilyProvider\")\n }\n return context\n}\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 340, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/register-sw.ts"],"sourcesContent":["export function registerServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n console.log(\"Service Worker 不被支持\")\n return\n }\n\n const register = () => {\n navigator.serviceWorker\n .register(\"/sw.js\")\n .then((registration) => {\n // 检查更新\n registration.addEventListener(\"updatefound\", () => {\n const newWorker = registration.installing\n if (newWorker) {\n newWorker.addEventListener(\"statechange\", () => {\n if (newWorker.state === \"installed\" && navigator.serviceWorker.controller) {\n // 新的 Service Worker 已安装\n }\n })\n }\n })\n })\n .catch((error) => {\n console.error(\"Service Worker 注册失败:\", error)\n })\n }\n\n // 如果页面已经加载完成,直接注册;否则等待 load 事件\n if (document.readyState === \"complete\") {\n register()\n } else {\n window.addEventListener(\"load\", register)\n }\n}\n\nexport function unregisterServiceWorker() {\n if (typeof window === \"undefined\" || !(\"serviceWorker\" in navigator)) {\n return\n }\n\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(\"Service Worker 注销失败:\", error)\n })\n}\n"],"names":[],"mappings":";;;;;;AAAO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE,QAAQ,GAAG,CAAC;QACZ;IACF;;;IAEA,MAAM;AA2BR;AAEO,SAAS;IACd,IAAI,kDAAkB,eAAe,CAAC,CAAC,mBAAmB,SAAS,GAAG;QACpE;IACF;;;AASF"}}, + {"offset": {"line": 366, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;;;AAEO,SAAS,GAAG,GAAG,MAAoB;IACxC,OAAO,IAAA,2RAAO,EAAC,IAAA,qPAAI,EAAC;AACtB"}}, + {"offset": {"line": 381, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/button.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n \n )\n}\n\nexport { Button, buttonVariants }\n"],"names":[],"mappings":";;;;;;;AACA;AACA;AAEA;;;;;AAEA,MAAM,iBAAiB,IAAA,ySAAG,EACxB,+bACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,WAAW;YACX,WAAW;QACb;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAAS,OAAO,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,KAAK,EACf,GAAG,OAIF;IACD,MAAM,OAAO,UAAU,mWAAI,GAAG;IAE9B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,eAAe;YAAE;YAAS;YAAM;QAAU;QACvD,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 440, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA;;;AAEA,SAAS,KAAK,EAAE,SAAS,EAAE,GAAG,OAAoC;IAChE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,qFACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,4JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,UAAU,EAAE,SAAS,EAAE,GAAG,OAAoC;IACrE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,8BAA8B;QAC3C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAoC;IAC3E,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kEACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EAAE,SAAS,EAAE,GAAG,OAAoC;IACvE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,QAAQ;QACrB,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,2CAA2C;QACxD,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 542, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps) {\n return (\n \n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":[],"mappings":";;;;;;;;;AACA;AAEA;;;;AAEA,MAAM,gBAAgB,IAAA,ySAAG,EACvB,qOACA;IACE,UAAU;QACR,SAAS;YACP,SAAS;YACT,aACE;QACJ;IACF;IACA,iBAAiB;QACf,SAAS;IACX;AACF;AAGF,SAAS,MAAM,EACb,SAAS,EACT,OAAO,EACP,GAAG,OAC8D;IACjE,qBACE,oaAAC;QACC,aAAU;QACV,MAAK;QACL,WAAW,IAAA,yKAAE,EAAC,cAAc;YAAE;QAAQ,IAAI;QACzC,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAAE,SAAS,EAAE,GAAG,OAAoC;IACtE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,+DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,iBAAiB,EACxB,SAAS,EACT,GAAG,OACyB;IAC5B,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,kGACA;QAED,GAAG,KAAK;;;;;;AAGf"}}, + {"offset": {"line": 608, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Download, X, Smartphone } from \"lucide-react\"\nimport { Alert, AlertDescription } from \"@/components/ui/alert\"\n\nexport function PWAInstaller() {\n const [deferredPrompt, setDeferredPrompt] = useState(null)\n const [isInstallable, setIsInstallable] = useState(false)\n const [isInstalled, setIsInstalled] = useState(false)\n const [showPrompt, setShowPrompt] = useState(false)\n\n useEffect(() => {\n // 检查是否已安装\n if (typeof window !== \"undefined\") {\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches\n const isIOSStandalone = (window.navigator as any).standalone === true\n \n if (isStandalone || isIOSStandalone) {\n setIsInstalled(true)\n return\n }\n }\n\n // 监听 beforeinstallprompt 事件\n const handleBeforeInstallPrompt = (e: Event) => {\n e.preventDefault()\n setDeferredPrompt(e)\n setIsInstallable(true)\n \n // 延迟显示提示(给用户一些时间浏览应用)\n setTimeout(() => {\n const hasSeenPrompt = localStorage.getItem('pwa-install-prompt-seen')\n if (!hasSeenPrompt) {\n setShowPrompt(true)\n }\n }, 30000) // 30秒后显示\n }\n\n // 监听安装完成事件\n const handleAppInstalled = () => {\n setIsInstalled(true)\n setShowPrompt(false)\n setIsInstallable(false)\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.addEventListener('appinstalled', handleAppInstalled)\n\n return () => {\n window.removeEventListener('beforeinstallprompt', handleBeforeInstallPrompt)\n window.removeEventListener('appinstalled', handleAppInstalled)\n }\n }\n }, [])\n\n const handleInstallClick = async () => {\n if (!deferredPrompt) return\n\n // 显示安装提示\n deferredPrompt.prompt()\n\n // 等待用户响应\n const { outcome } = await deferredPrompt.userChoice\n \n if (outcome === 'accepted') {\n console.log('用户接受了安装')\n } else {\n console.log('用户拒绝了安装')\n }\n\n setDeferredPrompt(null)\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n const handleDismiss = () => {\n setShowPrompt(false)\n localStorage.setItem('pwa-install-prompt-seen', 'true')\n }\n\n if (isInstalled) {\n return null\n }\n\n if (!isInstallable) {\n return null\n }\n\n return (\n <>\n {/* 浮动安装提示 */}\n {showPrompt && (\n
\n \n \n
\n
\n \n 安装应用\n
\n \n \n \n
\n \n 将家谱应用添加到主屏幕,随时随地访问\n \n
\n \n \n \n 立即安装\n \n \n
\n
\n )}\n\n {/* 设置页面的安装按钮 */}\n {!showPrompt && (\n \n \n \n 将应用安装到设备\n \n \n \n )}\n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;;;;;;;AAQO,SAAS;IACd,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,IAAA,uYAAQ,EAAM;IAC1D,MAAM,CAAC,eAAe,iBAAiB,GAAG,IAAA,uYAAQ,EAAC;IACnD,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAC/C,MAAM,CAAC,YAAY,cAAc,GAAG,IAAA,uYAAQ,EAAC;IAE7C,IAAA,wYAAS,EAAC;QACR,UAAU;QACV;;QAUA,4BAA4B;QAC5B,MAAM,4BAA4B,CAAC;YACjC,EAAE,cAAc;YAChB,kBAAkB;YAClB,iBAAiB;YAEjB,sBAAsB;YACtB,WAAW;gBACT,MAAM,gBAAgB,aAAa,OAAO,CAAC;gBAC3C,IAAI,CAAC,eAAe;oBAClB,cAAc;gBAChB;YACF,GAAG,QAAO,SAAS;QACrB;QAEA,WAAW;QACX,MAAM,qBAAqB;YACzB,eAAe;YACf,cAAc;YACd,iBAAiB;QACnB;QAEA;;IASF,GAAG,EAAE;IAEL,MAAM,qBAAqB;QACzB,IAAI,CAAC,gBAAgB;QAErB,SAAS;QACT,eAAe,MAAM;QAErB,SAAS;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,UAAU;QAEnD,IAAI,YAAY,YAAY;YAC1B,QAAQ,GAAG,CAAC;QACd,OAAO;YACL,QAAQ,GAAG,CAAC;QACd;QAEA,kBAAkB;QAClB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,MAAM,gBAAgB;QACpB,cAAc;QACd,aAAa,OAAO,CAAC,2BAA2B;IAClD;IAEA,IAAI,aAAa;QACf,OAAO;IACT;IAEA,IAAI,CAAC,eAAe;QAClB,OAAO;IACT;IAEA,qBACE;;YAEG,4BACC,oaAAC;gBAAI,WAAU;0BACb,cAAA,oaAAC,wLAAI;oBAAC,WAAU;;sCACd,oaAAC,8LAAU;4BAAC,WAAU;;8CACpB,oaAAC;oCAAI,WAAU;;sDACb,oaAAC;4CAAI,WAAU;;8DACb,oaAAC,uWAAU;oDAAC,WAAU;;;;;;8DACtB,oaAAC,6LAAS;oDAAC,WAAU;8DAAY;;;;;;;;;;;;sDAEnC,oaAAC,4LAAM;4CACL,SAAQ;4CACR,MAAK;4CACL,WAAU;4CACV,SAAS;sDAET,cAAA,oaAAC,4UAAC;gDAAC,WAAU;;;;;;;;;;;;;;;;;8CAGjB,oaAAC,mMAAe;oCAAC,WAAU;8CAAU;;;;;;;;;;;;sCAIvC,oaAAC,+LAAW;4BAAC,WAAU;sCACrB,cAAA,oaAAC,4LAAM;gCACL,SAAS;gCACT,WAAU;gCACV,MAAK;;kDAEL,oaAAC,iWAAQ;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;;;;;;;;;;;;;;;;;YAS9C,CAAC,4BACA,oaAAC,0LAAK;gBAAC,WAAU;gBAAqD,SAAS;;kCAC7E,oaAAC,iWAAQ;wBAAC,WAAU;;;;;;kCACpB,oaAAC,qMAAgB;wBAAC,WAAU;;0CAC1B,oaAAC;0CAAK;;;;;;0CACN,oaAAC,4LAAM;gCAAC,MAAK;gCAAK,SAAQ;0CAAU;;;;;;;;;;;;;;;;;;;;AAQhD"}}, + {"offset": {"line": 843, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect } from \"react\"\nimport { registerServiceWorker } from \"@/lib/register-sw\"\nimport { PWAInstaller } from \"./pwa-installer\"\n\nexport function PWAProvider({ children }: { children: React.ReactNode }) {\n useEffect(() => {\n registerServiceWorker()\n }, [])\n\n return (\n <>\n {children}\n \n \n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AAJA;;;;;AAMO,SAAS,YAAY,EAAE,QAAQ,EAAiC;IACrE,IAAA,wYAAS,EAAC;QACR,IAAA,qMAAqB;IACvB,GAAG,EAAE;IAEL,qBACE;;YACG;0BACD,oaAAC,6MAAY;;;;;;;AAGnB"}}, + {"offset": {"line": 875, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport { SessionProvider as NextAuthSessionProvider } from \"next-auth/react\"\n\nexport function SessionProvider({ children }: { children: React.ReactNode }) {\n return {children}\n}\n"],"names":[],"mappings":";;;;;AAEA;AAFA;;;AAIO,SAAS,gBAAgB,EAAE,QAAQ,EAAiC;IACzE,qBAAO,oaAAC,scAAuB;kBAAE;;;;;;AACnC"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/a0629__pnpm_060aad02._.js b/.next/dev/server/chunks/ssr/a0629__pnpm_060aad02._.js new file mode 100644 index 00000000..2ae7b97e --- /dev/null +++ b/.next/dev/server/chunks/ssr/a0629__pnpm_060aad02._.js @@ -0,0 +1,10910 @@ +module.exports = [ +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>BookOpen +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const BookOpen = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("BookOpen", [ + [ + "path", + { + d: "M12 7v14", + key: "1akyts" + } + ], + [ + "path", + { + d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z", + key: "ruj8y" + } + ] +]); +; + //# sourceMappingURL=book-open.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "BookOpen", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Search +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Search = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Search", [ + [ + "circle", + { + cx: "11", + cy: "11", + r: "8", + key: "4ej97u" + } + ], + [ + "path", + { + d: "m21 21-4.3-4.3", + key: "1qie3q" + } + ] +]); +; + //# sourceMappingURL=search.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Search", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Bell +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Bell = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Bell", [ + [ + "path", + { + d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9", + key: "1qo2s2" + } + ], + [ + "path", + { + d: "M10.3 21a1.94 1.94 0 0 0 3.4 0", + key: "qgo35s" + } + ] +]); +; + //# sourceMappingURL=bell.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Bell", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Settings +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Settings = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Settings", [ + [ + "path", + { + d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z", + key: "1qme2f" + } + ], + [ + "circle", + { + cx: "12", + cy: "12", + r: "3", + key: "1v7zrd" + } + ] +]); +; + //# sourceMappingURL=settings.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Settings", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>LogOut +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const LogOut = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("LogOut", [ + [ + "path", + { + d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", + key: "1uf3rs" + } + ], + [ + "polyline", + { + points: "16 17 21 12 16 7", + key: "1gabdz" + } + ], + [ + "line", + { + x1: "21", + x2: "9", + y1: "12", + y2: "12", + key: "1uyos4" + } + ] +]); +; + //# sourceMappingURL=log-out.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "LogOut", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>User +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const User = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("User", [ + [ + "path", + { + d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", + key: "975kel" + } + ], + [ + "circle", + { + cx: "12", + cy: "7", + r: "4", + key: "17ys0d" + } + ] +]); +; + //# sourceMappingURL=user.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "User", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ChevronDown +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ChevronDown = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ChevronDown", [ + [ + "path", + { + d: "m6 9 6 6 6-6", + key: "qrunsl" + } + ] +]); +; + //# sourceMappingURL=chevron-down.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronDown", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Plus +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Plus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Plus", [ + [ + "path", + { + d: "M5 12h14", + key: "1ays0h" + } + ], + [ + "path", + { + d: "M12 5v14", + key: "s699le" + } + ] +]); +; + //# sourceMappingURL=plus.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Plus", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Trash2 +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Trash2 = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Trash2", [ + [ + "path", + { + d: "M3 6h18", + key: "d0wm0j" + } + ], + [ + "path", + { + d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", + key: "4alrt4" + } + ], + [ + "path", + { + d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", + key: "v07s0e" + } + ], + [ + "line", + { + x1: "10", + x2: "10", + y1: "11", + y2: "17", + key: "1uufr5" + } + ], + [ + "line", + { + x1: "14", + x2: "14", + y1: "11", + y2: "17", + key: "xtxkd" + } + ] +]); +; + //# sourceMappingURL=trash-2.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Trash2", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Check +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Check = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Check", [ + [ + "path", + { + d: "M20 6 9 17l-5-5", + key: "1gmf2c" + } + ] +]); +; + //# sourceMappingURL=check.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CheckIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ChevronRight +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ChevronRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ChevronRight", [ + [ + "path", + { + d: "m9 18 6-6-6-6", + key: "mthhwq" + } + ] +]); +; + //# sourceMappingURL=chevron-right.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronRightIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Circle +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Circle = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Circle", [ + [ + "circle", + { + cx: "12", + cy: "12", + r: "10", + key: "1mglay" + } + ] +]); +; + //# sourceMappingURL=circle.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CircleIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Upload +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Upload = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Upload", [ + [ + "path", + { + d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", + key: "ih7n3h" + } + ], + [ + "polyline", + { + points: "17 8 12 3 7 8", + key: "t8dd8p" + } + ], + [ + "line", + { + x1: "12", + x2: "12", + y1: "3", + y2: "15", + key: "widbto" + } + ] +]); +; + //# sourceMappingURL=upload.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Upload", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$upload$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$upload$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/triangle-alert.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>TriangleAlert +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const TriangleAlert = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("TriangleAlert", [ + [ + "path", + { + d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3", + key: "wmoenq" + } + ], + [ + "path", + { + d: "M12 9v4", + key: "juzpu7" + } + ], + [ + "path", + { + d: "M12 17h.01", + key: "p32p05" + } + ] +]); +; + //# sourceMappingURL=triangle-alert.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/triangle-alert.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "AlertTriangle", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$triangle$2d$alert$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$triangle$2d$alert$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/triangle-alert.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/file-text.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>FileText +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const FileText = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("FileText", [ + [ + "path", + { + d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", + key: "1rqfz7" + } + ], + [ + "path", + { + d: "M14 2v4a2 2 0 0 0 2 2h4", + key: "tnqrlb" + } + ], + [ + "path", + { + d: "M10 9H8", + key: "b1mrlr" + } + ], + [ + "path", + { + d: "M16 13H8", + key: "t4e002" + } + ], + [ + "path", + { + d: "M16 17H8", + key: "z1uh3a" + } + ] +]); +; + //# sourceMappingURL=file-text.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/file-text.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "FileText", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$file$2d$text$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$file$2d$text$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/file-text.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/database.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Database +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Database = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Database", [ + [ + "ellipse", + { + cx: "12", + cy: "5", + rx: "9", + ry: "3", + key: "msslwz" + } + ], + [ + "path", + { + d: "M3 5V19A9 3 0 0 0 21 19V5", + key: "1wlel7" + } + ], + [ + "path", + { + d: "M3 12A9 3 0 0 0 21 12", + key: "mv7ke4" + } + ] +]); +; + //# sourceMappingURL=database.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/database.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Database", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$database$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$database$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/database.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/history.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>History +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const History = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("History", [ + [ + "path", + { + d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", + key: "1357e3" + } + ], + [ + "path", + { + d: "M3 3v5h5", + key: "1xhq8a" + } + ], + [ + "path", + { + d: "M12 7v5l4 2", + key: "1fdv2h" + } + ] +]); +; + //# sourceMappingURL=history.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/history.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "History", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$history$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$history$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/history.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/refresh-cw.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>RefreshCw +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const RefreshCw = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("RefreshCw", [ + [ + "path", + { + d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", + key: "v9h5vc" + } + ], + [ + "path", + { + d: "M21 3v5h-5", + key: "1q7to0" + } + ], + [ + "path", + { + d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", + key: "3uifl3" + } + ], + [ + "path", + { + d: "M8 16H3v5", + key: "1cv678" + } + ] +]); +; + //# sourceMappingURL=refresh-cw.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/refresh-cw.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "RefreshCw", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$refresh$2d$cw$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$refresh$2d$cw$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/refresh-cw.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/image.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Image +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Image = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Image", [ + [ + "rect", + { + width: "18", + height: "18", + x: "3", + y: "3", + rx: "2", + ry: "2", + key: "1m3agn" + } + ], + [ + "circle", + { + cx: "9", + cy: "9", + r: "2", + key: "af1f0g" + } + ], + [ + "path", + { + d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", + key: "1xmnt7" + } + ] +]); +; + //# sourceMappingURL=image.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/image.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Image", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$image$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$image$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/image.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/lock.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Lock +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Lock = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Lock", [ + [ + "rect", + { + width: "18", + height: "11", + x: "3", + y: "11", + rx: "2", + ry: "2", + key: "1w4ew1" + } + ], + [ + "path", + { + d: "M7 11V7a5 5 0 0 1 10 0v4", + key: "fwvmzm" + } + ] +]); +; + //# sourceMappingURL=lock.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/lock.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Lock", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$lock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$lock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/lock.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-check.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>CircleCheck +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const CircleCheck = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("CircleCheck", [ + [ + "circle", + { + cx: "12", + cy: "12", + r: "10", + key: "1mglay" + } + ], + [ + "path", + { + d: "m9 12 2 2 4-4", + key: "dzmm74" + } + ] +]); +; + //# sourceMappingURL=circle-check.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-check.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CheckCircle2", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-check.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/context/src/createContext.tsx +__turbopack_context__.s([ + "createContext", + ()=>createContext2, + "createContextScope", + ()=>createContextScope +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +; +; +function createContext2(rootComponentName, defaultContext) { + const Context = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"](defaultContext); + const Provider = (props)=>{ + const { children, ...context } = props; + const value = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"](()=>context, Object.values(context)); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(Context.Provider, { + value, + children + }); + }; + Provider.displayName = rootComponentName + "Provider"; + function useContext2(consumerName) { + const context = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](Context); + if (context) return context; + if (defaultContext !== void 0) return defaultContext; + throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); + } + return [ + Provider, + useContext2 + ]; +} +function createContextScope(scopeName, createContextScopeDeps = []) { + let defaultContexts = []; + function createContext3(rootComponentName, defaultContext) { + const BaseContext = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"](defaultContext); + const index = defaultContexts.length; + defaultContexts = [ + ...defaultContexts, + defaultContext + ]; + const Provider = (props)=>{ + const { scope, children, ...context } = props; + const Context = scope?.[scopeName]?.[index] || BaseContext; + const value = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"](()=>context, Object.values(context)); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(Context.Provider, { + value, + children + }); + }; + Provider.displayName = rootComponentName + "Provider"; + function useContext2(consumerName, scope) { + const Context = scope?.[scopeName]?.[index] || BaseContext; + const context = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](Context); + if (context) return context; + if (defaultContext !== void 0) return defaultContext; + throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); + } + return [ + Provider, + useContext2 + ]; + } + const createScope = ()=>{ + const scopeContexts = defaultContexts.map((defaultContext)=>{ + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"](defaultContext); + }); + return function useScope(scope) { + const contexts = scope?.[scopeName] || scopeContexts; + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"](()=>({ + [`__scope${scopeName}`]: { + ...scope, + [scopeName]: contexts + } + }), [ + scope, + contexts + ]); + }; + }; + createScope.scopeName = scopeName; + return [ + createContext3, + composeContextScopes(createScope, ...createContextScopeDeps) + ]; +} +function composeContextScopes(...scopes) { + const baseScope = scopes[0]; + if (scopes.length === 1) return baseScope; + const createScope = ()=>{ + const scopeHooks = scopes.map((createScope2)=>({ + useScope: createScope2(), + scopeName: createScope2.scopeName + })); + return function useComposedScopes(overrideScopes) { + const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName })=>{ + const scopeProps = useScope(overrideScopes); + const currentScope = scopeProps[`__scope${scopeName}`]; + return { + ...nextScopes2, + ...currentScope + }; + }, {}); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"](()=>({ + [`__scope${baseScope.scopeName}`]: nextScopes + }), [ + nextScopes + ]); + }; + }; + createScope.scopeName = baseScope.scopeName; + return createScope; +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/use-callback-ref/src/useCallbackRef.tsx +__turbopack_context__.s([ + "useCallbackRef", + ()=>useCallbackRef +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +; +function useCallbackRef(callback) { + const callbackRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](callback); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + callbackRef.current = callback; + }); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"](()=>(...args)=>callbackRef.current?.(...args), []); +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/use-layout-effect/src/useLayoutEffect.tsx +__turbopack_context__.s([ + "useLayoutEffect", + ()=>useLayoutEffect2 +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +; +var useLayoutEffect2 = Boolean(globalThis?.document) ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"] : ()=>{}; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-primitive@2.0.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+rea_4f53963f71a6eb8b0116fe0dd1078946/node_modules/@radix-ui/react-primitive/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/primitive/src/Primitive.tsx +__turbopack_context__.s([ + "Primitive", + ()=>Primitive, + "Root", + ()=>Root, + "dispatchDiscreteCustomEvent", + ()=>dispatchDiscreteCustomEvent +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$dom$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +; +; +; +; +var NODES = [ + "a", + "button", + "div", + "form", + "h2", + "h3", + "img", + "input", + "label", + "li", + "nav", + "ol", + "p", + "span", + "svg", + "ul" +]; +var Primitive = NODES.reduce((primitive, node)=>{ + const Node = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { asChild, ...primitiveProps } = props; + const Comp = asChild ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"] : node; + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(Comp, { + ...primitiveProps, + ref: forwardedRef + }); + }); + Node.displayName = `Primitive.${node}`; + return { + ...primitive, + [node]: Node + }; +}, {}); +function dispatchDiscreteCustomEvent(target, event) { + if (target) __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$dom$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["flushSync"](()=>target.dispatchEvent(event)); +} +var Root = Primitive; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-avatar@1.1.2_@types+react-dom@19.2.3_@types+react@19.2.6__@types+react@_3ee3dafa662d71951c1a3d5b289c96d1/node_modules/@radix-ui/react-avatar/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Avatar", + ()=>Avatar, + "AvatarFallback", + ()=>AvatarFallback, + "AvatarImage", + ()=>AvatarImage, + "Fallback", + ()=>Fallback, + "Image", + ()=>Image, + "Root", + ()=>Root, + "createAvatarScope", + ()=>createAvatarScope +]); +// packages/react/avatar/src/Avatar.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-primitive@2.0.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+rea_4f53963f71a6eb8b0116fe0dd1078946/node_modules/@radix-ui/react-primitive/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +; +var AVATAR_NAME = "Avatar"; +var [createAvatarContext, createAvatarScope] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContextScope"])(AVATAR_NAME); +var [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME); +var Avatar = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, ...avatarProps } = props; + const [imageLoadingStatus, setImageLoadingStatus] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"]("idle"); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(AvatarProvider, { + scope: __scopeAvatar, + imageLoadingStatus, + onImageLoadingStatusChange: setImageLoadingStatus, + children: /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].span, { + ...avatarProps, + ref: forwardedRef + }) + }); +}); +Avatar.displayName = AVATAR_NAME; +var IMAGE_NAME = "AvatarImage"; +var AvatarImage = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, src, onLoadingStatusChange = ()=>{}, ...imageProps } = props; + const context = useAvatarContext(IMAGE_NAME, __scopeAvatar); + const imageLoadingStatus = useImageLoadingStatus(src, imageProps.referrerPolicy); + const handleLoadingStatusChange = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])((status)=>{ + onLoadingStatusChange(status); + context.onImageLoadingStatusChange(status); + }); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{ + if (imageLoadingStatus !== "idle") { + handleLoadingStatusChange(imageLoadingStatus); + } + }, [ + imageLoadingStatus, + handleLoadingStatusChange + ]); + return imageLoadingStatus === "loaded" ? /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].img, { + ...imageProps, + ref: forwardedRef, + src + }) : null; +}); +AvatarImage.displayName = IMAGE_NAME; +var FALLBACK_NAME = "AvatarFallback"; +var AvatarFallback = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, delayMs, ...fallbackProps } = props; + const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar); + const [canRender, setCanRender] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"](delayMs === void 0); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (delayMs !== void 0) { + const timerId = window.setTimeout(()=>setCanRender(true), delayMs); + return ()=>window.clearTimeout(timerId); + } + }, [ + delayMs + ]); + return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].span, { + ...fallbackProps, + ref: forwardedRef + }) : null; +}); +AvatarFallback.displayName = FALLBACK_NAME; +function useImageLoadingStatus(src, referrerPolicy) { + const [loadingStatus, setLoadingStatus] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"]("idle"); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{ + if (!src) { + setLoadingStatus("error"); + return; + } + let isMounted = true; + const image = new window.Image(); + const updateStatus = (status)=>()=>{ + if (!isMounted) return; + setLoadingStatus(status); + }; + setLoadingStatus("loading"); + image.onload = updateStatus("loaded"); + image.onerror = updateStatus("error"); + image.src = src; + if (referrerPolicy) { + image.referrerPolicy = referrerPolicy; + } + return ()=>{ + isMounted = false; + }; + }, [ + src, + referrerPolicy + ]); + return loadingStatus; +} +var Root = Avatar; +var Image = AvatarImage; +var Fallback = AvatarFallback; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/core/primitive/src/primitive.tsx +__turbopack_context__.s([ + "composeEventHandlers", + ()=>composeEventHandlers +]); +function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { + return function handleEvent(event) { + originalEventHandler?.(event); + if (checkForDefaultPrevented === false || !event.defaultPrevented) { + return ourEventHandler?.(event); + } + }; +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/use-controllable-state/src/useControllableState.tsx +__turbopack_context__.s([ + "useControllableState", + ()=>useControllableState +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +; +; +function useControllableState({ prop, defaultProp, onChange = ()=>{} }) { + const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ + defaultProp, + onChange + }); + const isControlled = prop !== void 0; + const value = isControlled ? prop : uncontrolledProp; + const handleChange = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onChange); + const setValue = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"]((nextValue)=>{ + if (isControlled) { + const setter = nextValue; + const value2 = typeof nextValue === "function" ? setter(prop) : nextValue; + if (value2 !== prop) handleChange(value2); + } else { + setUncontrolledProp(nextValue); + } + }, [ + isControlled, + prop, + setUncontrolledProp, + handleChange + ]); + return [ + value, + setValue + ]; +} +function useUncontrolledState({ defaultProp, onChange }) { + const uncontrolledState = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"](defaultProp); + const [value] = uncontrolledState; + const prevValueRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](value); + const handleChange = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onChange); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (prevValueRef.current !== value) { + handleChange(value); + prevValueRef.current = value; + } + }, [ + value, + prevValueRef, + handleChange + ]); + return uncontrolledState; +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-collection@1.1.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+re_1ad17166111274b6b451c5ad4817bfc8/node_modules/@radix-ui/react-collection/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "createCollection", + ()=>createCollection +]); +// packages/react/collection/src/Collection.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +function createCollection(name) { + const PROVIDER_NAME = name + "CollectionProvider"; + const [createCollectionContext, createCollectionScope] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContextScope"])(PROVIDER_NAME); + const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { + collectionRef: { + current: null + }, + itemMap: /* @__PURE__ */ new Map() + }); + const CollectionProvider = (props)=>{ + const { scope, children } = props; + const ref = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(null); + const itemMap = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(/* @__PURE__ */ new Map()).current; + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(CollectionProviderImpl, { + scope, + itemMap, + collectionRef: ref, + children + }); + }; + CollectionProvider.displayName = PROVIDER_NAME; + const COLLECTION_SLOT_NAME = name + "CollectionSlot"; + const CollectionSlot = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].forwardRef((props, forwardedRef)=>{ + const { scope, children } = props; + const context = useCollectionContext(COLLECTION_SLOT_NAME, scope); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, context.collectionRef); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"], { + ref: composedRefs, + children + }); + }); + CollectionSlot.displayName = COLLECTION_SLOT_NAME; + const ITEM_SLOT_NAME = name + "CollectionItemSlot"; + const ITEM_DATA_ATTR = "data-radix-collection-item"; + const CollectionItemSlot = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].forwardRef((props, forwardedRef)=>{ + const { scope, children, ...itemData } = props; + const ref = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(null); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, ref); + const context = useCollectionContext(ITEM_SLOT_NAME, scope); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useEffect(()=>{ + context.itemMap.set(ref, { + ref, + ...itemData + }); + return ()=>void context.itemMap.delete(ref); + }); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"], { + ...{ + [ITEM_DATA_ATTR]: "" + }, + ref: composedRefs, + children + }); + }); + CollectionItemSlot.displayName = ITEM_SLOT_NAME; + function useCollection(scope) { + const context = useCollectionContext(name + "CollectionConsumer", scope); + const getItems = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useCallback(()=>{ + const collectionNode = context.collectionRef.current; + if (!collectionNode) return []; + const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)); + const items = Array.from(context.itemMap.values()); + const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)); + return orderedItems; + }, [ + context.collectionRef, + context.itemMap + ]); + return getItems; + } + return [ + { + Provider: CollectionProvider, + Slot: CollectionSlot, + ItemSlot: CollectionItemSlot + }, + useCollection, + createCollectionScope + ]; +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-direction/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/direction/src/Direction.tsx +__turbopack_context__.s([ + "DirectionProvider", + ()=>DirectionProvider, + "Provider", + ()=>Provider, + "useDirection", + ()=>useDirection +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +; +; +var DirectionContext = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"](void 0); +var DirectionProvider = (props)=>{ + const { dir, children } = props; + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(DirectionContext.Provider, { + value: dir, + children + }); +}; +function useDirection(localDir) { + const globalDir = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](DirectionContext); + return localDir || globalDir || "ltr"; +} +var Provider = DirectionProvider; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx +__turbopack_context__.s([ + "useEscapeKeydown", + ()=>useEscapeKeydown +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +; +; +function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { + const onEscapeKeyDown = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onEscapeKeyDownProp); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const handleKeyDown = (event)=>{ + if (event.key === "Escape") { + onEscapeKeyDown(event); + } + }; + ownerDocument.addEventListener("keydown", handleKeyDown, { + capture: true + }); + return ()=>ownerDocument.removeEventListener("keydown", handleKeyDown, { + capture: true + }); + }, [ + onEscapeKeyDown, + ownerDocument + ]); +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.3_@types+react-dom@19.2.3_@types+react@19.2.6__@t_93e149627c30a83695c926d31c853576/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Branch", + ()=>Branch, + "DismissableLayer", + ()=>DismissableLayer, + "DismissableLayerBranch", + ()=>DismissableLayerBranch, + "Root", + ()=>Root +]); +// packages/react/dismissable-layer/src/DismissableLayer.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$primitive$40$1$2e$1$2e$1$2f$node_modules$2f40$radix$2d$ui$2f$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-primitive@2.0.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+rea_4f53963f71a6eb8b0116fe0dd1078946/node_modules/@radix-ui/react-primitive/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$escape$2d$keydown$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$escape$2d$keydown$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +; +; +var DISMISSABLE_LAYER_NAME = "DismissableLayer"; +var CONTEXT_UPDATE = "dismissableLayer.update"; +var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside"; +var FOCUS_OUTSIDE = "dismissableLayer.focusOutside"; +var originalBodyPointerEvents; +var DismissableLayerContext = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"]({ + layers: /* @__PURE__ */ new Set(), + layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(), + branches: /* @__PURE__ */ new Set() +}); +var DismissableLayer = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props; + const context = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](DismissableLayerContext); + const [node, setNode] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"](null); + const ownerDocument = node?.ownerDocument ?? globalThis?.document; + const [, force] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"]({}); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, (node2)=>setNode(node2)); + const layers = Array.from(context.layers); + const [highestLayerWithOutsidePointerEventsDisabled] = [ + ...context.layersWithOutsidePointerEventsDisabled + ].slice(-1); + const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); + const index = node ? layers.indexOf(node) : -1; + const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0; + const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex; + const pointerDownOutside = usePointerDownOutside((event)=>{ + const target = event.target; + const isPointerDownOnBranch = [ + ...context.branches + ].some((branch)=>branch.contains(target)); + if (!isPointerEventsEnabled || isPointerDownOnBranch) return; + onPointerDownOutside?.(event); + onInteractOutside?.(event); + if (!event.defaultPrevented) onDismiss?.(); + }, ownerDocument); + const focusOutside = useFocusOutside((event)=>{ + const target = event.target; + const isFocusInBranch = [ + ...context.branches + ].some((branch)=>branch.contains(target)); + if (isFocusInBranch) return; + onFocusOutside?.(event); + onInteractOutside?.(event); + if (!event.defaultPrevented) onDismiss?.(); + }, ownerDocument); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$escape$2d$keydown$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$escape$2d$keydown$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEscapeKeydown"])((event)=>{ + const isHighestLayer = index === context.layers.size - 1; + if (!isHighestLayer) return; + onEscapeKeyDown?.(event); + if (!event.defaultPrevented && onDismiss) { + event.preventDefault(); + onDismiss(); + } + }, ownerDocument); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (!node) return; + if (disableOutsidePointerEvents) { + if (context.layersWithOutsidePointerEventsDisabled.size === 0) { + originalBodyPointerEvents = ownerDocument.body.style.pointerEvents; + ownerDocument.body.style.pointerEvents = "none"; + } + context.layersWithOutsidePointerEventsDisabled.add(node); + } + context.layers.add(node); + dispatchUpdate(); + return ()=>{ + if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) { + ownerDocument.body.style.pointerEvents = originalBodyPointerEvents; + } + }; + }, [ + node, + ownerDocument, + disableOutsidePointerEvents, + context + ]); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + return ()=>{ + if (!node) return; + context.layers.delete(node); + context.layersWithOutsidePointerEventsDisabled.delete(node); + dispatchUpdate(); + }; + }, [ + node, + context + ]); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const handleUpdate = ()=>force({}); + document.addEventListener(CONTEXT_UPDATE, handleUpdate); + return ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate); + }, []); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].div, { + ...layerProps, + ref: composedRefs, + style: { + pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0, + ...props.style + }, + onFocusCapture: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$primitive$40$1$2e$1$2e$1$2f$node_modules$2f40$radix$2d$ui$2f$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["composeEventHandlers"])(props.onFocusCapture, focusOutside.onFocusCapture), + onBlurCapture: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$primitive$40$1$2e$1$2e$1$2f$node_modules$2f40$radix$2d$ui$2f$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["composeEventHandlers"])(props.onBlurCapture, focusOutside.onBlurCapture), + onPointerDownCapture: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$primitive$40$1$2e$1$2e$1$2f$node_modules$2f40$radix$2d$ui$2f$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["composeEventHandlers"])(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture) + }); +}); +DismissableLayer.displayName = DISMISSABLE_LAYER_NAME; +var BRANCH_NAME = "DismissableLayerBranch"; +var DismissableLayerBranch = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const context = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](DismissableLayerContext); + const ref = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](null); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, ref); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const node = ref.current; + if (node) { + context.branches.add(node); + return ()=>{ + context.branches.delete(node); + }; + } + }, [ + context.branches + ]); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].div, { + ...props, + ref: composedRefs + }); +}); +DismissableLayerBranch.displayName = BRANCH_NAME; +function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) { + const handlePointerDownOutside = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onPointerDownOutside); + const isPointerInsideReactTreeRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](false); + const handleClickRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](()=>{}); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const handlePointerDown = (event)=>{ + if (event.target && !isPointerInsideReactTreeRef.current) { + let handleAndDispatchPointerDownOutsideEvent2 = function() { + handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, { + discrete: true + }); + }; + var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2; + const eventDetail = { + originalEvent: event + }; + if (event.pointerType === "touch") { + ownerDocument.removeEventListener("click", handleClickRef.current); + handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2; + ownerDocument.addEventListener("click", handleClickRef.current, { + once: true + }); + } else { + handleAndDispatchPointerDownOutsideEvent2(); + } + } else { + ownerDocument.removeEventListener("click", handleClickRef.current); + } + isPointerInsideReactTreeRef.current = false; + }; + const timerId = window.setTimeout(()=>{ + ownerDocument.addEventListener("pointerdown", handlePointerDown); + }, 0); + return ()=>{ + window.clearTimeout(timerId); + ownerDocument.removeEventListener("pointerdown", handlePointerDown); + ownerDocument.removeEventListener("click", handleClickRef.current); + }; + }, [ + ownerDocument, + handlePointerDownOutside + ]); + return { + // ensures we check React component tree (not just DOM tree) + onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true + }; +} +function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) { + const handleFocusOutside = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onFocusOutside); + const isFocusInsideReactTreeRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](false); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const handleFocus = (event)=>{ + if (event.target && !isFocusInsideReactTreeRef.current) { + const eventDetail = { + originalEvent: event + }; + handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, { + discrete: false + }); + } + }; + ownerDocument.addEventListener("focusin", handleFocus); + return ()=>ownerDocument.removeEventListener("focusin", handleFocus); + }, [ + ownerDocument, + handleFocusOutside + ]); + return { + onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true, + onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false + }; +} +function dispatchUpdate() { + const event = new CustomEvent(CONTEXT_UPDATE); + document.dispatchEvent(event); +} +function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) { + const target = detail.originalEvent.target; + const event = new CustomEvent(name, { + bubbles: false, + cancelable: true, + detail + }); + if (handler) target.addEventListener(name, handler, { + once: true + }); + if (discrete) { + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatchDiscreteCustomEvent"])(target, event); + } else { + target.dispatchEvent(event); + } +} +var Root = DismissableLayer; +var Branch = DismissableLayerBranch; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "FocusGuards", + ()=>FocusGuards, + "Root", + ()=>Root, + "useFocusGuards", + ()=>useFocusGuards +]); +// packages/react/focus-guards/src/FocusGuards.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +"use client"; +; +var count = 0; +function FocusGuards(props) { + useFocusGuards(); + return props.children; +} +function useFocusGuards() { + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]"); + document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard()); + document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard()); + count++; + return ()=>{ + if (count === 1) { + document.querySelectorAll("[data-radix-focus-guard]").forEach((node)=>node.remove()); + } + count--; + }; + }, []); +} +function createFocusGuard() { + const element = document.createElement("span"); + element.setAttribute("data-radix-focus-guard", ""); + element.tabIndex = 0; + element.style.outline = "none"; + element.style.opacity = "0"; + element.style.position = "fixed"; + element.style.pointerEvents = "none"; + return element; +} +var Root = FocusGuards; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+r_d785daf6985fc8350fb3781de275c6b6/node_modules/@radix-ui/react-focus-scope/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "FocusScope", + ()=>FocusScope, + "Root", + ()=>Root +]); +// packages/react/focus-scope/src/FocusScope.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-primitive@2.0.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+rea_4f53963f71a6eb8b0116fe0dd1078946/node_modules/@radix-ui/react-primitive/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount"; +var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount"; +var EVENT_OPTIONS = { + bubbles: false, + cancelable: true +}; +var FOCUS_SCOPE_NAME = "FocusScope"; +var FocusScope = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props; + const [container, setContainer] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"](null); + const onMountAutoFocus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onMountAutoFocusProp); + const onUnmountAutoFocus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])(onUnmountAutoFocusProp); + const lastFocusedElementRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"](null); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, (node)=>setContainer(node)); + const focusScope = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"]({ + paused: false, + pause () { + this.paused = true; + }, + resume () { + this.paused = false; + } + }).current; + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (trapped) { + let handleFocusIn2 = function(event) { + if (focusScope.paused || !container) return; + const target = event.target; + if (container.contains(target)) { + lastFocusedElementRef.current = target; + } else { + focus(lastFocusedElementRef.current, { + select: true + }); + } + }, handleFocusOut2 = function(event) { + if (focusScope.paused || !container) return; + const relatedTarget = event.relatedTarget; + if (relatedTarget === null) return; + if (!container.contains(relatedTarget)) { + focus(lastFocusedElementRef.current, { + select: true + }); + } + }, handleMutations2 = function(mutations) { + const focusedElement = document.activeElement; + if (focusedElement !== document.body) return; + for (const mutation of mutations){ + if (mutation.removedNodes.length > 0) focus(container); + } + }; + var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2; + document.addEventListener("focusin", handleFocusIn2); + document.addEventListener("focusout", handleFocusOut2); + const mutationObserver = new MutationObserver(handleMutations2); + if (container) mutationObserver.observe(container, { + childList: true, + subtree: true + }); + return ()=>{ + document.removeEventListener("focusin", handleFocusIn2); + document.removeEventListener("focusout", handleFocusOut2); + mutationObserver.disconnect(); + }; + } + }, [ + trapped, + container, + focusScope.paused + ]); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (container) { + focusScopesStack.add(focusScope); + const previouslyFocusedElement = document.activeElement; + const hasFocusedCandidate = container.contains(previouslyFocusedElement); + if (!hasFocusedCandidate) { + const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS); + container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); + container.dispatchEvent(mountEvent); + if (!mountEvent.defaultPrevented) { + focusFirst(removeLinks(getTabbableCandidates(container)), { + select: true + }); + if (document.activeElement === previouslyFocusedElement) { + focus(container); + } + } + } + return ()=>{ + container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); + setTimeout(()=>{ + const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS); + container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); + container.dispatchEvent(unmountEvent); + if (!unmountEvent.defaultPrevented) { + focus(previouslyFocusedElement ?? document.body, { + select: true + }); + } + container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); + focusScopesStack.remove(focusScope); + }, 0); + }; + } + }, [ + container, + onMountAutoFocus, + onUnmountAutoFocus, + focusScope + ]); + const handleKeyDown = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"]((event)=>{ + if (!loop && !trapped) return; + if (focusScope.paused) return; + const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey; + const focusedElement = document.activeElement; + if (isTabKey && focusedElement) { + const container2 = event.currentTarget; + const [first, last] = getTabbableEdges(container2); + const hasTabbableElementsInside = first && last; + if (!hasTabbableElementsInside) { + if (focusedElement === container2) event.preventDefault(); + } else { + if (!event.shiftKey && focusedElement === last) { + event.preventDefault(); + if (loop) focus(first, { + select: true + }); + } else if (event.shiftKey && focusedElement === first) { + event.preventDefault(); + if (loop) focus(last, { + select: true + }); + } + } + } + }, [ + loop, + trapped, + focusScope.paused + ]); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].div, { + tabIndex: -1, + ...scopeProps, + ref: composedRefs, + onKeyDown: handleKeyDown + }); +}); +FocusScope.displayName = FOCUS_SCOPE_NAME; +function focusFirst(candidates, { select = false } = {}) { + const previouslyFocusedElement = document.activeElement; + for (const candidate of candidates){ + focus(candidate, { + select + }); + if (document.activeElement !== previouslyFocusedElement) return; + } +} +function getTabbableEdges(container) { + const candidates = getTabbableCandidates(container); + const first = findVisible(candidates, container); + const last = findVisible(candidates.reverse(), container); + return [ + first, + last + ]; +} +function getTabbableCandidates(container) { + const nodes = []; + const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, { + acceptNode: (node)=>{ + const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; + if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; + return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; + } + }); + while(walker.nextNode())nodes.push(walker.currentNode); + return nodes; +} +function findVisible(elements, container) { + for (const element of elements){ + if (!isHidden(element, { + upTo: container + })) return element; + } +} +function isHidden(node, { upTo }) { + if (getComputedStyle(node).visibility === "hidden") return true; + while(node){ + if (upTo !== void 0 && node === upTo) return false; + if (getComputedStyle(node).display === "none") return true; + node = node.parentElement; + } + return false; +} +function isSelectableInput(element) { + return element instanceof HTMLInputElement && "select" in element; +} +function focus(element, { select = false } = {}) { + if (element && element.focus) { + const previouslyFocusedElement = document.activeElement; + element.focus({ + preventScroll: true + }); + if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select(); + } +} +var focusScopesStack = createFocusScopesStack(); +function createFocusScopesStack() { + let stack = []; + return { + add (focusScope) { + const activeFocusScope = stack[0]; + if (focusScope !== activeFocusScope) { + activeFocusScope?.pause(); + } + stack = arrayRemove(stack, focusScope); + stack.unshift(focusScope); + }, + remove (focusScope) { + stack = arrayRemove(stack, focusScope); + stack[0]?.resume(); + } + }; +} +function arrayRemove(array, item) { + const updatedArray = [ + ...array + ]; + const index = updatedArray.indexOf(item); + if (index !== -1) { + updatedArray.splice(index, 1); + } + return updatedArray; +} +function removeLinks(items) { + return items.filter((item)=>item.tagName !== "A"); +} +var Root = FocusScope; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-id/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/id/src/id.tsx +__turbopack_context__.s([ + "useId", + ()=>useId +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs [app-ssr] (ecmascript)"); +; +; +var useReactId = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useId".toString()] || (()=>void 0); +var count = 0; +function useId(deterministicId) { + const [id, setId] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__.useState(useReactId()); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{ + if (!deterministicId) setId((reactId)=>reactId ?? String(count++)); + }, [ + deterministicId + ]); + return deterministicId || (id ? `radix-${id}` : ""); +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Custom positioning reference element. + * @see https://floating-ui.com/docs/virtual-elements + */ __turbopack_context__.s([ + "alignments", + ()=>alignments, + "clamp", + ()=>clamp, + "createCoords", + ()=>createCoords, + "evaluate", + ()=>evaluate, + "expandPaddingObject", + ()=>expandPaddingObject, + "floor", + ()=>floor, + "getAlignment", + ()=>getAlignment, + "getAlignmentAxis", + ()=>getAlignmentAxis, + "getAlignmentSides", + ()=>getAlignmentSides, + "getAxisLength", + ()=>getAxisLength, + "getExpandedPlacements", + ()=>getExpandedPlacements, + "getOppositeAlignmentPlacement", + ()=>getOppositeAlignmentPlacement, + "getOppositeAxis", + ()=>getOppositeAxis, + "getOppositeAxisPlacements", + ()=>getOppositeAxisPlacements, + "getOppositePlacement", + ()=>getOppositePlacement, + "getPaddingObject", + ()=>getPaddingObject, + "getSide", + ()=>getSide, + "getSideAxis", + ()=>getSideAxis, + "max", + ()=>max, + "min", + ()=>min, + "placements", + ()=>placements, + "rectToClientRect", + ()=>rectToClientRect, + "round", + ()=>round, + "sides", + ()=>sides +]); +const sides = [ + 'top', + 'right', + 'bottom', + 'left' +]; +const alignments = [ + 'start', + 'end' +]; +const placements = /*#__PURE__*/ sides.reduce((acc, side)=>acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []); +const min = Math.min; +const max = Math.max; +const round = Math.round; +const floor = Math.floor; +const createCoords = (v)=>({ + x: v, + y: v + }); +const oppositeSideMap = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' +}; +const oppositeAlignmentMap = { + start: 'end', + end: 'start' +}; +function clamp(start, value, end) { + return max(start, min(value, end)); +} +function evaluate(value, param) { + return typeof value === 'function' ? value(param) : value; +} +function getSide(placement) { + return placement.split('-')[0]; +} +function getAlignment(placement) { + return placement.split('-')[1]; +} +function getOppositeAxis(axis) { + return axis === 'x' ? 'y' : 'x'; +} +function getAxisLength(axis) { + return axis === 'y' ? 'height' : 'width'; +} +const yAxisSides = /*#__PURE__*/ new Set([ + 'top', + 'bottom' +]); +function getSideAxis(placement) { + return yAxisSides.has(getSide(placement)) ? 'y' : 'x'; +} +function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); +} +function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) { + rtl = false; + } + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top'; + if (rects.reference[length] > rects.floating[length]) { + mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + } + return [ + mainAlignmentSide, + getOppositePlacement(mainAlignmentSide) + ]; +} +function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [ + getOppositeAlignmentPlacement(placement), + oppositePlacement, + getOppositeAlignmentPlacement(oppositePlacement) + ]; +} +function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment)=>oppositeAlignmentMap[alignment]); +} +const lrPlacement = [ + 'left', + 'right' +]; +const rlPlacement = [ + 'right', + 'left' +]; +const tbPlacement = [ + 'top', + 'bottom' +]; +const btPlacement = [ + 'bottom', + 'top' +]; +function getSideList(side, isStart, rtl) { + switch(side){ + case 'top': + case 'bottom': + if (rtl) return isStart ? rlPlacement : lrPlacement; + return isStart ? lrPlacement : rlPlacement; + case 'left': + case 'right': + return isStart ? tbPlacement : btPlacement; + default: + return []; + } +} +function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === 'start', rtl); + if (alignment) { + list = list.map((side)=>side + "-" + alignment); + if (flipAlignment) { + list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + } + return list; +} +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side)=>oppositeSideMap[side]); +} +function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; +} +function getPaddingObject(padding) { + return typeof padding !== 'number' ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; +} +function rectToClientRect(rect) { + const { x, y, width, height } = rect; + return { + width, + height, + top: y, + left: x, + right: x + width, + bottom: y + height, + x, + y + }; +} +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "getComputedStyle", + ()=>getComputedStyle, + "getContainingBlock", + ()=>getContainingBlock, + "getDocumentElement", + ()=>getDocumentElement, + "getFrameElement", + ()=>getFrameElement, + "getNearestOverflowAncestor", + ()=>getNearestOverflowAncestor, + "getNodeName", + ()=>getNodeName, + "getNodeScroll", + ()=>getNodeScroll, + "getOverflowAncestors", + ()=>getOverflowAncestors, + "getParentNode", + ()=>getParentNode, + "getWindow", + ()=>getWindow, + "isContainingBlock", + ()=>isContainingBlock, + "isElement", + ()=>isElement, + "isHTMLElement", + ()=>isHTMLElement, + "isLastTraversableNode", + ()=>isLastTraversableNode, + "isNode", + ()=>isNode, + "isOverflowElement", + ()=>isOverflowElement, + "isShadowRoot", + ()=>isShadowRoot, + "isTableElement", + ()=>isTableElement, + "isTopLayer", + ()=>isTopLayer, + "isWebKit", + ()=>isWebKit +]); +function hasWindow() { + return ("TURBOPACK compile-time value", "undefined") !== 'undefined'; +} +function getNodeName(node) { + if (isNode(node)) { + return (node.nodeName || '').toLowerCase(); + } + // Mocked nodes in testing environments may not be instances of Node. By + // returning `#document` an infinite loop won't occur. + // https://github.com/floating-ui/floating-ui/issues/2317 + return '#document'; +} +function getWindow(node) { + var _node$ownerDocument; + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; +} +function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; +} +function isNode(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isElement(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isHTMLElement(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isShadowRoot(value) { + if (!hasWindow() || typeof ShadowRoot === 'undefined') { + return false; + } + //TURBOPACK unreachable + ; +} +const invalidOverflowDisplayValues = /*#__PURE__*/ new Set([ + 'inline', + 'contents' +]); +function isOverflowElement(element) { + const { overflow, overflowX, overflowY, display } = getComputedStyle(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display); +} +const tableElements = /*#__PURE__*/ new Set([ + 'table', + 'td', + 'th' +]); +function isTableElement(element) { + return tableElements.has(getNodeName(element)); +} +const topLayerSelectors = [ + ':popover-open', + ':modal' +]; +function isTopLayer(element) { + return topLayerSelectors.some((selector)=>{ + try { + return element.matches(selector); + } catch (_e) { + return false; + } + }); +} +const transformProperties = [ + 'transform', + 'translate', + 'scale', + 'rotate', + 'perspective' +]; +const willChangeValues = [ + 'transform', + 'translate', + 'scale', + 'rotate', + 'perspective', + 'filter' +]; +const containValues = [ + 'paint', + 'layout', + 'strict', + 'content' +]; +function isContainingBlock(elementOrCss) { + const webkit = isWebKit(); + const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss; + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + // https://drafts.csswg.org/css-transforms-2/#individual-transforms + return transformProperties.some((value)=>css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some((value)=>(css.willChange || '').includes(value)) || containValues.some((value)=>(css.contain || '').includes(value)); +} +function getContainingBlock(element) { + let currentNode = getParentNode(element); + while(isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)){ + if (isContainingBlock(currentNode)) { + return currentNode; + } else if (isTopLayer(currentNode)) { + return null; + } + currentNode = getParentNode(currentNode); + } + return null; +} +function isWebKit() { + if (typeof CSS === 'undefined' || !CSS.supports) return false; + return CSS.supports('-webkit-backdrop-filter', 'none'); +} +const lastTraversableNodeNames = /*#__PURE__*/ new Set([ + 'html', + 'body', + '#document' +]); +function isLastTraversableNode(node) { + return lastTraversableNodeNames.has(getNodeName(node)); +} +function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); +} +function getNodeScroll(element) { + if (isElement(element)) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + return { + scrollLeft: element.scrollX, + scrollTop: element.scrollY + }; +} +function getParentNode(node) { + if (getNodeName(node) === 'html') { + return node; + } + const result = // Step into the shadow DOM of the parent of a slotted node. + node.assignedSlot || // DOM Element detected. + node.parentNode || // ShadowRoot detected. + isShadowRoot(node) && node.host || // Fallback. + getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; +} +function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) { + return node.ownerDocument ? node.ownerDocument.body : node.body; + } + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) { + return parentNode; + } + return getNearestOverflowAncestor(parentNode); +} +function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) { + list = []; + } + if (traverseIframes === void 0) { + traverseIframes = true; + } + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + const frameElement = getFrameElement(win); + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); +} +function getFrameElement(win) { + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null; +} +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "arrow", + ()=>arrow, + "autoPlacement", + ()=>autoPlacement, + "computePosition", + ()=>computePosition, + "detectOverflow", + ()=>detectOverflow, + "flip", + ()=>flip, + "hide", + ()=>hide, + "inline", + ()=>inline, + "limitShift", + ()=>limitShift, + "offset", + ()=>offset, + "shift", + ()=>shift, + "size", + ()=>size +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)"); +; +; +function computeCoordsFromPlacement(_ref, placement, rtl) { + let { reference, floating } = _ref; + const sideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement); + const alignmentAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentAxis"])(placement); + const alignLength = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAxisLength"])(alignmentAxis); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const isVertical = sideAxis === 'y'; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch(side){ + case 'top': + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case 'bottom': + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case 'right': + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case 'left': + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: + coords = { + x: reference.x, + y: reference.y + }; + } + switch((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement)){ + case 'start': + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case 'end': + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; +} +/** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + * + * This export does not have any `platform` interface logic. You will need to + * write one for the platform you are using Floating UI with. + */ const computePosition = async (reference, floating, config)=>{ + const { placement = 'bottom', strategy = 'absolute', middleware = [], platform } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating)); + let rects = await platform.getElementRects({ + reference, + floating, + strategy + }); + let { x, y } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for(let i = 0; i < validMiddleware.length; i++){ + const { name, fn } = validMiddleware[i]; + const { x: nextX, y: nextY, data, reset } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === 'object') { + if (reset.placement) { + statefulPlacement = reset.placement; + } + if (reset.rects) { + rects = reset.rects === true ? await platform.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + } + ({ x, y } = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; +}; +/** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ async function detectOverflow(state, options) { + var _await$platform$isEle; + if (options === void 0) { + options = {}; + } + const { x, y, platform, rects, elements, strategy } = state; + const { boundary = 'clippingAncestors', rootBoundary = 'viewport', elementContext = 'floating', altBoundary = false, padding = 0 } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + const altContext = elementContext === 'floating' ? 'reference' : 'floating'; + const element = elements[altBoundary ? altContext : elementContext]; + const clippingClientRect = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(await platform.getClippingRect({ + element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === 'floating' ? { + x, + y, + width: rects.floating.width, + height: rects.floating.height + } : rects.reference; + const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)); + const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({ + elements, + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; +} +/** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ const arrow = (options)=>({ + name: 'arrow', + options, + async fn (state) { + const { x, y, placement, rects, platform, elements, middlewareData } = state; + // Since `element` is required, we don't Partial<> the type. + const { element, padding = 0 } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state) || {}; + if (element == null) { + return {}; + } + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + const coords = { + x, + y + }; + const axis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentAxis"])(placement); + const length = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAxisLength"])(axis); + const arrowDimensions = await platform.getDimensions(element); + const isYAxis = axis === 'y'; + const minProp = isYAxis ? 'top' : 'left'; + const maxProp = isYAxis ? 'bottom' : 'right'; + const clientProp = isYAxis ? 'clientHeight' : 'clientWidth'; + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length]; + const startDiff = coords[axis] - rects.reference[axis]; + const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element)); + let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; + // DOM platform can return `window` as the `offsetParent`. + if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) { + clientSize = elements.floating[clientProp] || rects.floating[length]; + } + const centerToReference = endDiff / 2 - startDiff / 2; + // If the padding is large enough that it causes the arrow to no longer be + // centered, modify the padding so that it is centered. + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1; + const minPadding = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(paddingObject[minProp], largestPossiblePadding); + const maxPadding = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(paddingObject[maxProp], largestPossiblePadding); + // Make sure the arrow doesn't overflow the floating element if the center + // point is outside the floating element's bounds. + const min$1 = minPadding; + const max = clientSize - arrowDimensions[length] - maxPadding; + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference; + const offset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min$1, center, max); + // If the reference is small enough that the arrow's padding causes it to + // to point to nothing for an aligned placement, adjust the offset of the + // floating element itself. To ensure `shift()` continues to take action, + // a single reset is performed when this is true. + const shouldAddOffset = !middlewareData.arrow && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0; + const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0; + return { + [axis]: coords[axis] + alignmentOffset, + data: { + [axis]: offset, + centerOffset: center - offset - alignmentOffset, + ...shouldAddOffset && { + alignmentOffset + } + }, + reset: shouldAddOffset + }; + } + }); +function getPlacementList(alignment, autoAlignment, allowedPlacements) { + const allowedPlacementsSortedByAlignment = alignment ? [ + ...allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) === alignment), + ...allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) !== alignment) + ] : allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === placement); + return allowedPlacementsSortedByAlignment.filter((placement)=>{ + if (alignment) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) === alignment || (autoAlignment ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAlignmentPlacement"])(placement) !== placement : false); + } + return true; + }); +} +/** + * Optimizes the visibility of the floating element by choosing the placement + * that has the most space available automatically, without needing to specify a + * preferred placement. Alternative to `flip`. + * @see https://floating-ui.com/docs/autoPlacement + */ const autoPlacement = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'autoPlacement', + options, + async fn (state) { + var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE; + const { rects, middlewareData, placement, platform, elements } = state; + const { crossAxis = false, alignment, allowedPlacements = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["placements"], autoAlignment = true, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const placements$1 = alignment !== undefined || allowedPlacements === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["placements"] ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements; + const overflow = await detectOverflow(state, detectOverflowOptions); + const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0; + const currentPlacement = placements$1[currentIndex]; + if (currentPlacement == null) { + return {}; + } + const alignmentSides = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentSides"])(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); + // Make `computeCoords` start from the right place. + if (placement !== currentPlacement) { + return { + reset: { + placement: placements$1[0] + } + }; + } + const currentOverflows = [ + overflow[(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(currentPlacement)], + overflow[alignmentSides[0]], + overflow[alignmentSides[1]] + ]; + const allOverflows = [ + ...((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || [], + { + placement: currentPlacement, + overflows: currentOverflows + } + ]; + const nextPlacement = placements$1[currentIndex + 1]; + // There are more placements to check. + if (nextPlacement) { + return { + data: { + index: currentIndex + 1, + overflows: allOverflows + }, + reset: { + placement: nextPlacement + } + }; + } + const placementsSortedByMostSpace = allOverflows.map((d)=>{ + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(d.placement); + return [ + d.placement, + alignment && crossAxis ? // Check along the mainAxis and main crossAxis side. + d.overflows.slice(0, 2).reduce((acc, v)=>acc + v, 0) : // Check only the mainAxis. + d.overflows[0], + d.overflows + ]; + }).sort((a, b)=>a[1] - b[1]); + const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter((d)=>d[2].slice(0, // Aligned placements should not check their opposite crossAxis + // side. + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(d[0]) ? 2 : 3).every((v)=>v <= 0)); + const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0]; + if (resetPlacement !== placement) { + return { + data: { + index: currentIndex + 1, + overflows: allOverflows + }, + reset: { + placement: resetPlacement + } + }; + } + return {}; + } + }; +}; +/** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ const flip = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'flip', + options, + async fn (state) { + var _middlewareData$arrow, _middlewareData$flip; + const { placement, middlewareData, rects, initialPlacement, platform, elements } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true, fallbackPlacements: specifiedFallbackPlacements, fallbackStrategy = 'bestFit', fallbackAxisSideDirection = 'none', flipAlignment = true, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + // If a reset by the arrow was caused due to an alignment offset being + // added, we should skip any logic now since `flip()` has already done its + // work. + // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643 + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const initialSideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(initialPlacement); + const isBasePlacement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(initialPlacement) === initialPlacement; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositePlacement"])(initialPlacement) + ] : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getExpandedPlacements"])(initialPlacement)); + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none'; + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) { + fallbackPlacements.push(...(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxisPlacements"])(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + } + const placements = [ + initialPlacement, + ...fallbackPlacements + ]; + const overflow = await detectOverflow(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) { + overflows.push(overflow[side]); + } + if (checkCrossAxis) { + const sides = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentSides"])(placement, rects, rtl); + overflows.push(overflow[sides[0]], overflow[sides[1]]); + } + overflowsData = [ + ...overflowsData, + { + placement, + overflows + } + ]; + // One or more sides is overflowing. + if (!overflows.every((side)=>side <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements[nextIndex]; + if (nextPlacement) { + const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(nextPlacement) : false; + if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis + // overflows the main axis. + overflowsData.every((d)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) { + // Try next placement and re-run the lifecycle. + return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { + placement: nextPlacement + } + }; + } + } + // First, find the candidates that fit on the mainAxis side of overflow, + // then find the placement that fits the best on the main crossAxis side. + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d)=>d.overflows[0] <= 0).sort((a, b)=>a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + // Otherwise fallback. + if (!resetPlacement) { + switch(fallbackStrategy){ + case 'bestFit': + { + var _overflowsData$filter2; + const placement = (_overflowsData$filter2 = overflowsData.filter((d)=>{ + if (hasFallbackAxisSideDirection) { + const currentSideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(d.placement); + return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal + // reading directions favoring greater width. + currentSideAxis === 'y'; + } + return true; + }).map((d)=>[ + d.placement, + d.overflows.filter((overflow)=>overflow > 0).reduce((acc, overflow)=>acc + overflow, 0) + ]).sort((a, b)=>a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0]; + if (placement) { + resetPlacement = placement; + } + break; + } + case 'initialPlacement': + resetPlacement = initialPlacement; + break; + } + } + if (placement !== resetPlacement) { + return { + reset: { + placement: resetPlacement + } + }; + } + } + return {}; + } + }; +}; +function getSideOffsets(overflow, rect) { + return { + top: overflow.top - rect.height, + right: overflow.right - rect.width, + bottom: overflow.bottom - rect.height, + left: overflow.left - rect.width + }; +} +function isAnySideFullyClipped(overflow) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["sides"].some((side)=>overflow[side] >= 0); +} +/** + * Provides data to hide the floating element in applicable situations, such as + * when it is not in the same clipping context as the reference element. + * @see https://floating-ui.com/docs/hide + */ const hide = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'hide', + options, + async fn (state) { + const { rects } = state; + const { strategy = 'referenceHidden', ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + switch(strategy){ + case 'referenceHidden': + { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + elementContext: 'reference' + }); + const offsets = getSideOffsets(overflow, rects.reference); + return { + data: { + referenceHiddenOffsets: offsets, + referenceHidden: isAnySideFullyClipped(offsets) + } + }; + } + case 'escaped': + { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + altBoundary: true + }); + const offsets = getSideOffsets(overflow, rects.floating); + return { + data: { + escapedOffsets: offsets, + escaped: isAnySideFullyClipped(offsets) + } + }; + } + default: + { + return {}; + } + } + } + }; +}; +function getBoundingRect(rects) { + const minX = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...rects.map((rect)=>rect.left)); + const minY = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...rects.map((rect)=>rect.top)); + const maxX = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...rects.map((rect)=>rect.right)); + const maxY = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...rects.map((rect)=>rect.bottom)); + return { + x: minX, + y: minY, + width: maxX - minX, + height: maxY - minY + }; +} +function getRectsByLine(rects) { + const sortedRects = rects.slice().sort((a, b)=>a.y - b.y); + const groups = []; + let prevRect = null; + for(let i = 0; i < sortedRects.length; i++){ + const rect = sortedRects[i]; + if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) { + groups.push([ + rect + ]); + } else { + groups[groups.length - 1].push(rect); + } + prevRect = rect; + } + return groups.map((rect)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(getBoundingRect(rect))); +} +/** + * Provides improved positioning for inline reference elements that can span + * over multiple lines, such as hyperlinks or range selections. + * @see https://floating-ui.com/docs/inline + */ const inline = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'inline', + options, + async fn (state) { + const { placement, elements, rects, platform, strategy } = state; + // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a + // ClientRect's bounds, despite the event listener being triggered. A + // padding of 2 seems to handle this issue. + const { padding = 2, x, y } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const nativeClientRects = Array.from(await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference)) || []); + const clientRects = getRectsByLine(nativeClientRects); + const fallback = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(getBoundingRect(nativeClientRects)); + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + function getBoundingClientRect() { + // There are two rects and they are disjoined. + if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) { + // Find the first rect in which the point is fully inside. + return clientRects.find((rect)=>x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback; + } + // There are 2 or more connected rects. + if (clientRects.length >= 2) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y') { + const firstRect = clientRects[0]; + const lastRect = clientRects[clientRects.length - 1]; + const isTop = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === 'top'; + const top = firstRect.top; + const bottom = lastRect.bottom; + const left = isTop ? firstRect.left : lastRect.left; + const right = isTop ? firstRect.right : lastRect.right; + const width = right - left; + const height = bottom - top; + return { + top, + bottom, + left, + right, + width, + height, + x: left, + y: top + }; + } + const isLeftSide = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === 'left'; + const maxRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...clientRects.map((rect)=>rect.right)); + const minLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...clientRects.map((rect)=>rect.left)); + const measureRects = clientRects.filter((rect)=>isLeftSide ? rect.left === minLeft : rect.right === maxRight); + const top = measureRects[0].top; + const bottom = measureRects[measureRects.length - 1].bottom; + const left = minLeft; + const right = maxRight; + const width = right - left; + const height = bottom - top; + return { + top, + bottom, + left, + right, + width, + height, + x: left, + y: top + }; + } + return fallback; + } + const resetRects = await platform.getElementRects({ + reference: { + getBoundingClientRect + }, + floating: elements.floating, + strategy + }); + if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) { + return { + reset: { + rects: resetRects + } + }; + } + return {}; + } + }; +}; +const originSides = /*#__PURE__*/ new Set([ + 'left', + 'top' +]); +// For type backwards-compatibility, the `OffsetOptions` type was also +// Derivable. +async function convertValueToCoords(state, options) { + const { placement, platform, elements } = state; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement); + const isVertical = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y'; + const mainAxisMulti = originSides.has(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + // eslint-disable-next-line prefer-const + let { mainAxis, crossAxis, alignmentAxis } = typeof rawValue === 'number' ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: rawValue.mainAxis || 0, + crossAxis: rawValue.crossAxis || 0, + alignmentAxis: rawValue.alignmentAxis + }; + if (alignment && typeof alignmentAxis === 'number') { + crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis; + } + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; +} +/** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ const offset = function(options) { + if (options === void 0) { + options = 0; + } + return { + name: 'offset', + options, + async fn (state) { + var _middlewareData$offse, _middlewareData$arrow; + const { x, y, placement, middlewareData } = state; + const diffCoords = await convertValueToCoords(state, options); + // If the placement is the same and the arrow caused an alignment offset + // then we don't need to change the positioning coordinates. + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: { + ...diffCoords, + placement + } + }; + } + }; +}; +/** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ const shift = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'shift', + options, + async fn (state) { + const { x, y, placement } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = false, limiter = { + fn: (_ref)=>{ + let { x, y } = _ref; + return { + x, + y + }; + } + }, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow(state, detectOverflowOptions); + const crossAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement)); + const mainAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxis"])(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === 'y' ? 'top' : 'left'; + const maxSide = mainAxis === 'y' ? 'bottom' : 'right'; + const min = mainAxisCoord + overflow[minSide]; + const max = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min, mainAxisCoord, max); + } + if (checkCrossAxis) { + const minSide = crossAxis === 'y' ? 'top' : 'left'; + const maxSide = crossAxis === 'y' ? 'bottom' : 'right'; + const min = crossAxisCoord + overflow[minSide]; + const max = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min, crossAxisCoord, max); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y, + enabled: { + [mainAxis]: checkMainAxis, + [crossAxis]: checkCrossAxis + } + } + }; + } + }; +}; +/** + * Built-in `limiter` that will stop `shift()` at a certain point. + */ const limitShift = function(options) { + if (options === void 0) { + options = {}; + } + return { + options, + fn (state) { + const { x, y, placement, rects, middlewareData } = state; + const { offset = 0, mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const coords = { + x, + y + }; + const crossAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement); + const mainAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxis"])(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + const rawOffset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(offset, state); + const computedOffset = typeof rawOffset === 'number' ? { + mainAxis: rawOffset, + crossAxis: 0 + } : { + mainAxis: 0, + crossAxis: 0, + ...rawOffset + }; + if (checkMainAxis) { + const len = mainAxis === 'y' ? 'height' : 'width'; + const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis; + const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis; + if (mainAxisCoord < limitMin) { + mainAxisCoord = limitMin; + } else if (mainAxisCoord > limitMax) { + mainAxisCoord = limitMax; + } + } + if (checkCrossAxis) { + var _middlewareData$offse, _middlewareData$offse2; + const len = mainAxis === 'y' ? 'width' : 'height'; + const isOriginSide = originSides.has((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement)); + const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis); + const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0); + if (crossAxisCoord < limitMin) { + crossAxisCoord = limitMin; + } else if (crossAxisCoord > limitMax) { + crossAxisCoord = limitMax; + } + } + return { + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }; + } + }; +}; +/** + * Provides data that allows you to change the size of the floating element — + * for instance, prevent it from overflowing the clipping boundary or match the + * width of the reference element. + * @see https://floating-ui.com/docs/size + */ const size = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'size', + options, + async fn (state) { + var _state$middlewareData, _state$middlewareData2; + const { placement, rects, platform, elements } = state; + const { apply = ()=>{}, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const overflow = await detectOverflow(state, detectOverflowOptions); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement); + const isYAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y'; + const { width, height } = rects.floating; + let heightSide; + let widthSide; + if (side === 'top' || side === 'bottom') { + heightSide = side; + widthSide = alignment === (await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)) ? 'start' : 'end') ? 'left' : 'right'; + } else { + widthSide = side; + heightSide = alignment === 'end' ? 'top' : 'bottom'; + } + const maximumClippingHeight = height - overflow.top - overflow.bottom; + const maximumClippingWidth = width - overflow.left - overflow.right; + const overflowAvailableHeight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(height - overflow[heightSide], maximumClippingHeight); + const overflowAvailableWidth = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(width - overflow[widthSide], maximumClippingWidth); + const noShift = !state.middlewareData.shift; + let availableHeight = overflowAvailableHeight; + let availableWidth = overflowAvailableWidth; + if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) { + availableWidth = maximumClippingWidth; + } + if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) { + availableHeight = maximumClippingHeight; + } + if (noShift && !alignment) { + const xMin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.left, 0); + const xMax = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.right, 0); + const yMin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.top, 0); + const yMax = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.bottom, 0); + if (isYAxis) { + availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.left, overflow.right)); + } else { + availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.top, overflow.bottom)); + } + } + await apply({ + ...state, + availableWidth, + availableHeight + }); + const nextDimensions = await platform.getDimensions(elements.floating); + if (width !== nextDimensions.width || height !== nextDimensions.height) { + return { + reset: { + rects: true + } + }; + } + return {}; + } + }; +}; +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "arrow", + ()=>arrow, + "autoPlacement", + ()=>autoPlacement, + "autoUpdate", + ()=>autoUpdate, + "computePosition", + ()=>computePosition, + "detectOverflow", + ()=>detectOverflow, + "flip", + ()=>flip, + "hide", + ()=>hide, + "inline", + ()=>inline, + "limitShift", + ()=>limitShift, + "offset", + ()=>offset, + "platform", + ()=>platform, + "shift", + ()=>shift, + "size", + ()=>size +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$core$40$1$2e$7$2e$3$2f$node_modules$2f40$floating$2d$ui$2f$core$2f$dist$2f$floating$2d$ui$2e$core$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs [app-ssr] (ecmascript)"); +; +; +; +; +function getCssDimensions(element) { + const css = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element); + // In testing environments, the `width` and `height` properties are empty + // strings for SVG elements, returning NaN. Fallback to `0` in this case. + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(width) !== offsetWidth || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; +} +function unwrapElement(element) { + return !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(element) ? element.contextElement : element; +} +function getScale(element) { + const domElement = unwrapElement(element); + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(domElement)) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + } + const rect = domElement.getBoundingClientRect(); + const { width, height, $ } = getCssDimensions(domElement); + let x = ($ ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(rect.width) : rect.width) / width; + let y = ($ ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(rect.height) : rect.height) / height; + // 0, NaN, or Infinity should always fallback to 1. + if (!x || !Number.isFinite(x)) { + x = 1; + } + if (!y || !Number.isFinite(y)) { + y = 1; + } + return { + x, + y + }; +} +const noOffsets = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); +function getVisualOffsets(element) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isWebKit"])() || !win.visualViewport) { + return noOffsets; + } + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; +} +function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) { + isFixed = false; + } + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element)) { + return false; + } + return isFixed; +} +function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + if (includeScale) { + if (offsetParent) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(offsetParent)) { + scale = getScale(offsetParent); + } + } else { + scale = getScale(element); + } + } + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(domElement); + const offsetWin = offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(offsetParent) ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(offsetParent) : offsetParent; + let currentWin = win; + let currentIFrame = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getFrameElement"])(currentWin); + while(currentIFrame && offsetParent && offsetWin !== currentWin){ + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentWin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(currentIFrame); + currentIFrame = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getFrameElement"])(currentWin); + } + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])({ + width, + height, + x, + y + }); +} +// If has a CSS width greater than the viewport, then this will be +// incorrect for RTL. +function getWindowScrollBarX(element, rect) { + const leftScroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(element).scrollLeft; + if (!rect) { + return getBoundingClientRect((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element)).left + leftScroll; + } + return rect.left + leftScroll; +} +function getHTMLOffset(documentElement, scroll) { + const htmlRect = documentElement.getBoundingClientRect(); + const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect); + const y = htmlRect.top + scroll.scrollTop; + return { + x, + y + }; +} +function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { elements, rect, offsetParent, strategy } = _ref; + const isFixed = strategy === 'fixed'; + const documentElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(offsetParent); + const topLayer = elements ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(elements.floating) : false; + if (offsetParent === documentElement || topLayer && isFixed) { + return rect; + } + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + const offsets = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + const isOffsetParentAnElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(offsetParent) !== 'body' || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(documentElement)) { + scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(offsetParent); + } + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y + }; +} +function getClientRects(element) { + return Array.from(element.getClientRects()); +} +// Gets the entire size of the scrollable document area, even extending outside +// of the `` and `` rect bounds if horizontally scrollable. +function getDocumentRect(element) { + const html = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + const scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(element); + const body = element.ownerDocument.body; + const width = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(body).direction === 'rtl') { + x += (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.clientWidth, body.clientWidth) - width; + } + return { + width, + height, + x, + y + }; +} +// Safety check: ensure the scrollbar space is reasonable in case this +// calculation is affected by unusual styles. +// Most scrollbars leave 15-18px of space. +const SCROLLBAR_MAX = 25; +function getViewportRect(element, strategy) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + const html = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isWebKit"])(); + if (!visualViewportBased || visualViewportBased && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + const windowScrollbarX = getWindowScrollBarX(html); + // `overflow: hidden` + `scrollbar-gutter: stable` reduces the + // visual width of the but this is not considered in the size + // of `html.clientWidth`. + if (windowScrollbarX <= 0) { + const doc = html.ownerDocument; + const body = doc.body; + const bodyStyles = getComputedStyle(body); + const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0; + const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline); + if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) { + width -= clippingStableScrollbarWidth; + } + } else if (windowScrollbarX <= SCROLLBAR_MAX) { + // If the scrollbar is on the left, the width needs to be extended + // by the scrollbar amount so there isn't extra space on the right. + width += windowScrollbarX; + } + return { + width, + height, + x, + y + }; +} +const absoluteOrFixed = /*#__PURE__*/ new Set([ + 'absolute', + 'fixed' +]); +// Returns the inner client rect, subtracting scrollbars if present. +function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === 'fixed'); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element) ? getScale(element) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + const width = element.clientWidth * scale.x; + const height = element.clientHeight * scale.y; + const x = left * scale.x; + const y = top * scale.y; + return { + width, + height, + x, + y + }; +} +function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === 'viewport') { + rect = getViewportRect(element, strategy); + } else if (clippingAncestor === 'document') { + rect = getDocumentRect((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element)); + } else if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(clippingAncestor)) { + rect = getInnerBoundingClientRect(clippingAncestor, strategy); + } else { + const visualOffsets = getVisualOffsets(element); + rect = { + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y, + width: clippingAncestor.width, + height: clippingAncestor.height + }; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(rect); +} +function hasFixedPositionAncestor(element, stopNode) { + const parentNode = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element); + if (parentNode === stopNode || !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(parentNode) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(parentNode)) { + return false; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode); +} +// A "clipping ancestor" is an `overflow` element with the characteristic of +// clipping (or hiding) child elements. This returns all clipping ancestors +// of the given element up the tree. +function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) { + return cachedResult; + } + let result = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOverflowAncestors"])(element, [], false).filter((el)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(el) && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(el) !== 'body'); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'fixed'; + let currentNode = elementIsFixed ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element) : element; + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + while((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(currentNode) && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(currentNode)){ + const computedStyle = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(currentNode); + const currentNodeIsContaining = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isContainingBlock"])(currentNode); + if (!currentNodeIsContaining && computedStyle.position === 'fixed') { + currentContainingBlockComputedStyle = null; + } + const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode); + if (shouldDropCurrentNode) { + // Drop non-containing blocks. + result = result.filter((ancestor)=>ancestor !== currentNode); + } else { + // Record last containing block for next iteration. + currentContainingBlockComputedStyle = computedStyle; + } + currentNode = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(currentNode); + } + cache.set(element, result); + return result; +} +// Gets the maximum area that the element is visible in due to any number of +// clipping ancestors. +function getClippingRect(_ref) { + let { element, boundary, rootBoundary, strategy } = _ref; + const elementClippingAncestors = boundary === 'clippingAncestors' ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary); + const clippingAncestors = [ + ...elementClippingAncestors, + rootBoundary + ]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor)=>{ + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(rect.top, accRect.top); + accRect.right = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(rect.right, accRect.right); + accRect.bottom = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(rect.bottom, accRect.bottom); + accRect.left = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; +} +function getDimensions(element) { + const { width, height } = getCssDimensions(element); + return { + width, + height + }; +} +function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent); + const documentElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(offsetParent); + const isFixed = strategy === 'fixed'; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + // If the scrollbar appears on the left (e.g. RTL systems). Use + // Firefox with layout.scrollbar.side = 3 in about:config to test this. + function setLeftRTLScrollbarOffset() { + offsets.x = getWindowScrollBarX(documentElement); + } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(offsetParent) !== 'body' || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(documentElement)) { + scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(offsetParent); + } + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) { + setLeftRTLScrollbarOffset(); + } + } + if (isFixed && !isOffsetParentAnElement && documentElement) { + setLeftRTLScrollbarOffset(); + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x; + const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y; + return { + x, + y, + width: rect.width, + height: rect.height + }; +} +function isStaticPositioned(element) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'static'; +} +function getTrueOffsetParent(element, polyfill) { + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'fixed') { + return null; + } + if (polyfill) { + return polyfill(element); + } + let rawOffsetParent = element.offsetParent; + // Firefox returns the element as the offsetParent if it's non-static, + // while Chrome and Safari return the element. The element must + // be used to perform the correct calculations even if the element is + // non-static. + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element) === rawOffsetParent) { + rawOffsetParent = rawOffsetParent.ownerDocument.body; + } + return rawOffsetParent; +} +// Gets the closest ancestor positioned element. Handles some edge cases, +// such as table ancestors and cross browser bugs. +function getOffsetParent(element, polyfill) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(element)) { + return win; + } + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element)) { + let svgOffsetParent = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element); + while(svgOffsetParent && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(svgOffsetParent)){ + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) { + return svgOffsetParent; + } + svgOffsetParent = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(svgOffsetParent); + } + return win; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while(offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTableElement"])(offsetParent) && isStaticPositioned(offsetParent)){ + offsetParent = getTrueOffsetParent(offsetParent, polyfill); + } + if (offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(offsetParent) && isStaticPositioned(offsetParent) && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isContainingBlock"])(offsetParent)) { + return win; + } + return offsetParent || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getContainingBlock"])(element) || win; +} +const getElementRects = async function(data) { + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + const floatingDimensions = await getDimensionsFn(data.floating); + return { + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy), + floating: { + x: 0, + y: 0, + width: floatingDimensions.width, + height: floatingDimensions.height + } + }; +}; +function isRTL(element) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).direction === 'rtl'; +} +const platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"], + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"], + isRTL +}; +function rectsAreEqual(a, b) { + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height; +} +// https://samthor.au/2021/observing-dom/ +function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + function cleanup() { + var _io; + clearTimeout(timeoutId); + (_io = io) == null || _io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) { + skip = false; + } + if (threshold === void 0) { + threshold = 1; + } + cleanup(); + const elementRectForRootMargin = element.getBoundingClientRect(); + const { left, top, width, height } = elementRectForRootMargin; + if (!skip) { + onMove(); + } + if (!width || !height) { + return; + } + const insetTop = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(top); + const insetRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(root.clientWidth - (left + width)); + const insetBottom = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(root.clientHeight - (top + height)); + const insetLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(left); + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px"; + const options = { + rootMargin, + threshold: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(0, (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) { + return refresh(); + } + if (!ratio) { + // If the reference is clipped, the ratio is 0. Throttle the refresh + // to prevent an infinite loop of updates. + timeoutId = setTimeout(()=>{ + refresh(false, 1e-7); + }, 1000); + } else { + refresh(false, ratio); + } + } + if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) { + // It's possible that even though the ratio is reported as 1, the + // element is not actually fully within the IntersectionObserver's root + // area anymore. This can happen under performance constraints. This may + // be a bug in the browser's IntersectionObserver implementation. To + // work around this, we compare the element's bounding rect now with + // what it was at the time we created the IntersectionObserver. If they + // are not equal then the element moved, so we refresh. + refresh(); + } + isFirstUpdate = false; + } + // Older browsers don't support a `document` as the root and will throw an + // error. + try { + io = new IntersectionObserver(handleObserve, { + ...options, + // Handle