| 
					
				 | 
			
			
				@@ -215,28 +215,45 @@ export class CloudQuery { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export class CloudUser extends CloudObject { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sessionToken: string | null = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        super("_User"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let userCacheStr = localStorage.getItem("NCloud/dev/User"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (userCacheStr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let userData = JSON.parse(userCacheStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super("_User"); // 假设用户类在Parse中是"_User" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 读取用户缓存信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let userCacheStr = localStorage.getItem("NCloud/dev/User") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(userCacheStr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let userData = JSON.parse(userCacheStr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 设置用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.id = userData?.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.sessionToken = userData?.sessionToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.data = userData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.data = userData; // 保存用户数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 获取当前用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sessionToken:string|null = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 获取当前用户信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async current() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!this.sessionToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const response = await fetch(`http://dev.fmode.cn:1337/parse/users/me`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-application-id": "dev", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-session-token": this.sessionToken // 使用sessionToken进行身份验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            method: "GET" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async login(username: string, password: string): Promise<CloudUser | null> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const response = await fetch(`http://dev.fmode.cn:1337/parse/login`, { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -253,19 +270,53 @@ export class CloudUser extends CloudObject { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 登录成功后保存用户信息和 sessionToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.id = result?.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.sessionToken = result?.sessionToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.data = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 将用户信息保存到 localStorage 方便下次访问 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        localStorage.setItem("NCloud/dev/User", JSON.stringify(result)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.data = result; // 保存用户数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 缓存用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localStorage.setItem("NCloud/dev/User",JSON.stringify(result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 登出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        async logOut(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!this.sessionToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const response = await fetch(`http://dev.fmode.cn:1337/parse/logout`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "x-parse-application-id": "dev", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "x-parse-session-token": this.sessionToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                method: "POST" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 清除用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localStorage.removeItem("NCloud/dev/User") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.id = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.sessionToken = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 注册 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async signUp(username: string, password: string, email: string): Promise<CloudUser | null> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const userData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            password, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const response = await fetch(`http://dev.fmode.cn:1337/parse/users`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "x-parse-application-id": "dev", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -280,74 +331,241 @@ export class CloudUser extends CloudObject { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.id = result?.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.sessionToken = result?.sessionToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.data = result; // 保存用户数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 注册成功后自动登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return await this.login(username, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         return await this.login(username, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//fearlessUser类封装 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// src/lib/fearlessUser.ts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export class FearlessUser extends CloudObject { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static getCurrentUser(): FearlessUser | undefined { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      throw new Error('Method not implemented.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sessionToken: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super("FearlessUser"); // 假设 FearlessUser 类在 Parse 中是 "FearlessUser" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 注销 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async logOut(): Promise<void> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 删除用户信息和 sessionToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        localStorage.removeItem("NCloud/dev/User"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.id = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.sessionToken = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 获取单个用户信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async getUser(id: string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const url = `http://dev.fmode.cn:1337/parse/classes/FearlessUser/${id}?`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const response = await fetch(url, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-application-id": "dev" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            method: "GET", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mode: "cors", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            credentials: "omit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.dataToObj(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 修改密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async changePassword(newPassword: string): Promise<boolean> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!this.sessionToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 获取当前登录用户的 `FearlessUser` 信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async getCurrentUserInfo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const cloudUser = new CloudUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUser = await cloudUser.current(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!currentUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const response = await fetch(`http://dev.fmode.cn:1337/parse/users/${this.id}`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUserId = currentUser.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 通过 _User 的 objectId 查询 FearlessUser 表中的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const query = new CloudQuery("FearlessUser"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.equalTo("user", { "__type": "Pointer", "className": "_User", "objectId": currentUserId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const fearlessUser = await query.first(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fearlessUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 创建或保存用户信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async saveUserInfo(userData: Record<string, any>) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const cloudUser = new CloudUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUser = await cloudUser.current(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!currentUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const userPointer = { "__type": "Pointer", "className": "_User", "objectId": currentUser.objectId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const newUserInfo = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...userData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user: userPointer // 将当前用户作为外键关联到 FearlessUser 表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const url = `http://dev.fmode.cn:1337/parse/classes/FearlessUser`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const response = await fetch(url, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "x-parse-application-id": "dev", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "x-parse-session-token": this.sessionToken!, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "Content-Type": "application/json" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "Content-Type": "application/json", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-application-id": "dev" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            body: JSON.stringify({ password: newPassword }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            method: "PUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            method: "POST", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            body: JSON.stringify(newUserInfo), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mode: "cors", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            credentials: "omit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.dataToObj(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 更新当前用户的信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async updateUserInfo(updatedData: Record<string, any>) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const cloudUser = new CloudUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUser = await cloudUser.current(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!currentUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUserId = currentUser.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 查找当前用户的 FearlessUser 信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const query = new CloudQuery("FearlessUser"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.equalTo("user", { "__type": "Pointer", "className": "_User", "objectId": currentUserId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const fearlessUser = await query.first(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!fearlessUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error("未找到用户信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 更新信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fearlessUser.set(updatedData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await fearlessUser.save(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fearlessUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 删除当前用户的 FearlessUser 信息 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async deleteUserInfo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const cloudUser = new CloudUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUser = await cloudUser.current(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!currentUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const currentUserId = currentUser.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 查找当前用户的 FearlessUser 信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const query = new CloudQuery("FearlessUser"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.equalTo("user", { "__type": "Pointer", "className": "_User", "objectId": currentUserId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const fearlessUser = await query.first(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!fearlessUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error("未找到用户信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 删除 FearlessUser 记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await fearlessUser.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 修改用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async updateUserInfo(newData: Record<string, any>): Promise<boolean> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 将查询结果转换为 CloudObject */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private dataToObj(result: any): CloudObject { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let userObject = new CloudObject(this.className); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userObject.set(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userObject.id = result.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userObject.createdAt = result.createdAt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userObject.updatedAt = result.updatedAt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return userObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async logOut() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!this.sessionToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error("用户未登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const response = await fetch(`http://dev.fmode.cn:1337/parse/users/${this.id}`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const response = await fetch(`http://dev.fmode.cn:1337/parse/logout`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "x-parse-application-id": "dev", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "x-parse-session-token": this.sessionToken!, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "Content-Type": "application/json" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-session-token": this.sessionToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            body: JSON.stringify(newData), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            method: "PUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            method: "POST" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 更新本地缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.data = { ...this.data, ...newData }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        localStorage.setItem("NCloud/dev/User", JSON.stringify(this.data)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async login(username: string, password: string): Promise<FearlessUser | null> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const response = await fetch(`http://dev.fmode.cn:1337/parse/login`, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "x-parse-application-id": "dev", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "Content-Type": "application/json" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            body: JSON.stringify({ username, password }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            method: "POST" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await response?.json(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result?.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.error(result?.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.id = result?.objectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.sessionToken = result?.sessionToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.data = result; // 保存用户数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 缓存用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localStorage.setItem("NCloud/dev/User",JSON.stringify(result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |