57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import { apiRequest } from './api';
|
|
|
|
export type DirectChannelCode = 'PRESIDENT' | 'FINANCE' | 'HR' | 'AUDIT' | 'OPERATIONS';
|
|
export type DirectFeedbackStatus = 'SUBMITTED' | 'REPLIED';
|
|
|
|
export interface DirectChannel {
|
|
code: DirectChannelCode;
|
|
name: string;
|
|
defaultAnonymous: boolean;
|
|
}
|
|
|
|
export interface DirectFeedback {
|
|
id: number;
|
|
channelCode: DirectChannelCode;
|
|
channelName: string;
|
|
anonymous: boolean;
|
|
content: string;
|
|
status: DirectFeedbackStatus;
|
|
replyContent?: string;
|
|
repliedAt?: string;
|
|
createdAt: string;
|
|
}
|
|
|
|
export interface DirectFeedbackPage {
|
|
total: number;
|
|
pageNum: number;
|
|
pageSize: number;
|
|
rows: DirectFeedback[];
|
|
}
|
|
|
|
export const listDirectChannels = () =>
|
|
apiRequest<DirectChannel[]>({
|
|
url: '/api/aihr/direct/channels',
|
|
method: 'GET',
|
|
timeout: 15000
|
|
});
|
|
|
|
export const submitDirectFeedback = (data: {
|
|
requestId: string;
|
|
channelCode: DirectChannelCode;
|
|
anonymous: boolean;
|
|
content: string;
|
|
}) =>
|
|
apiRequest<DirectFeedback>({
|
|
url: '/api/aihr/direct/feedback',
|
|
method: 'POST',
|
|
data,
|
|
timeout: 15000
|
|
});
|
|
|
|
export const listMyDirectFeedback = (pageNum = 1, pageSize = 20) =>
|
|
apiRequest<DirectFeedbackPage>({
|
|
url: `/api/aihr/direct/mine?pageNum=${pageNum}&pageSize=${pageSize}`,
|
|
method: 'GET',
|
|
timeout: 15000
|
|
});
|