feat(event): 添加酒局报名审核功能并优化前端组件

- 新增 ApproveEvent API 接口用于审核报名用户
- 在 EventCard 组件中显示待审核状态(⏳ 待审核)
- 实现酒局发起人审核报名用户的完整流程
- 添加用户协议和隐私政策页面
- 优化 FeedCard 组件中的图片展示逻辑
- 修复连续打卡天数计算问题
- 更新 HaveADrink SDK 至 1.0.15 版本
This commit is contained in:
cg
2026-08-16 14:50:50 +08:00
parent 527b0e8a8d
commit 81e7a3afa5
20 changed files with 1470 additions and 249 deletions
+197 -4
View File
@@ -436,6 +436,39 @@ export class EventStatus {
}
}
/**
* 报名审核状态
*/
export class ApproveStatus {
/**
* 待审核
*/
static Pending = 1;
/**
* 已通过
*/
static Approved = 2;
/**
* 已拒绝
*/
static Rejected = 3;
static entries() {
return [
{ value: ApproveStatus.Pending, label: '待审核' },
{ value: ApproveStatus.Approved, label: '已通过' },
{ value: ApproveStatus.Rejected, label: '已拒绝' },
];
}
static getLabel(v) {
switch(v) {
case ApproveStatus.Pending: return '待审核';
case ApproveStatus.Approved: return '已通过';
case ApproveStatus.Rejected: return '已拒绝';
}
}
}
/**
* 消息类型(文本/图片)
*/
@@ -1779,6 +1812,58 @@ export class UpdatePreferencesResp {
}
}
/**
* 获取用户基础信息请求
*/
export class GetUserBasicInfoReq {
/**
* @param id: string|number 用户ID
*/
constructor(id,) {
this.id = id;
}
static fromObject(o) {
return new GetUserBasicInfoReq(o.id,);
}
}
/**
*
*/
export class UserBasicInfo {
/**
* @param nickname: string 用户昵称
* @param avatar: string 头像URL
*/
constructor(nickname,avatar,) {
this.nickname = nickname;
this.avatar = avatar;
}
static fromObject(o) {
return new UserBasicInfo(o.nickname,o.avatar,);
}
}
/**
* 获取用户基础信息响应
*/
export class GetUserBasicInfoResp {
/**
* @param nickname: string 用户昵称
* @param avatar: string 头像URL
*/
constructor(nickname,avatar,) {
this.nickname = nickname;
this.avatar = avatar;
}
static fromObject(o) {
return new GetUserBasicInfoResp(o.nickname,o.avatar,);
}
}
/**
* 上传图片参数
*/
@@ -2777,6 +2862,42 @@ export class CheckInEventResp {
}
}
/**
*
*/
export class ApproveEventReq {
/**
* @param id: string|number 酒局ID
* @param userId: string|number 报名用户ID
* @param approve: ApproveStatus 审核结果
*/
constructor(id,userId,approve,) {
this.id = id;
this.userId = userId;
this.approve = approve;
}
static fromObject(o) {
return new ApproveEventReq(o.id,o.userId,o.approve,);
}
}
/**
*
*/
export class ApproveEventResp {
/**
* @param ok: boolean 是否成功
*/
constructor(ok,) {
this.ok = ok;
}
static fromObject(o) {
return new ApproveEventResp(o.ok,);
}
}
/**
* 会话信息
*/
@@ -2866,16 +2987,24 @@ export class Message {
* @param conversationId: string 会话ID
* @param senderId: string|number 发送者ID
* @param receiverId: string|number 接收者ID
* @param senderName: string 发送者昵称
* @param receiverName: string 接收者昵称
* @param senderAvatar: string 发送者头像URL
* @param receiverAvatar: string 接收者头像URL
* @param type: MessageType 消息类型
* @param content: string 消息内容
* @param timestamp: number 发送时间(毫秒时间戳)
* @param status: MessageStatus 消息状态
*/
constructor(id,conversationId,senderId,receiverId,type,content,timestamp,status,) {
constructor(id,conversationId,senderId,receiverId,senderName,receiverName,senderAvatar,receiverAvatar,type,content,timestamp,status,) {
this.id = id;
this.conversationId = conversationId;
this.senderId = senderId;
this.receiverId = receiverId;
this.senderName = senderName;
this.receiverName = receiverName;
this.senderAvatar = senderAvatar;
this.receiverAvatar = receiverAvatar;
this.type = type;
this.content = content;
this.timestamp = timestamp;
@@ -2883,7 +3012,7 @@ export class Message {
}
static fromObject(o) {
return new Message(o.id,o.conversationId,o.senderId,o.receiverId,o.type,o.content,o.timestamp,o.status,);
return new Message(o.id,o.conversationId,o.senderId,o.receiverId,o.senderName,o.receiverName,o.senderAvatar,o.receiverAvatar,o.type,o.content,o.timestamp,o.status,);
}
}
@@ -2975,7 +3104,7 @@ export class ClientChatData {
* @param receiverId: string|number 接收者ID
* @param content: string 消息内容
* @param msgType: MessageType 消息类型
* @param clientMesgId: string|number 客户端消息ID
* @param clientMesgId: string 客户端消息ID
*/
constructor(receiverId,content,msgType,clientMesgId,) {
this.receiverId = receiverId;
@@ -3104,7 +3233,7 @@ export class ServerReadData {
*/
export class ServerAckData {
/**
* @param clientMsgId: string|number 客户端消息ID
* @param clientMsgId: string 客户端消息ID
* @param msgId: string|number 消息ID
* @param status: MessageStatus 消息状态
*/
@@ -3991,6 +4120,38 @@ export default class HaveADrink {
});
}
/**
* 获取用户基础信息
*/
GetUserBasicInfo(req) {
return new Promise((reslove, reject)=>{
let data = req;
let url = `${this.host}/api/have_a_drink/v1/user/user/basic_info`;
const query = Object.keys(data).map((x)=>(`${x}=${data[x]}`)).join('&');
this.http_request(url, {
uri: '/api/have_a_drink/v1/user/user/basic_info',
method: 'GET',
query: query,
data: data,
responseType: 'json',
headers: {
},
}).then((data)=>{
if (data.hasOwnProperty("fail")) {
if (data.fail) {
reject(data.msg);
} else {
reslove(data.data);
}
} else {
reslove(data);
}
}).catch((err)=>reject(err));
});
}
/**
* 上传文件
*/
@@ -4659,6 +4820,38 @@ export default class HaveADrink {
});
}
/**
* 酒局发起者审核报名用户
*/
ApproveEvent(req) {
return new Promise((reslove, reject)=>{
let data = req;
let url = `${this.host}/api/have_a_drink/v1/events/events/approve`;
this.http_request(url, {
uri: '/api/have_a_drink/v1/events/events/approve',
method: 'POST',
data: data,
responseType: 'json',
headers: {
'Content-Type': 'application/json',
},
}).then((data)=>{
if (data.hasOwnProperty("fail")) {
if (data.fail) {
reject(data.msg);
} else {
reslove(data.data);
}
} else {
reslove(data);
}
}).catch((err)=>reject(err));
});
}
/**
* 获取会话列表
*/