import request from '@/utils/request'; import { AxiosPromise } from 'axios'; const BASE_URL = '/web/supervision/report/statistics-complaint'; /** 查询参数 */ export interface ComplaintQuery { pageNum?: number; pageSize?: number; /** 被投诉对象(模糊搜索) */ complaintDepartment?: string; /** 投诉类型(字典 caseType) */ enforceType?: number | string; /** 涉事地址(模糊搜索) */ enterpriseAddress?: string; /** 被投诉部门ID(明细查询用) */ complaintDepartmentId?: string; /** 年 */ year?: string; /** 季度 */ quarter?: string; /** 月 */ month?: string; /** 自定义开始时间 */ beginTime?: string; /** 自定义结束时间 */ endTime?: string; /** 时段类型:year/quarter/month/day */ timeType?: string; /** Tab2类型切换:type/空/区域dict_value */ type?: string; } /** 概览VO */ export interface ComplaintOverviewVo { complaintCount: number; complaintDeptCount: number; } /** 分组统计VO */ export interface ComplaintGroupVo { complaintDepartment: string; complaintDepartmentId: string; total: number; } /** 明细VO */ export interface ComplaintDetailVo { id: number; cid: string; complaintDepartment: string; enforceType: number; enforceTypeText: string; complaintTime: string; } /** Tab2 类型统计VO */ export interface ComplaintTypeStatVo { name: string; count: number; percentage: string; } /** Tab1概览 */ export const getOverview = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/overview`, method: 'get', params }); }; /** Tab1分组列表 */ export const getGroupList = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/groupList`, method: 'get', params }); }; /** Tab1明细列表 */ export const getDetailList = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/detailList`, method: 'get', params }); }; /** Tab2-投诉类型统计 */ export const getTypeStatList = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/typeStatList`, method: 'get', params }); }; /** Tab2-区域统计 */ export const getAreaStatList = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/areaStatList`, method: 'get', params }); }; /** Tab2-街道统计 */ export const getStreetStatList = (params: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/streetStatList`, method: 'get', params }); }; /** Tab1导出 */ export const exportGroupList = (data: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/exportGroupList`, method: 'post', data, responseType: 'blob' }); }; /** Tab2投诉类型导出 */ export const exportTypeStat = (data: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/exportTypeStat`, method: 'post', data, responseType: 'blob' }); }; /** Tab2区域导出 */ export const exportAreaStat = (data: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/exportAreaStat`, method: 'post', data, responseType: 'blob' }); }; /** Tab2街道导出 */ export const exportStreetStat = (data: ComplaintQuery): AxiosPromise => { return request({ url: `${BASE_URL}/exportStreetStat`, method: 'post', data, responseType: 'blob' }); };