超市会议

This commit is contained in:
zjf committed 2025-10-09 18:38:18 +08:00
1 parent 30e3bf6655
commit 0ebd6737fe
16 files changed
+1397 -162

No files matched your search

+9
View File
@@ -39,3 +39,12 @@ export function putObj(obj?: Object) {
})
}
// 获取会议室预约详情页面数据
export function getBookingDetailPage(roomId: string, date: string) {
return request({
url: `integrated/meetingRoom/app/booking-detail-page/${roomId}`,
method: 'get',
params: { date }
})
}
+99
View File
@@ -0,0 +1,99 @@
import request from '/@/utils/request';
// 会议室预约统计查询参数
export interface MeetingStatsQuery {
startDate?: string; // 开始日期,格式:yyyy-MM-dd
endDate?: string; // 结束日期,格式:yyyy-MM-dd
dimension?: string; // 统计维度:dept-按部门统计,assignee-按负责人统计,time-按时间统计
timeGranularity?: string; // 时间粒度:day-按天,week-按周,month-按月
deptId?: number; // 部门ID,用于筛选特定部门
roomId?: number; // 会议室ID,用于筛选特定会议室
}
// 总体统计数据
export interface OverallStats {
totalBookings: number; // 总预约数
approvedBookings: number; // 审核通过数
pendingBookings: number; // 审核中数
rejectedBookings: number; // 审核拒绝数
cancelledBookings: number; // 已取消数
approvalRate: number; // 通过率(百分比)
avgDuration: number; // 平均会议时长(分钟)
totalDuration: number; // 总会议时长(分钟)
}
// 部门统计数据
export interface DeptStats {
deptId: number; // 部门ID
deptName: string; // 部门名称(通过部门微服务获取)
bookingCount: number; // 预约数量
approvedCount: number; // 通过数量
approvalRate: number; // 通过率
totalDuration: number; // 总会议时长
}
// 负责人统计数据
export interface AssigneeStats {
assigneeName: string; // 负责人姓名
bookingCount: number; // 预约数量
approvedCount: number; // 通过数量
approvalRate: number; // 通过率
totalDuration: number; // 总会议时长
}
// 时间统计数据
export interface TimeStats {
timeLabel: string; // 时间标签(格式化后的时间显示)
date?: string; // 日期(仅按天统计时有值)
bookingCount: number; // 预约数量
approvedCount: number; // 通过数量
totalDuration: number; // 总会议时长
}
// 状态统计数据
export interface StatusStats {
status: string; // 状态码(1-审核中,2-审核通过,3-审核拒绝,4-已取消,5-取消,0-已到访)
statusName: string; // 状态名称
count: number; // 数量
percentage: number; // 占比(百分比)
}
// 会议室统计数据
export interface RoomStats {
roomId: number; // 会议室ID
roomName: string; // 会议室名称
bookingCount: number; // 预约数量
approvedCount: number; // 通过数量
usageRate: number; // 使用率
totalDuration: number; // 总会议时长
}
// 统计结果数据
export interface MeetingStatsData {
overallStats: OverallStats; // 总体统计
deptStats: DeptStats[]; // 部门统计
assigneeStats: AssigneeStats[]; // 负责人统计
timeStats: TimeStats[]; // 时间统计
statusStats: StatusStats[]; // 状态统计
roomStats: RoomStats[]; // 会议室统计
}
// 统计结果响应
export interface MeetingStatsResponse {
code: number;
msg: string;
data: MeetingStatsData;
}
/**
* 获取会议室预约统计信息
* @param params 查询参数
* @returns 统计结果
*/
export function getMeetingStats(params?: MeetingStatsQuery): Promise<MeetingStatsResponse> {
return request({
url: '/integrated/meetingBooking/stats',
method: 'get',
params
});
}