login.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { DictListTypeObj, PermissionsAPIType } from "@/types";
  2. import { MessageType } from "@/utils/message";
  3. // 初始化状态
  4. const initState = {
  5. // 所有图片点击预览查看大图
  6. lookBigImg: {
  7. url: "",
  8. show: false,
  9. },
  10. // 加载请求的loding
  11. asyncLoding: false,
  12. // 视频的src
  13. videoSrc: "",
  14. // 所有的下拉框数据
  15. dictList: {
  16. age: [],
  17. texture: [],
  18. level: [],
  19. source: [],
  20. } as DictListTypeObj,
  21. // 有关权限的信息
  22. authPageArr: [] as PermissionsAPIType[],
  23. // antd轻提示(兼容360浏览器)
  24. message: {
  25. txt: "",
  26. type: "info",
  27. duration: 3,
  28. } as MessageType,
  29. };
  30. // 定义 action 类型
  31. type LoginActionType =
  32. | { type: "login/lookBigImg"; payload: { url: string; show: boolean } }
  33. | { type: "login/asyncLoding"; payload: boolean }
  34. | { type: "login/lookVideo"; payload: string }
  35. | { type: "login/getDictList"; payload: DictListTypeObj }
  36. | { type: "login/setAuthPageArr"; payload: PermissionsAPIType[] }
  37. | { type: "login/message"; payload: MessageType };
  38. // 频道 reducer
  39. export default function loginReducer(
  40. state = initState,
  41. action: LoginActionType
  42. ) {
  43. switch (action.type) {
  44. // 所有图片点击预览查看大图
  45. case "login/lookBigImg":
  46. return { ...state, lookBigImg: action.payload };
  47. // 加载请求的loding
  48. case "login/asyncLoding":
  49. return { ...state, asyncLoding: action.payload };
  50. // 查看视频
  51. case "login/lookVideo":
  52. return { ...state, videoSrc: action.payload };
  53. // 所有的下拉框数据
  54. case "login/getDictList":
  55. return { ...state, dictList: action.payload };
  56. // antd轻提示(兼容360浏览器)
  57. case "login/message":
  58. return { ...state, message: action.payload };
  59. // 有关权限的信息
  60. case "login/setAuthPageArr":
  61. return { ...state, authPageArr: action.payload };
  62. default:
  63. return state;
  64. }
  65. }