123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- import { useReducer } from 'react'
- import { channel_analysis_select,pitcher_channel,channel_analysis_select_daily,ad_rank,bookOverview, bookRank, bookTrend, bossSummary,
- getAccApi, channelActive, getUserApi, channelAgainOrderTrend, channelOrderTrend, channelOverview, channelStatChannel, imageRank,
- Params, pitcherOverview, pitcherTrend, getRechargeHisApi, getRechargeHisYaerApi, channelOrderTrendPay, setPayApi, recoveryQueryapi, getOsoRoiApi } from '@/services/dataStatistics/dataCenter'
- import { useAjax } from '@/Hook/useAjax'
- type State = {
- tableDate?: string,//table搜索单日期值
- channel?: string,//table搜索公众号名称
- channels?: string[],// 多选公众号
- tableId?: string,//table搜索公众号ID
- date_range?: string,//table搜索公众号n天
- start?: string,//开始时间
- end?: string,//结束时间
- start15?: string,//开始时间
- end15?: string,//结束时间
- cost_time_start?: string,//消耗开始时间
- cost_time_end?: string,//结束时间
- order_time_start?: string,//订单开始时间
- order_time_end?: string,//结束时间
- cost_year?: string, // 消耗所在年(格式:2021)
- order_month?: string, // 订单所在月份 (格式:2021-11)
- pitcher?: string,//投手名称
- book?: any,//table搜索书名
- dataSource?: any[]//table数据
- loding?: boolean//请求
- order_by?: string//排序字段
- order?: 'asc' | 'desc',//升序降序
- location?: 'MP' | 'GDT',//投放位置老
- type?: 'MP' | 'GDT',//投放位置新
- targetKeys?: any[],//
- platform?:string,//书城
- selectedKeys?: any[],//
- tableValue?: '1' | '2',
- stage?: string,//期数
- tabKey?: string,
- st?:string,//充值开始
- et?:string,//充值结束
- is_video?: number,
- is_pitcher_self?: boolean,
- }
- export type Action = {
- type: 'tableDate' | 'channel'| 'channels' | 'isVideo' | 'tableId' | 'book' | 'date_range' | 'tableDateArr' | 'tableDateArr15' | 'isPitcherSelf' | 'depleteDateDateArr' | 'orderDateDateArr' | 'costYear' | 'orderMonth' | 'tabKey' | 'init' | 'setState' | 'dataSource',
- params?: State
- }
- export function reducer(state: State, action: Action) {
- let { type, params } = action
- let newState = JSON.parse(JSON.stringify(state))
- switch (type) {
- case 'tableDate':
- return { ...state, tableDate: params?.tableDate }
- case 'channel':
- return { ...state, channel: params?.channel }
- case 'costYear':
- return { ...state, cost_year: params?.cost_year }
- case 'orderMonth':
- return { ...state, order_month: params?.order_month }
- case 'isPitcherSelf':
- return { ...state, is_pitcher_self: params?.is_pitcher_self }
- case 'channels':
- return { ...state, channels: params?.channels }
- case 'isVideo':
- return { ...state, is_video: params?.is_video }
- case 'tableId':
- return { ...state, tableId: params?.tableId }
- case 'book':
- return { ...state, book: params?.book }
- case 'date_range':
- return { ...state, date_range: params?.date_range }
- case 'tableDateArr':
- return { ...state, start: params?.start, end: params?.end }
- case 'tableDateArr15':
- return { ...state, start15: params?.start15, end15: params?.end15 }
- case 'depleteDateDateArr':
- return { ...state, cost_time_start: params?.start, cost_time_end: params?.end }
- case 'orderDateDateArr':
- return { ...state, order_time_start: params?.start, order_time_end: params?.end }
- case 'dataSource':
- return { ...state, dataSource: params?.dataSource }
- case 'tabKey':
- return { ...state, tabKey: params?.tabKey }
- case 'setState':
- Object.keys(params as State).forEach((key: string) => {
- newState[key] = (params as State)[key]
- })
- return newState
- case 'init':
- return {}
- default:
- return state;
- }
- }
- const initData: State = {
- date_range:'7'
- }
- export default function useTableData() {
- const [state, dispatch] = useReducer(reducer, initData)
- /**广告投放详细数据 */
- const getChannelOverview = useAjax((params: Params) => channelOverview(params), { formatResult: true })
- /**今日消耗排行榜 */
- const getBookRank = useAjax((params: Params) => bookRank(params), { formatResult: true })
- /**公众号付费趋势表 */
- const getChannelOrderTrend = useAjax((params: Params) => channelOrderTrend(params), { formatResult: true })
- /**公众号付费趋势(含赔付金) */
- const getChannelOrderTrendPay = useAjax((params: Params) => channelOrderTrendPay(params), { formatResult: true })
- /** 公众号7日复重趋势*/
- const getChannelAgainOrderTrend = useAjax((params: Params) => channelAgainOrderTrend(params), { formatResult: true })
- /**公众号付费粉丝激活数据 */
- const getChannelActive = useAjax((params: Params) => channelActive(params), { formatResult: true })
- /**公众号汇总 */
- const getChannelStatChannel = useAjax((params: Params) => channelStatChannel(params), { formatResult: true })
- /**投手付费趋势 */
- const getPitcherTrend = useAjax((params: Params) => pitcherTrend(params), { formatResult: true })
- /**投手回收查询 */
- const getRecoveryQuery = useAjax((params: Params) => recoveryQueryapi(params), { formatResult: true })
- /**公众号回收查询 */
- const getOsoRoi = useAjax((params: Params) => getOsoRoiApi(params), { formatResult: true })
- /**投手总数据 */
- const getPitcherOverview = useAjax((params: Params) => pitcherOverview(params), { formatResult: true })
- /**充值历史 */
- const getRechargeHis = useAjax((params: Params) => getRechargeHisApi(params), { formatResult: true })
- /**充值历史(年) */
- const getRechargeHisYaer = useAjax((params: Params) => getRechargeHisYaerApi(params), { formatResult: true })
- /**小说付费趋势 */
- const getBookTrend = useAjax((params: Params) => bookTrend(params), { formatResult: true })
- /**小说总数据 */
- /**小说付总数据 */
- const getBookOverview = useAjax((params: Params) => bookOverview(params), { formatResult: true })
- /**整体概况 */
- const getBossSummary = useAjax((params: Params) => bossSummary(params), { formatResult: true })
- /**素材库 */
- const getImageRank = useAjax((params: Params) => imageRank(params), { formatResult: true })
- /**素材消耗排行榜 */
- const getAdrank = useAjax((params: Params) => ad_rank(params), { formatResult: true })
- /** 搜索公众号 */
- const getAccAjax = useAjax((params: Params) => getAccApi(params), { formatResult: true })
- /** 获取拥有用户 */
- const getUserAjax = useAjax((params: Params) => getUserApi(params), { formatResult: true })
- /** 投手投放号 */
- const getPitcherChannel = useAjax((params: Params) => pitcher_channel(params), { formatResult: true })
- /** 公众号用户充值查询 */
- const getChannelAnalysis = useAjax((params: Params) => channel_analysis_select(params), { formatResult: true })
- /** 公众号用户充值查询详情 */
- const getChannelAnalysisDetails = useAjax((params: Params) => channel_analysis_select_daily(params), { formatResult: true })
- /** 设置赔付金 */
- const setPay = useAjax((params: { date: string, channel: string, pay: number }) => setPayApi(params), { formatResult: true })
- return {
- state,
- dispatch,
- getChannelOverview,
- getChannelOrderTrend,
- getChannelOrderTrendPay,
- getChannelAgainOrderTrend,
- getChannelActive,
- getChannelStatChannel,
- getPitcherTrend,
- getRecoveryQuery,
- getBookRank,
- getBookTrend,
- getBookOverview,
- getPitcherOverview,
- getRechargeHis,
- getBossSummary,
- getImageRank,
- getAdrank,
- getAccAjax,
- getRechargeHisYaer,
- getUserAjax,
- getPitcherChannel,
- getChannelAnalysis,
- getChannelAnalysisDetails,
- setPay,
- getOsoRoi
- }
- }
|