index.tsx 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313
  1. import { Button, Checkbox, Col, DatePicker, Form, Input, InputNumber, Radio, Row, Select, Space, Switch } from "antd"
  2. import React, { useEffect, useState } from "react"
  3. import moment from "moment"
  4. import { useAjax } from "@/Hook/useAjax"
  5. import { getAllOfOwnerUserApi, getChannelChoiceListApi, getGameChoiceListApi, getCpChoiceListApi, getGameChoiceParentListType1Api, getPayListApi, getSubUserWithSelfListApi, getTtAllUserListApi, getUserSystemTypeChoiceListApi, getUserVipLevelChoiceListApi, getRoleUserListApi, getGameServerListApi, getGameListApi, getGameServerUnListApi } from "@/services/gameData"
  6. import { ActiveEnum, DeviceType, LoginType, PayStatus, TYPE, gameClassifyEnum } from "./const"
  7. import { ADSTATUSEnum as ADSTTTATUSEnum } from "@/pages/gameDataStatistics/adlist/monitor/const"
  8. import { ADSTATUSEnum } from "@/pages/gameDataStatistics/adlist/tencentMonitor/const"
  9. import IntervalTime from "./intervalTime"
  10. interface Props {
  11. onChange?: (data: any) => void
  12. /** 默认值 */
  13. initialValues?: any
  14. /** 开启数据源搜索 */
  15. isSource?: boolean,
  16. /** 是否开启 广告账号 搜索 */
  17. isAccount?: boolean
  18. /** 是否开启 广告账户ID 搜索 */
  19. isAccountId?: boolean
  20. /** 是否开启 公司ID 搜索 */
  21. isCompanyId?: boolean
  22. /** 是否开启 CPID 搜索 */
  23. isCpId?: boolean
  24. /** 是否开启 cp名 搜索 */
  25. isCpName?: boolean
  26. /** 是否开启 CP方订单ID 搜索 */
  27. isCpOrderId?: boolean
  28. /** 是否开启 CP通知状态 搜索 */
  29. isCpStatus?: boolean
  30. /** 是否开启 订单创建日期 搜索 */
  31. isCreateDay?: {
  32. ranges?: any
  33. }
  34. /** 是否开启 角色创建日期 搜索 */
  35. isCreateRoleDay?: {
  36. ranges?: any
  37. }
  38. /** 是否开启 操作设备 搜索 */
  39. isDevice?: boolean
  40. /** 是否开启 注册游戏名 搜索 */
  41. isRechargeGameName?: boolean
  42. /** 是否开启 游戏名 搜索 */
  43. isGameName?: boolean
  44. /** 是否开启 游戏ID 搜索 */
  45. isGameId?: boolean
  46. isGameIds?: boolean
  47. /** 是否开启 充值游戏ID 搜索 */
  48. isOrderGameId?: boolean
  49. /** 是否开启 父游戏ID 搜索 */
  50. isParentId?: boolean
  51. /** 是否开启 超父游戏ID 搜索 */
  52. isSuperParentGameId?: boolean
  53. /** 是否开启 是否合服 搜索 */
  54. isIsMergeServer?: boolean
  55. /** 是否开启 游戏应用类型 搜索 */
  56. isGameType?: boolean
  57. /** 是否开启 游戏角色名 搜索 */
  58. isGameRoleName?: boolean
  59. /** 是否开启 游戏角色名ID 搜索 */
  60. isGameRoleId?: boolean
  61. /** 是否开启 是否首充 搜索 */
  62. isFirstRecharge?: boolean
  63. /** 是否开启 是否切量 搜索 */
  64. isSwitch?: boolean
  65. /** 是否开启 收款商户号 搜索 */
  66. isMerchantNo?: boolean
  67. /** 是否开启 商户订单ID 搜索 */
  68. isOrderId?: boolean
  69. /** 是否开启 商户订单号 搜索 */
  70. isMerchantOrderNo?: boolean
  71. /** 是否开启 支付状态 搜索 */
  72. isPayStatus?: boolean
  73. /** 是否开启 支付方式 搜索 */
  74. isPayWay?: boolean
  75. /** 是否开启 产品名称 搜索 */
  76. isProductName?: boolean
  77. /** 是否开启 注册渠道名 搜索 */
  78. isRegAgent?: boolean
  79. /** 是否开启 渠道名称 搜索 */
  80. isAgentName?: boolean
  81. /** 是否开启 注册渠道ID 搜索 */
  82. isAgentId?: boolean
  83. /** 是否开启 渠道标识 搜索 */
  84. isAgentKey?: boolean
  85. /** 是否开启 投放渠道名 搜索 */
  86. isPutAgent?: boolean
  87. /** 是否开启 用户注册日期 搜索 */
  88. isRegDay?: {
  89. ranges?: any
  90. }
  91. /** 是否开启 投手名称 搜索 */
  92. isSysUserName?: boolean
  93. /** 是否开启 投手ID 搜索 */
  94. isSysUserId?: boolean
  95. /** 是否开启 玩家账号 搜索 */
  96. isUserName?: boolean
  97. /** 是否开启 用户ID 搜索 */
  98. isUserId?: boolean
  99. /** 是否开启 不同排行榜选择 搜索 */
  100. isSelectRanking?: boolean
  101. /** 是否开启 消耗日期 搜索 */
  102. isConsumeDay?: {
  103. ranges?: any
  104. }
  105. /** 是否开启 充值日期 搜索 */
  106. rechargeDay?: {
  107. ranges?: any
  108. }
  109. /** 是否开启 支付时间 搜索 */
  110. payTimeDay?: {
  111. ranges?: any
  112. }
  113. /** 是否开启 下单时间 搜索 */
  114. placeAnOrderDay?: {
  115. ranges?: any
  116. }
  117. /** 是否开启布谷 游戏类型 筛选 */
  118. isBGGameClassify?: boolean,
  119. /** 是否开启 单个充值日期 选择 */
  120. isRechargeDate?: boolean,
  121. /** 是否开启 开始时间 结束时间 搜索 */
  122. isBeginDay?: boolean
  123. /** 是否开启 玩家ID 搜索 */
  124. isGameUserId?: boolean
  125. /** 是否开启 操作系统 选择 */
  126. isOs?: boolean
  127. /** 是否开启 推广媒体 选择 */
  128. isType?: boolean
  129. /** 是否开启 计划ID 搜索 */
  130. isProjectId?: boolean
  131. /** 是否开启 计划名称 搜索 */
  132. isProjectName?: boolean
  133. /** 是否开启 广告ID 搜索 */
  134. isPromotionId?: boolean
  135. /** 是否开启 广告名称 搜索 */
  136. isPromotionName?: boolean
  137. /** 是否开启 头条广告状态 搜索 */
  138. isAdTTStatus?: boolean
  139. /** 是否开启 腾讯广告状态 搜索 */
  140. isAdTXStatus?: boolean
  141. /** 是否开启 展示数据类型(买量,自然,总) 搜索 */
  142. isUserEnterType?: boolean
  143. /** 是否开启 区服名称 搜索 */
  144. isServerName?: boolean
  145. /** 是否开启区服ID 搜索 */
  146. isServerId?: boolean
  147. /** 是否开启 开服时间 搜索 */
  148. isServerDay?: {
  149. ranges?: any
  150. }
  151. /** 是否开启 充值到支付的间隔时间 搜索 */
  152. isPayIntervalTime?: {
  153. tips?: string
  154. }
  155. /** 是否开启 充值到支付的间隔时间 搜索 */
  156. isRoleCount?: {
  157. tips?: string
  158. }
  159. /** 是否开启 留存数据的类型 搜索 */
  160. isActiveTypes?: boolean
  161. /** 是否开启 玩家昵称 搜索 */
  162. isNickname?: boolean
  163. /** 是否开启 绑定手机 搜索 */
  164. isMobile?: boolean
  165. /** 是否开启 注册IP 搜索 */
  166. isRegIp?: boolean
  167. /** 是否开启 IP 搜索 */
  168. isIp?: boolean
  169. /** 是否开启 是否实名认证 搜索 */
  170. isIsAuth?: boolean
  171. /** 是否开启 是否绑定手机 搜索 */
  172. isIsBindMobile?: boolean
  173. /** 是否开启 是否充值 搜索 */
  174. isIsRecharge?: boolean
  175. /** 是否开启 玩家状态 搜索 */
  176. isUserStatus?: boolean
  177. /** 是否开启 是否创角 搜索 */
  178. isCreateRole?: boolean
  179. /** 是否开启 角色VIP 搜索 */
  180. isVipLevel?: boolean
  181. /** 是否开启 是否转端 搜索 */
  182. isIsChange?: boolean
  183. /** 是否开启 邮件是否发送 搜索 */
  184. isIsSendMail?: boolean
  185. /** 是否开启 企业微信号 搜索 */
  186. isWeChatCompany?: boolean
  187. /** 是否开启 企业微信号 搜索 */
  188. isWeChat?: boolean
  189. /** 是否开启 客服 搜索*/
  190. isCustomerServerId?: boolean
  191. /** 是否开启 运营 搜索 */
  192. isOperatorId?: boolean
  193. /** 是否开启GS 搜索 */
  194. isGsId?: boolean
  195. /** 是否开启多个区服id搜索 */
  196. isServerIds?: boolean
  197. /** 是否开启 游戏区服 搜索 */
  198. isGameServerName?: boolean
  199. /** 是否开启多个区服id搜索 */
  200. isRankingNum?: boolean
  201. /** 是否开启 客户端类型 搜索 */
  202. isDeviceType?: boolean
  203. /** 是否开启 登录类型 搜索 */
  204. isLoginType?: boolean
  205. /** 是否开启 原始区服列表 搜索 */
  206. isServerIdUn?: boolean
  207. }
  208. /**
  209. * 游戏数据系统 请求参数
  210. * @returns
  211. */
  212. const QueryForm: React.FC<Props> = (props) => {
  213. /**************************/
  214. const {
  215. onChange, initialValues, isSource, isAccount, isAccountId, isCompanyId, isAgentKey, isAgentName, isCpId, isCpName, isCpOrderId, isCpStatus, isCreateDay, isDevice, isGameName, isRechargeGameName, isGameId, isGameIds, isOrderGameId, isGameRoleId,
  216. isGameRoleName, isFirstRecharge, isSwitch, isMerchantNo, isOrderId, isMerchantOrderNo, isPayStatus, isPayWay, isProductName, isRegAgent, isAgentId, isPutAgent, isRegDay, isOs, isParentId, isProjectId, isProjectName, isPromotionId, isPromotionName,
  217. isSysUserName, isRechargeDate, isBGGameClassify, isGameUserId, isSysUserId, isUserName, isUserId, isSelectRanking, isGameType, isConsumeDay, rechargeDay, isBeginDay, isType, isAdTTStatus, isUserEnterType, isServerName, isServerId, isServerDay, isAdTXStatus,
  218. payTimeDay, placeAnOrderDay, isPayIntervalTime, isActiveTypes, isNickname, isMobile, isRegIp, isIsAuth, isIsBindMobile, isIsRecharge, isUserStatus, isCreateRole, isRoleCount, isVipLevel, isCreateRoleDay, isIsChange, isIsSendMail, isWeChatCompany, isWeChat,
  219. isCustomerServerId, isOperatorId, isGsId, isServerIds, isRankingNum, isIsMergeServer, isSuperParentGameId, isGameServerName, isIp, isDeviceType, isLoginType, isServerIdUn
  220. } = props
  221. const [form] = Form.useForm()
  222. const parentId = Form.useWatch('parentId', form)
  223. const superParentGameId = Form.useWatch('superParentGameId', form)
  224. const isMergeServer = Form.useWatch('isMergeServer', form)
  225. const serverName = Form.useWatch('serverName', form)
  226. const serverIds = Form.useWatch('serverIds', form)
  227. const [accountList, setAccountList] = useState<any[]>([])
  228. const [userIdList, setUserIdList] = useState<any[]>([])
  229. const [gsList, setGsList] = useState<any[]>([])
  230. const [customerList, setCustomerList] = useState<any[]>([])
  231. const [operateList, setOperateList] = useState<any[]>([])
  232. const [gameList, setGameList] = useState<any[]>([])
  233. const [parentGameList, setParentGameList] = useState<any[]>([])
  234. const [superGameList, setSuperGameList] = useState<any[]>([])
  235. const getAllOfOwnerUser = useAjax(() => getAllOfOwnerUserApi())
  236. const getTtAllUserList = useAjax(() => getTtAllUserListApi())
  237. const getGameChoiceList = useAjax(() => getGameChoiceListApi())
  238. const getSubUserWithSelfList = useAjax(() => getSubUserWithSelfListApi())
  239. const getChannelChoiceList = useAjax(() => getChannelChoiceListApi())
  240. const getGameChoiceParentListType1 = useAjax(() => getGameChoiceParentListType1Api())
  241. const getUserSystemTypeChoiceList = useAjax(() => getUserSystemTypeChoiceListApi())
  242. const getCpChoiceList = useAjax(() => getCpChoiceListApi())
  243. const getPayList = useAjax(() => getPayListApi())
  244. const getUserVipLevelChoiceList = useAjax(() => getUserVipLevelChoiceListApi())
  245. const getGameList = useAjax(() => getGameListApi())
  246. const getRoleUserList = useAjax((params) => getRoleUserListApi(params))
  247. const getGameServerList = useAjax((params) => getGameServerListApi(params))
  248. const getGameServerUnList = useAjax((params) => getGameServerUnListApi(params))
  249. /**************************/
  250. useEffect(() => {
  251. if (isCustomerServerId || isOperatorId || isGsId) {
  252. const getList = async () => {
  253. // 游戏GS
  254. let gs = await getRoleUserList.run({ authType: 'GS' })
  255. setGsList(gs ? Object.keys(gs)?.map(key => ({ userId: key, nickname: gs[key] })) : [])
  256. // 运营
  257. let operate = await getRoleUserList.run({ authType: 'OPERATE' })
  258. setOperateList(operate ? Object.keys(operate)?.map(key => ({ userId: key, nickname: operate[key] })) : [])
  259. // 客服
  260. let customer = await getRoleUserList.run({ authType: 'CUSTOMER' })
  261. setCustomerList(customer ? Object.keys(customer)?.map(key => ({ userId: key, nickname: customer[key] })) : [])
  262. }
  263. getList()
  264. }
  265. }, [isCustomerServerId, isOperatorId, isGsId])
  266. useEffect(() => {
  267. if (isAccountId) {
  268. // 请求广告账号列表
  269. async function getAccount() {
  270. let data: any[] = []
  271. let res1 = await getAllOfOwnerUser.run()
  272. let data1 = []
  273. if (res1) {
  274. data1 = res1?.map((item: any) => ({ label: item.accountId, value: item.accountId, corporationName: item.corporationName }))
  275. }
  276. let res2 = await getTtAllUserList.run()
  277. let data2 = []
  278. if (res2) {
  279. data2 = res2?.map((item: any) => ({ label: item.accountId, value: item.accountId, corporationName: item.accountName }))
  280. }
  281. data = [...data1, ...data2]
  282. setAccountList(data)
  283. }
  284. getAccount()
  285. }
  286. }, [isAccountId])
  287. /** 游戏列表 */
  288. useEffect(() => {
  289. if (isGameId || isOrderGameId || isParentId || isGameIds || isSuperParentGameId) {
  290. getGameList.run().then(res => {
  291. const { gameList, parentGameList, superGameList } = res
  292. setGameList(gameList)
  293. setParentGameList(parentGameList)
  294. setSuperGameList(superGameList)
  295. })
  296. getGameChoiceList.run()
  297. }
  298. }, [isGameId, isGameIds, isOrderGameId, isParentId, isSuperParentGameId])
  299. useEffect(() => {
  300. if (isCpId) {
  301. getCpChoiceList.run()
  302. }
  303. }, [isCpId])
  304. useEffect(() => {
  305. if (isVipLevel) {
  306. getUserVipLevelChoiceList.run()
  307. }
  308. }, [isVipLevel])
  309. /** 投手列表 */
  310. useEffect(() => {
  311. if (isSysUserId) {
  312. getSubUserWithSelfList.run().then(res => {
  313. setUserIdList(res ? Object.keys(res)?.map(key => ({ userId: key, nickname: res[key] })) : [])
  314. })
  315. }
  316. }, [isSysUserId])
  317. /** 推广渠道 */
  318. useEffect(() => {
  319. if (isAgentId) {
  320. getChannelChoiceList.run()
  321. }
  322. }, [isAgentId])
  323. /** 游戏应用类型 */
  324. useEffect(() => {
  325. if (isGameType) {
  326. getGameChoiceParentListType1.run()
  327. }
  328. }, [isGameType])
  329. /** 操作系统 */
  330. useEffect(() => {
  331. if (isOs) {
  332. getUserSystemTypeChoiceList.run()
  333. }
  334. }, [isOs])
  335. /** 支付方式 */
  336. useEffect(() => {
  337. if (isPayWay) {
  338. getPayList.run()
  339. }
  340. }, [isPayWay])
  341. const onFinish = (data: any) => {
  342. // 处理订单创建日期
  343. if (isCreateDay) {
  344. if (data?.createDay && data?.createDay?.length > 0) {
  345. data.beginOrderTime = moment(data?.createDay[0]).format('YYYY-MM-DD')
  346. data.endOrderTime = moment(data?.createDay[1]).format('YYYY-MM-DD')
  347. } else {
  348. data.beginOrderTime = ''
  349. data.endOrderTime = ''
  350. }
  351. delete data.createDay
  352. }
  353. // 处理 用户注册日期
  354. if (isRegDay) {
  355. if (data?.regDay && data?.regDay?.length > 0) {
  356. data.regStartDay = moment(data?.regDay[0]).format('YYYY-MM-DD')
  357. data.regEndDay = moment(data?.regDay[1]).format('YYYY-MM-DD')
  358. } else {
  359. data.regStartDay = ''
  360. data.regEndDay = ''
  361. }
  362. delete data.regDay
  363. }
  364. // 处理 消耗日期
  365. if (isConsumeDay) {
  366. if (data?.consumeDay && data?.consumeDay?.length > 0) {
  367. data.costBeginDay = moment(data?.consumeDay[0]).format('YYYY-MM-DD')
  368. data.costEndDay = moment(data?.consumeDay[1]).format('YYYY-MM-DD')
  369. } else {
  370. data.costBeginDay = ''
  371. data.costEndDay = ''
  372. }
  373. delete data.consumeDay
  374. }
  375. // 处理 不同排行榜 选择
  376. if (isSelectRanking) {
  377. switch (data?.dateType) {
  378. case 'all':
  379. data.beginDay = ''
  380. data.endDay = ''
  381. break;
  382. case 'today':
  383. data.beginDay = moment().format('YYYY-MM-DD')
  384. data.endDay = moment().format('YYYY-MM-DD')
  385. break
  386. case 'yesterday':
  387. data.beginDay = moment().subtract(1, 'd').format('YYYY-MM-DD')
  388. data.endDay = moment().subtract(1, 'd').format('YYYY-MM-DD')
  389. break
  390. case '7days':
  391. data.beginDay = moment().subtract(7, 'd').format('YYYY-MM-DD')
  392. data.endDay = moment().format('YYYY-MM-DD')
  393. break
  394. case '30days':
  395. data.beginDay = moment().subtract(30, 'd').format('YYYY-MM-DD')
  396. data.endDay = moment().format('YYYY-MM-DD')
  397. break
  398. }
  399. delete data?.dateType
  400. }
  401. console.log('更新了字段---->', data);
  402. onChange && onChange(data)
  403. }
  404. return <Form layout="inline" className='queryForm' initialValues={initialValues} name="basic" form={form} onFinish={onFinish}>
  405. <Row gutter={[0, 6]}>
  406. {/* 数据源搜索 */}
  407. {isSource && <Col><Form.Item name='sourceSystem'>
  408. <Select
  409. showSearch
  410. style={{ width: 100 }}
  411. allowClear
  412. placeholder={'数据源选择'}
  413. filterOption={(input, option) =>
  414. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  415. }
  416. >
  417. <Select.Option value="BG_OLD">布谷-old</Select.Option>
  418. <Select.Option value="BG_NEW">布谷-new</Select.Option>
  419. <Select.Option value="ZX_SDK">布谷-zx</Select.Option>
  420. <Select.Option value="ZX_ONE">赞象</Select.Option>
  421. </Select>
  422. </Form.Item></Col>}
  423. {/* 展示数据类型 */}
  424. {isUserEnterType && <Col><Form.Item name='tableTypes'>
  425. <Select
  426. showSearch
  427. style={{ width: 130 }}
  428. allowClear
  429. placeholder={'展示数据类型'}
  430. filterOption={(input, option) =>
  431. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  432. }
  433. >
  434. <Select.Option value="buy">买量</Select.Option>
  435. <Select.Option value="nature">自然量</Select.Option>
  436. <Select.Option value="total">总量</Select.Option>
  437. </Select>
  438. </Form.Item></Col>}
  439. {isActiveTypes && <Col><Form.Item name='activeTypes'>
  440. <Select
  441. showSearch
  442. style={{ width: 130 }}
  443. placeholder={'留存数据的类型'}
  444. filterOption={(input, option) =>
  445. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  446. }
  447. >
  448. {Object.keys(ActiveEnum).map(key => <Select.Option value={key} key={key}>{ActiveEnum[key]}</Select.Option>)}
  449. </Select>
  450. </Form.Item></Col>}
  451. {/* 不同排行榜选择 */}
  452. {isSelectRanking && <Col><Form.Item name='dateType'>
  453. <Radio.Group>
  454. <Radio.Button value="all">总排行</Radio.Button>
  455. <Radio.Button value="today">今日排行</Radio.Button>
  456. <Radio.Button value="yesterday">昨日排行</Radio.Button>
  457. <Radio.Button value="7days">7日排行</Radio.Button>
  458. <Radio.Button value="30days">30日排行</Radio.Button>
  459. </Radio.Group>
  460. </Form.Item></Col>}
  461. {/* 广告区服名称 */}
  462. {isServerName && <Col><Form.Item name='serverName'>
  463. <Input placeholder="区服名称" allowClear style={{ width: 140 }} />
  464. </Form.Item></Col>}
  465. {/* 广告区服ID */}
  466. {isServerId && <Col><Form.Item name='serverId'>
  467. <Input placeholder="区服ID" allowClear style={{ width: 140 }} />
  468. </Form.Item></Col>}
  469. {/* 广告账户名称 */}
  470. {isAccount && <Col><Form.Item name='accountName'>
  471. <Input placeholder="广告账号名称" allowClear style={{ width: 140 }} />
  472. </Form.Item></Col>}
  473. {/* 广告账号ID */}
  474. {isAccountId && <Col><Form.Item name='accountId'>
  475. <Select
  476. maxTagCount={1}
  477. showSearch
  478. style={{ width: 140 }}
  479. allowClear
  480. placeholder={'广告账号'}
  481. filterOption={(input, option) =>
  482. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  483. }
  484. >
  485. {accountList.map(item => <Select.Option key={item.value} value={item.value}>{item.label.toString() + '_' + item.corporationName}</Select.Option>)}
  486. </Select>
  487. </Form.Item></Col>}
  488. {/* 公司ID */}
  489. {isCompanyId && <Col><Form.Item name='companyId'>
  490. <Select
  491. maxTagCount={1}
  492. showSearch
  493. style={{ minWidth: 140 }}
  494. allowClear
  495. placeholder={'请选择公司'}
  496. filterOption={(input, option) =>
  497. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  498. }
  499. >
  500. <Select.Option value={'1'}>公司001</Select.Option>
  501. <Select.Option value={'2'}>公司002</Select.Option>
  502. </Select>
  503. </Form.Item></Col>}
  504. {/* cp名 */}
  505. {isCpName && <Col><Form.Item name='cpName'>
  506. <Input placeholder="CP名称" allowClear style={{ width: 140 }} />
  507. </Form.Item></Col>}
  508. {/* CPID */}
  509. {isCpId && <Col><Form.Item name='cpId'>
  510. <Select
  511. maxTagCount={1}
  512. showSearch
  513. style={{ minWidth: 140 }}
  514. allowClear
  515. placeholder={'请选择CP'}
  516. filterOption={(input, option) =>
  517. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  518. }
  519. >
  520. {getCpChoiceList?.data?.map((item: { id: React.Key | null | undefined; cpName: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined }) => <Select.Option value={item.id} key={item.id}>{item.cpName}</Select.Option>)}
  521. </Select>
  522. </Form.Item></Col>}
  523. {/* CP方订单ID */}
  524. {isCpOrderId && <Col><Form.Item name='cpOrderId'>
  525. <Input placeholder="CP订单号" style={{ width: 140 }} />
  526. </Form.Item></Col>}
  527. {/* CP通知状态 */}
  528. {isCpStatus && <Col><Form.Item name='cpStatus'>
  529. <Select
  530. maxTagCount={1}
  531. showSearch
  532. style={{ minWidth: 140 }}
  533. allowClear
  534. placeholder={'CP通知状态'}
  535. filterOption={(input, option) =>
  536. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  537. }
  538. >
  539. <Select.Option value={'1'}>待处理</Select.Option>
  540. <Select.Option value={'2'}>成功</Select.Option>
  541. <Select.Option value={'3'}>失败</Select.Option>
  542. </Select>
  543. </Form.Item></Col>}
  544. {/* 计划名称 */}
  545. {isProjectName && <Col><Form.Item name='projectName'>
  546. <Input placeholder="项目名称" allowClear style={{ width: 140 }} />
  547. </Form.Item></Col>}
  548. {/* 计划ID */}
  549. {isProjectId && <Col><Form.Item name='projectId'>
  550. <Input placeholder="项目ID" allowClear style={{ width: 140 }} />
  551. </Form.Item></Col>}
  552. {/* 广告名称 */}
  553. {isPromotionName && <Col><Form.Item name='promotionName'>
  554. <Input placeholder="广告名称" allowClear style={{ width: 140 }} />
  555. </Form.Item></Col>}
  556. {/* 广告ID */}
  557. {isPromotionId && <Col><Form.Item name='promotionId'>
  558. <Input placeholder="广告ID" allowClear style={{ width: 140 }} />
  559. </Form.Item></Col>}
  560. {/* 广告状态 */}
  561. {isAdTTStatus && <Col><Form.Item name='status'>
  562. <Select
  563. maxTagCount={1}
  564. showSearch
  565. style={{ width: 140 }}
  566. allowClear
  567. dropdownMatchSelectWidth={false}
  568. placeholder={'请选择广告状态'}
  569. filterOption={(input, option) =>
  570. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  571. }
  572. >
  573. {Object.keys(ADSTTTATUSEnum).map(key => <Select.Option value={key} key={key}>{ADSTTTATUSEnum[key]}</Select.Option>)}
  574. </Select>
  575. </Form.Item></Col>}
  576. {isAdTXStatus && <Col><Form.Item name='status'>
  577. <Select
  578. maxTagCount={1}
  579. showSearch
  580. style={{ width: 140 }}
  581. allowClear
  582. dropdownMatchSelectWidth={false}
  583. placeholder={'请选择广告状态'}
  584. filterOption={(input, option) =>
  585. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  586. }
  587. >
  588. {Object.keys(ADSTATUSEnum).map(key => <Select.Option value={key} key={key}>{ADSTATUSEnum[key]}</Select.Option>)}
  589. </Select>
  590. </Form.Item></Col>}
  591. {/* 客户端类型 */}
  592. {isDeviceType && <Col><Form.Item name='deviceType'>
  593. <Select
  594. maxTagCount={1}
  595. showSearch
  596. style={{ width: 140 }}
  597. allowClear
  598. dropdownMatchSelectWidth={false}
  599. placeholder={'请选择客户端类型'}
  600. filterOption={(input, option) =>
  601. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  602. }
  603. >
  604. {Object.keys(DeviceType).map(key => <Select.Option value={key} key={key}>{DeviceType[key]}</Select.Option>)}
  605. </Select>
  606. </Form.Item></Col>}
  607. {/* 登录类型 */}
  608. {isLoginType && <Col><Form.Item name='type'>
  609. <Select
  610. maxTagCount={1}
  611. showSearch
  612. style={{ width: 140 }}
  613. allowClear
  614. dropdownMatchSelectWidth={false}
  615. placeholder={'请选择登录类型'}
  616. filterOption={(input, option) =>
  617. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  618. }
  619. >
  620. {Object.keys(LoginType).map(key => <Select.Option value={key} key={key}>{LoginType[key]}</Select.Option>)}
  621. </Select>
  622. </Form.Item></Col>}
  623. {/* 操作设备 */}
  624. {isDevice && <Col><Form.Item name='device'>
  625. <Input placeholder="操作设备" allowClear style={{ width: 140 }} />
  626. </Form.Item></Col>}
  627. {/* 游戏名 */}
  628. {isRechargeGameName && <Col><Form.Item name='rechargeGameName'>
  629. <Input placeholder="游戏名" allowClear style={{ width: 140 }} />
  630. </Form.Item></Col>}
  631. {/* 玩家ID */}
  632. {isGameUserId && <Col><Form.Item name='gameUserId'>
  633. <Input placeholder="玩家ID" allowClear style={{ width: 140 }} />
  634. </Form.Item></Col>}
  635. {/* 游戏名 */}
  636. {isGameName && <Col><Form.Item name='gameName'>
  637. <Input placeholder="游戏名" allowClear style={{ width: 140 }} />
  638. </Form.Item></Col>}
  639. {/* 游戏ID搜索 */}
  640. {isGameId && <Col><Form.Item name='gameId'>
  641. <Select
  642. maxTagCount={1}
  643. showSearch
  644. style={{ minWidth: 140 }}
  645. allowClear
  646. placeholder={'请选择游戏'}
  647. filterOption={(input, option) =>
  648. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  649. }
  650. >
  651. {getGameChoiceList?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.name}</Select.Option>)}
  652. </Select>
  653. </Form.Item></Col>}
  654. {isGameIds && <Col><Form.Item name='gameId'>
  655. <Select
  656. maxTagCount={1}
  657. mode="multiple"
  658. showSearch
  659. style={{ minWidth: 140 }}
  660. allowClear
  661. placeholder={'请选择游戏'}
  662. filterOption={(input, option) =>
  663. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  664. }
  665. >
  666. {getGameChoiceList?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.name}</Select.Option>)}
  667. </Select>
  668. </Form.Item></Col>}
  669. {/* 充值游戏ID */}
  670. {isOrderGameId && <Col><Form.Item name='orderGameId'>
  671. <Select
  672. maxTagCount={1}
  673. showSearch
  674. style={{ minWidth: 140 }}
  675. allowClear
  676. placeholder={'请选择充值游戏'}
  677. filterOption={(input, option) =>
  678. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  679. }
  680. >
  681. {getGameChoiceList?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.name}</Select.Option>)}
  682. </Select>
  683. </Form.Item></Col>}
  684. {/* 超父游戏ID */}
  685. {isSuperParentGameId && <Col><Form.Item name='superParentGameId'>
  686. <Select
  687. maxTagCount={1}
  688. showSearch
  689. style={{ minWidth: 140 }}
  690. allowClear
  691. disabled={parentId}
  692. placeholder={'请选择超父游戏'}
  693. filterOption={(input, option) =>
  694. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  695. }
  696. onChange={(e) => {
  697. if (isServerIds && e) {
  698. form.setFieldsValue({ serverIds: undefined })
  699. getGameServerList.run({ gameId: e })
  700. } else {
  701. getGameServerList?.data && getGameServerList.mutate([])
  702. }
  703. }}
  704. >
  705. {superGameList?.map((item: any) => <Select.Option value={item.super_game_id} key={item.super_game_id}>{item.super_game_name}</Select.Option>)}
  706. </Select>
  707. </Form.Item></Col>}
  708. {/* 父游戏ID */}
  709. {isParentId && <Col><Form.Item name='parentId'>
  710. <Select
  711. maxTagCount={1}
  712. showSearch
  713. style={{ minWidth: 140 }}
  714. allowClear
  715. disabled={superParentGameId}
  716. placeholder={'请选择父游戏'}
  717. filterOption={(input, option) =>
  718. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  719. }
  720. onChange={(e, option) => {
  721. if (isServerIds) {
  722. form.setFieldsValue({ serverIds: undefined })
  723. if (option?.['data-super-id']) {
  724. getGameServerList.run({ gameId: option['data-super-id'] })
  725. } else {
  726. getGameServerList?.data && getGameServerList.mutate([])
  727. }
  728. }
  729. if (isServerIdUn) {
  730. form.setFieldsValue({ serverId: undefined })
  731. if (option?.['data-super-id']) {
  732. getGameServerUnList.run({ gameId: option['data-super-id'] })
  733. } else {
  734. getGameServerUnList?.data && getGameServerUnList.mutate([])
  735. }
  736. }
  737. }}
  738. >
  739. {parentGameList?.map((item: any) => <Select.Option value={item.parent_game_id} key={item.parent_game_id} data-super-id={item.super_game_id}>{item.parent_game_name}</Select.Option>)}
  740. </Select>
  741. </Form.Item></Col>}
  742. {(parentId || superParentGameId) && <>
  743. {/* 广告区服名称 */}
  744. {isGameServerName && <Col><Form.Item name='serverName'>
  745. <Input placeholder="区服名称" allowClear style={{ width: 140 }} disabled={serverIds?.length > 0} />
  746. </Form.Item></Col>}
  747. {/* 区服id */}
  748. {isServerIds && <Col><Form.Item name='serverIds'>
  749. <Select
  750. maxTagCount={1}
  751. mode="multiple"
  752. showSearch
  753. disabled={serverName}
  754. style={{ minWidth: 140 }}
  755. allowClear
  756. placeholder={'请选择区服'}
  757. filterOption={(input, option) =>
  758. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  759. }
  760. loading={getGameServerList.loading}
  761. >
  762. {getGameServerList?.data?.filter((item: { isSourceServer: any }) => (isIsMergeServer && ((!isMergeServer && item.isSourceServer) || (isMergeServer && !item.isSourceServer))) || !isIsMergeServer)?.map((item: any) => <Select.Option value={item.serverId} key={item.serverId}>{item.serverName}</Select.Option>)}
  763. </Select>
  764. </Form.Item></Col>}
  765. {/* 是否合服 */}
  766. {isIsMergeServer && <Col><Form.Item name='isMergeServer' valuePropName="checked">
  767. <Checkbox onChange={() => form.setFieldsValue({ serverIds: undefined })}>是否合服</Checkbox>
  768. </Form.Item></Col>}
  769. {/* 区服id */}
  770. {isServerIdUn && <Col><Form.Item name='serverId'>
  771. <Select
  772. maxTagCount={1}
  773. mode="multiple"
  774. showSearch
  775. disabled={serverName}
  776. style={{ minWidth: 140 }}
  777. allowClear
  778. placeholder={'请选择区服'}
  779. filterOption={(input, option) =>
  780. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  781. }
  782. loading={getGameServerUnList.loading}
  783. >
  784. {getGameServerUnList?.data?.filter((item: { isSourceServer: any }) => item.isSourceServer)?.map((item: any) => <Select.Option value={item.serverId} key={item.serverId}>{item.serverName}</Select.Option>)}
  785. </Select>
  786. </Form.Item></Col>}
  787. </>}
  788. {/* 游戏应用类型搜索 */}
  789. {isGameType && <Col><Form.Item name='gameType'>
  790. <Select
  791. maxTagCount={1}
  792. showSearch
  793. style={{ minWidth: 140 }}
  794. allowClear
  795. placeholder={'请选择游戏应用类型'}
  796. filterOption={(input, option) =>
  797. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  798. }
  799. >
  800. {getGameChoiceParentListType1?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.name}</Select.Option>)}
  801. </Select>
  802. </Form.Item></Col>}
  803. {/* 布谷游戏应用类型搜索 */}
  804. {isBGGameClassify && <Col><Form.Item name='gameClassify'>
  805. <Select
  806. maxTagCount={1}
  807. showSearch
  808. style={{ width: 140 }}
  809. allowClear
  810. placeholder={'游戏应用类型'}
  811. filterOption={(input, option) =>
  812. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  813. }
  814. >
  815. {Object.keys(gameClassifyEnum).map(key => <Select.Option value={key} key={key}>{gameClassifyEnum[key]}</Select.Option>)}
  816. </Select>
  817. </Form.Item></Col>}
  818. {/* 游戏角色名 */}
  819. {isGameRoleName && <Col><Form.Item name='roleName'>
  820. <Input placeholder="游戏角色名" allowClear style={{ width: 140 }} />
  821. </Form.Item></Col>}
  822. {/* 游戏角色名id搜索 */}
  823. {isGameRoleId && <Col><Form.Item name='roleId'>
  824. <Input placeholder="角色ID" allowClear style={{ width: 140 }} />
  825. </Form.Item></Col>}
  826. {/* 客户微信号 */}
  827. {isWeChat && <Col><Form.Item name='weChat'>
  828. <Input placeholder="客户微信号" allowClear style={{ width: 140 }} />
  829. </Form.Item></Col>}
  830. {/* 客户微信号 */}
  831. {isWeChatCompany && <Col><Form.Item name='weChatCompany'>
  832. <Input placeholder="企业微信号" allowClear style={{ width: 140 }} />
  833. </Form.Item></Col>}
  834. {/* 是否首充 */}
  835. {isFirstRecharge && <Col><Form.Item name='isFirstRecharge'>
  836. <Select
  837. maxTagCount={1}
  838. showSearch
  839. style={{ width: 100 }}
  840. allowClear
  841. placeholder={'是否首充'}
  842. filterOption={(input, option) =>
  843. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  844. }
  845. >
  846. <Select.Option value={'0'}>否</Select.Option>
  847. <Select.Option value={'1'}>是</Select.Option>
  848. </Select>
  849. </Form.Item></Col>}
  850. {/* 是否切量 */}
  851. {isSwitch && <Col><Form.Item name='isSwitch'>
  852. <Select
  853. maxTagCount={1}
  854. showSearch
  855. style={{ minWidth: 140 }}
  856. allowClear
  857. placeholder={'请选择是否切量'}
  858. filterOption={(input, option) =>
  859. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  860. }
  861. >
  862. <Select.Option value={'0'}>否</Select.Option>
  863. <Select.Option value={'1'}>是</Select.Option>
  864. </Select>
  865. </Form.Item></Col>}
  866. {/* 收款商户号 */}
  867. {isMerchantNo && <Col><Form.Item name='merchantNo'>
  868. <Input placeholder="收款商户号" allowClear style={{ width: 140 }} />
  869. </Form.Item></Col>}
  870. {/* 收款商户号 */}
  871. {isMerchantOrderNo && <Col><Form.Item name='merchantOrderNo'>
  872. <Input placeholder="第三方支付订单号" allowClear style={{ width: 140 }} />
  873. </Form.Item></Col>}
  874. {/* 收款商户号 */}
  875. {isOrderId && <Col><Form.Item name='orderId'>
  876. <Input placeholder="商户订单号" allowClear style={{ width: 140 }} />
  877. </Form.Item></Col>}
  878. {/* 支付状态 */}
  879. {isPayStatus && <Col><Form.Item name='orderStatus'>
  880. <Select
  881. showSearch
  882. style={{ width: 100 }}
  883. allowClear
  884. placeholder={'支付状态'}
  885. filterOption={(input, option) =>
  886. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  887. }
  888. >
  889. {Object.keys(PayStatus).map(key => <Select.Option value={key} key={key}>{PayStatus[key]}</Select.Option>)}
  890. </Select>
  891. </Form.Item></Col>}
  892. {/* 支付方式 */}
  893. {isPayWay && <Col><Form.Item name='payWay'>
  894. <Select
  895. showSearch
  896. style={{ width: 100 }}
  897. allowClear
  898. placeholder={'支付方式'}
  899. filterOption={(input, option) =>
  900. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  901. }
  902. >
  903. {getPayList?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.payName}</Select.Option>)}
  904. </Select>
  905. </Form.Item></Col>}
  906. {/* 推广媒体 */}
  907. {isType && <Col><Form.Item name='type'>
  908. <Select
  909. showSearch
  910. style={{ width: 100 }}
  911. allowClear
  912. placeholder={'推广媒体'}
  913. filterOption={(input, option) =>
  914. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  915. }
  916. >
  917. {Object.keys(TYPE).map(key => <Select.Option value={key} key={key}>{TYPE[key]}</Select.Option>)}
  918. </Select>
  919. </Form.Item></Col>}
  920. {/* 产品名称 */}
  921. {isProductName && <Col><Form.Item name='productName'>
  922. <Input placeholder="产品名称" allowClear style={{ width: 140 }} />
  923. </Form.Item></Col>}
  924. {/* 注册渠道名 */}
  925. {isRegAgent && <Col><Form.Item name='regAgent'>
  926. <Input placeholder="注册渠道名" allowClear style={{ width: 140 }} />
  927. </Form.Item></Col>}
  928. {/* 渠道标识 */}
  929. {isAgentKey && <Col><Form.Item name='agentKey'>
  930. <Input placeholder="渠道标识" allowClear style={{ width: 140 }} />
  931. </Form.Item></Col>}
  932. {/* 渠道名称 */}
  933. {isAgentName && <Col><Form.Item name='agentName'>
  934. <Input placeholder="渠道名称" allowClear style={{ width: 140 }} />
  935. </Form.Item></Col>}
  936. {/* 推广渠道id */}
  937. {isAgentId && <Col><Form.Item name='agentId'>
  938. <Select
  939. maxTagCount={1}
  940. mode="multiple"
  941. showSearch
  942. style={{ minWidth: 140 }}
  943. allowClear
  944. dropdownMatchSelectWidth={false}
  945. placeholder={'请选择渠道'}
  946. filterOption={(input, option) =>
  947. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  948. }
  949. >
  950. {getChannelChoiceList?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.agentName}</Select.Option>)}
  951. </Select>
  952. </Form.Item></Col>}
  953. {/* 投放渠道名 */}
  954. {isPutAgent && <Col><Form.Item name='putAgent'>
  955. <Input placeholder="投放渠道名" allowClear style={{ width: 140 }} />
  956. </Form.Item></Col>}
  957. {/* 投手名 */}
  958. {isSysUserName && <Col><Form.Item name='sysUserName'>
  959. <Input placeholder="投手名" allowClear style={{ width: 140 }} />
  960. </Form.Item></Col>}
  961. {/* 投手ID */}
  962. {isSysUserId && <Col><Form.Item name='pitcherId'>
  963. <Select
  964. maxTagCount={1}
  965. showSearch
  966. style={{ width: 120 }}
  967. allowClear
  968. placeholder={'请选择投手'}
  969. filterOption={(input, option) =>
  970. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  971. }
  972. >
  973. {userIdList.map((item: any) => <Select.Option value={item.userId} key={item.userId}>{item.nickname}</Select.Option>)}
  974. </Select>
  975. </Form.Item></Col>}
  976. {/* 客服ID */}
  977. {isCustomerServerId && <Col><Form.Item name='customerServerId'>
  978. <Select
  979. maxTagCount={1}
  980. showSearch
  981. style={{ width: 120 }}
  982. allowClear
  983. placeholder={'请选择客服'}
  984. filterOption={(input, option) =>
  985. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  986. }
  987. >
  988. {customerList.map((item: any) => <Select.Option value={item.userId} key={item.userId}>{item.nickname}</Select.Option>)}
  989. </Select>
  990. </Form.Item></Col>}
  991. {/* 运营ID */}
  992. {isOperatorId && <Col><Form.Item name='operatorId'>
  993. <Select
  994. maxTagCount={1}
  995. showSearch
  996. style={{ width: 120 }}
  997. allowClear
  998. placeholder={'请选择运营'}
  999. filterOption={(input, option) =>
  1000. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1001. }
  1002. >
  1003. {operateList.map((item: any) => <Select.Option value={item.userId} key={item.userId}>{item.nickname}</Select.Option>)}
  1004. </Select>
  1005. </Form.Item></Col>}
  1006. {/* GSID */}
  1007. {isGsId && <Col><Form.Item name='gsId'>
  1008. <Select
  1009. maxTagCount={1}
  1010. showSearch
  1011. style={{ width: 120 }}
  1012. allowClear
  1013. placeholder={'请选择GS'}
  1014. filterOption={(input, option) =>
  1015. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1016. }
  1017. >
  1018. {gsList.map((item: any) => <Select.Option value={item.userId} key={item.userId}>{item.nickname}</Select.Option>)}
  1019. </Select>
  1020. </Form.Item></Col>}
  1021. {/* 玩家账号 */}
  1022. {isUserName && <Col><Form.Item name='username'>
  1023. <Input placeholder="玩家账号" allowClear style={{ width: 140 }} />
  1024. </Form.Item></Col>}
  1025. {/* 用户id */}
  1026. {isUserId && <Col><Form.Item name='userId'>
  1027. <Input placeholder="用户ID" allowClear style={{ width: 140 }} />
  1028. </Form.Item></Col>}
  1029. {/* 玩家昵称 */}
  1030. {isNickname && <Col><Form.Item name='nickname'>
  1031. <Input placeholder="玩家昵称" allowClear style={{ width: 140 }} />
  1032. </Form.Item></Col>}
  1033. {/* 绑定手机 */}
  1034. {isMobile && <Col><Form.Item name='mobile'>
  1035. <Input placeholder="绑定手机" allowClear style={{ width: 140 }} />
  1036. </Form.Item></Col>}
  1037. {/* 注册IP */}
  1038. {isRegIp && <Col><Form.Item name='regIp'>
  1039. <Input placeholder="注册IP" allowClear style={{ width: 140 }} />
  1040. </Form.Item></Col>}
  1041. {/* 注册IP */}
  1042. {isIp && <Col><Form.Item name='ip'>
  1043. <Input placeholder="IP" allowClear style={{ width: 140 }} />
  1044. </Form.Item></Col>}
  1045. {/* 注册IP */}
  1046. {isRankingNum && <Col><Form.Item name='rankingNum'>
  1047. <InputNumber placeholder="排名范围" min={1} />
  1048. </Form.Item></Col>}
  1049. {/* 是否充值 */}
  1050. {isIsRecharge && <Col><Form.Item name='isRecharge'>
  1051. <Select
  1052. showSearch
  1053. style={{ width: 98 }}
  1054. allowClear
  1055. placeholder={'是否充值'}
  1056. filterOption={(input, option) =>
  1057. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1058. }
  1059. >
  1060. <Select.Option value={false}>否</Select.Option>
  1061. <Select.Option value={true}>是</Select.Option>
  1062. </Select>
  1063. </Form.Item></Col>}
  1064. {/* 实名状态 */}
  1065. {isIsAuth && <Col><Form.Item name='isAuth'>
  1066. <Select
  1067. showSearch
  1068. allowClear
  1069. style={{ width: 98 }}
  1070. placeholder={'实名状态'}
  1071. filterOption={(input, option) =>
  1072. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1073. }
  1074. >
  1075. <Select.Option value={false}>未实名</Select.Option>
  1076. <Select.Option value={true}>已实名</Select.Option>
  1077. </Select>
  1078. </Form.Item></Col>}
  1079. {/* 是否绑定手机 */}
  1080. {isIsBindMobile && <Col><Form.Item name='isBindMobile'>
  1081. <Select
  1082. showSearch
  1083. allowClear
  1084. style={{ width: 126 }}
  1085. placeholder={'是否绑定手机'}
  1086. filterOption={(input, option) =>
  1087. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1088. }
  1089. >
  1090. <Select.Option value={false}>未绑定</Select.Option>
  1091. <Select.Option value={true}>已绑定</Select.Option>
  1092. </Select>
  1093. </Form.Item></Col>}
  1094. {/* 玩家状态 */}
  1095. {isUserStatus && <Col><Form.Item name='userStatus'>
  1096. <Select
  1097. showSearch
  1098. allowClear
  1099. style={{ width: 110 }}
  1100. placeholder={'玩家状态'}
  1101. filterOption={(input, option) =>
  1102. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1103. }
  1104. >
  1105. <Select.Option value={'1'}>试玩</Select.Option>
  1106. <Select.Option value={'2'}>正常</Select.Option>
  1107. <Select.Option value={'3'}>冻结</Select.Option>
  1108. </Select>
  1109. </Form.Item></Col>}
  1110. {/* 是否创角 */}
  1111. {isCreateRole && <Col><Form.Item name='createRole'>
  1112. <Select
  1113. showSearch
  1114. allowClear
  1115. style={{ width: 110 }}
  1116. placeholder={'是否创角'}
  1117. filterOption={(input, option) =>
  1118. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1119. }
  1120. >
  1121. <Select.Option value={true}>是</Select.Option>
  1122. <Select.Option value={false}>否</Select.Option>
  1123. </Select>
  1124. </Form.Item></Col>}
  1125. {/* 是否转端 */}
  1126. {isIsChange && <Col><Form.Item name='isChange'>
  1127. <Select
  1128. showSearch
  1129. allowClear
  1130. style={{ width: 110 }}
  1131. placeholder={'是否转端'}
  1132. filterOption={(input, option) =>
  1133. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1134. }
  1135. >
  1136. <Select.Option value="1">是</Select.Option>
  1137. <Select.Option value="0">不转端</Select.Option>
  1138. </Select>
  1139. </Form.Item></Col>}
  1140. {/* 邮件是否发送 */}
  1141. {isIsSendMail && <Col><Form.Item name='isSendMail'>
  1142. <Select
  1143. showSearch
  1144. allowClear
  1145. style={{ width: 140 }}
  1146. placeholder={'邮件是否发送'}
  1147. filterOption={(input, option) =>
  1148. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1149. }
  1150. >
  1151. <Select.Option value="1">发送</Select.Option>
  1152. <Select.Option value="0">不发送</Select.Option>
  1153. </Select>
  1154. </Form.Item></Col>}
  1155. {/* vip等级 */}
  1156. {isVipLevel && <Col><Form.Item name='vipLevel'>
  1157. <Select
  1158. showSearch
  1159. allowClear
  1160. style={{ width: 98 }}
  1161. placeholder={'角色VIP'}
  1162. filterOption={(input, option) =>
  1163. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1164. }
  1165. >
  1166. {getUserVipLevelChoiceList?.data?.map((item: { vipLevel: React.Key | null | undefined; vipLevelName: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined }) => <Select.Option value={item.vipLevel} key={item.vipLevel}>{item.vipLevelName}</Select.Option>)}
  1167. </Select>
  1168. </Form.Item></Col>}
  1169. {/* 操作系统 */}
  1170. {isOs && <Col><Form.Item name='os'>
  1171. <Select
  1172. maxTagCount={1}
  1173. showSearch
  1174. style={{ width: 110 }}
  1175. allowClear
  1176. placeholder={'操作系统'}
  1177. filterOption={(input, option) =>
  1178. (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  1179. }
  1180. >
  1181. {getUserSystemTypeChoiceList?.data?.map((item: any) => <Select.Option value={item.os} key={item.os}>{item.os}</Select.Option>)}
  1182. </Select>
  1183. </Form.Item></Col>}
  1184. {/* 用户注册日期搜索 */}
  1185. {isRegDay && <Col><Form.Item name='regDay'>
  1186. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['注册开始日期', '注册结束日期']} {...isRegDay} />
  1187. </Form.Item></Col>}
  1188. {/* 消耗日期 搜索 */}
  1189. {isConsumeDay && <Col><Form.Item name='consumeDay'>
  1190. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['消耗开始日期', '消耗结束日期']} {...isConsumeDay} />
  1191. </Form.Item></Col>}
  1192. {/* 消耗日期 搜索 */}
  1193. {isBeginDay && <Col><Form.Item name='beginDay'>
  1194. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['开始日期', '结束日期']} />
  1195. </Form.Item></Col>}
  1196. {/* 订单创建日期搜索 */}
  1197. {isCreateDay && <Col><Form.Item name='createDay'>
  1198. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['订单创建开始日期', '订单创建结束日期']} {...isCreateDay} />
  1199. </Form.Item></Col>}
  1200. {/* 充值日期搜索 */}
  1201. {rechargeDay && <Col><Form.Item name='rechargeDay'>
  1202. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['充值开始日期', '充值结束日期']} {...rechargeDay} />
  1203. </Form.Item></Col>}
  1204. {/* 单个充值日期搜索 */}
  1205. {payTimeDay && <Col><Form.Item name='payTime'>
  1206. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['支付开始日期', '支付结束日期']} {...payTimeDay} />
  1207. </Form.Item></Col>}
  1208. {/* 单个充值日期搜索 */}
  1209. {placeAnOrderDay && <Col><Form.Item name='placeAnOrderTime'>
  1210. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['下单开始日期', '下单结束日期']} {...placeAnOrderDay} />
  1211. </Form.Item></Col>}
  1212. {/* 开服日期搜索 */}
  1213. {isServerDay && <Col><Form.Item name='serverDay'>
  1214. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['开服开始日期', '开服结束日期']} {...isServerDay} />
  1215. </Form.Item></Col>}
  1216. {/* 角色创建日期搜索 */}
  1217. {isCreateRoleDay && <Col><Form.Item name='createRoleDay'>
  1218. <DatePicker.RangePicker style={{ width: 230 }} placeholder={['角色创建开始日期', '角色创建结束日期']} {...isCreateRoleDay} />
  1219. </Form.Item></Col>}
  1220. {/* 单个充值日期搜索 */}
  1221. {isRechargeDate && <Col><Form.Item name='rechargeDate'>
  1222. <DatePicker placeholder={'充值日期'} />
  1223. </Form.Item></Col>}
  1224. {/* 单个充值日期搜索 */}
  1225. {isPayIntervalTime && <Col><Form.Item name='regPayIntervalTime'>
  1226. <IntervalTime {...isPayIntervalTime} />
  1227. </Form.Item></Col>}
  1228. {isRoleCount && <Col><Form.Item name='roleCount'>
  1229. <IntervalTime {...isRoleCount} />
  1230. </Form.Item></Col>}
  1231. <Col>
  1232. <Space>
  1233. <Button type="primary" htmlType="submit">搜索</Button>
  1234. <Button onClick={() => form.resetFields()}>重置</Button>
  1235. </Space>
  1236. </Col>
  1237. </Row>
  1238. </Form>
  1239. }
  1240. export default React.memo(QueryForm)