agentSlice.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import {createSlice} from "@reduxjs/toolkit";
  2. import {REQ_STATUS} from "@api/config";
  3. import {buildReqReducer, reqAgentCheck, reqAgentGet, reqAgentHistory} from "@features/api";
  4. import {getHttpMsg} from "@utils/helpers";
  5. import {toast} from "react-toastify";
  6. const i18n=global.i18n;
  7. const parseLevels=(levels)=>{
  8. let list=[];
  9. for (const key in levels) {
  10. list.push(levels[key]);
  11. }
  12. list.sort((a,b)=>{
  13. return a.Level>b.Level;
  14. })
  15. return list;
  16. }
  17. const reducerAgentCheck=(state,action,arg)=>{
  18. let payload=action.payload;
  19. if (payload&&payload.code===200){
  20. let data=payload.data;
  21. if (data){
  22. if (data.info)state.info=data.info;
  23. if (data.subs)state.subs=data.subs;
  24. if (data.levels)state.levels=parseLevels(data.levels);
  25. if (data.history)state.bonusList=data.history;
  26. if (data.link)state.link=data.link;
  27. state.isInit=true;
  28. // state.subs=[
  29. // {
  30. // NickName:"xdh123dfasdfasdfa",
  31. // SubTotal:10000,
  32. // bonus:40
  33. // },
  34. // {
  35. // NickName:"xdh123",
  36. // SubTotal:10000,
  37. // bonus:40
  38. // },
  39. // {
  40. // NickName:"xdh123",
  41. // SubTotal:10000,
  42. // bonus:40
  43. // }
  44. // ]
  45. }
  46. }
  47. }
  48. const agentCheckStatus=(state,status,arg)=>{
  49. state.status.AgentCheck=status;
  50. }
  51. const reducerAgentGet=(state,action,arg)=>{
  52. let payload=action.payload;
  53. let msg=getHttpMsg(payload);
  54. if (payload&&payload.code===200){
  55. let bonusList=state.bonusList;
  56. if (bonusList){
  57. for (let i = 0; i < bonusList.length; i++) {
  58. let item=bonusList[i];
  59. if (item.ID===arg){
  60. bonusList.splice(i,1);
  61. break;
  62. }
  63. }
  64. }
  65. state.bonusList=bonusList;
  66. // if(msg!=="")toast.success(msg);
  67. // else toast.success(i18n.t("agent.get_success"));
  68. toast.success(i18n.t("agent.get_success"));
  69. }
  70. else
  71. {
  72. if(msg!=="")toast.error(msg);
  73. else toast.error(i18n.t("agent.get_error"))
  74. }
  75. }
  76. const agentGetStatus=(state,status,arg)=>{
  77. state.status.AgentGet[arg]=status;
  78. }
  79. const reducerAgentHistory=(state,action,arg)=>{
  80. let payload=action.payload;
  81. if (payload&&payload.code===200){
  82. let data=payload.data;
  83. if (data&&data.history){
  84. state.history=data.history;
  85. }
  86. }
  87. }
  88. const agentHistoryStatus=(state,status,arg)=>{
  89. state.status.AgentHistory=status;
  90. }
  91. export const AgentSlice = createSlice({
  92. name: "agent",
  93. initialState: {
  94. status:{
  95. AgentCheck:REQ_STATUS.NONE,
  96. AgentGet:{
  97. },
  98. AgentHistory:REQ_STATUS.NONE
  99. },
  100. isInit:false,
  101. info: {},
  102. subs:[],
  103. levels:[],
  104. bonusList:[],
  105. history:[],
  106. link:""
  107. },
  108. reducers:{
  109. //如需切换用户刷新数据 slice 监听onSliceChangeUser
  110. onSliceChangeUser:((state, action) => {
  111. state.isInit=false;
  112. })
  113. },
  114. extraReducers: (builder) => {
  115. buildReqReducer(builder,reqAgentCheck,reducerAgentCheck,agentCheckStatus);
  116. buildReqReducer(builder,reqAgentGet,reducerAgentGet,agentGetStatus);
  117. buildReqReducer(builder,reqAgentHistory,reducerAgentHistory,agentHistoryStatus);
  118. }
  119. })
  120. export const {}=AgentSlice.actions;
  121. export const getAgentInfo=(state)=>{
  122. return state.agent.info;
  123. }
  124. export const getAgentSubs=(state)=>{
  125. return state.agent.subs;
  126. }
  127. export const getAgentLevels=(state)=>{
  128. return state.agent.levels;
  129. }
  130. export const getBonusList=(state)=>{
  131. return state.agent.bonusList;
  132. }
  133. export const getAgentGetStatus=(state)=>{
  134. return state.agent.status.AgentGet;
  135. }
  136. export const getAgentHistoryStatus=(state)=>{
  137. return state.agent.status.AgentHistory;
  138. }
  139. export const getAgentHistory=(state)=>{
  140. return state.agent.history;
  141. }
  142. export const getAgentStatus=(state)=>{
  143. return state.agent.status.AgentCheck;
  144. }
  145. export const getIsInit=(state)=>{
  146. return state.agent.isInit;
  147. }
  148. export const getAgentLink=(state)=>{
  149. return state.agent.link;
  150. }
  151. export default AgentSlice.reducer;