switchStatus.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { useAjax } from "@/Hook/useAjax"
  2. import { newEditAdqAdgroupsDataApi } from "@/services/launchAdq/adq"
  3. import { message, notification, Switch } from "antd"
  4. import React from "react"
  5. /**
  6. * 修改启停
  7. */
  8. interface Props {
  9. configuredStatus: string,
  10. isDeleted?: boolean,
  11. adgroupId: number,
  12. onChange?: () => void
  13. }
  14. const SwitchStatus: React.FC<Props> = (prosp) => {
  15. const { configuredStatus, isDeleted, adgroupId, onChange } = prosp
  16. const editAdqAdgroupsData = useAjax((params) => newEditAdqAdgroupsDataApi(params))
  17. const switchHandle = (adgroupIds: number[], configuredStatus: string) => {
  18. editAdqAdgroupsData.run({ adgroupIds, configuredStatus }).then(res => {
  19. message.success(`${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}成功`)
  20. if (res?.fail) {
  21. notification.error({
  22. message: `${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}失败`,
  23. description: `修改失败${res.fail}条,失败的请到任务列表查看`,
  24. duration: 0
  25. });
  26. }
  27. onChange?.()
  28. })
  29. }
  30. return <Switch checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={editAdqAdgroupsData.loading} disabled={isDeleted} onChange={(checked) => switchHandle([adgroupId] ,checked ? 'AD_STATUS_NORMAL' : 'AD_STATUS_SUSPEND')}/>
  31. }
  32. export default React.memo(SwitchStatus)