feat(event): 添加酒局报名审核功能并优化前端组件
- 新增 ApproveEvent API 接口用于审核报名用户
- 在 EventCard 组件中显示待审核状态(⏳ 待审核)
- 实现酒局发起人审核报名用户的完整流程
- 添加用户协议和隐私政策页面
- 优化 FeedCard 组件中的图片展示逻辑
- 修复连续打卡天数计算问题
- 更新 HaveADrink SDK 至 1.0.15 版本
This commit is contained in:
+197
-4
@@ -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));
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会话列表
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user