login.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { MessageType } from "@/utils/message";
  2. // 初始化状态应用注解
  3. const initState = {
  4. // 所有下拉数据
  5. selectAll: {
  6. 藏品编号名称: [],
  7. 文物级别: [],
  8. 文物来源: [],
  9. 完残程度: [],
  10. 保存状态: [],
  11. 入藏时间范围: [],
  12. 质量范围: [],
  13. 文物类别: [],
  14. 质地: [],
  15. 年代: [],
  16. } as any,
  17. // 单个里面的藏品的附件信息
  18. fileData: {
  19. img: [],
  20. video: [],
  21. audio: [],
  22. model: [],
  23. doc: [],
  24. } as any,
  25. // 藏品的表格信息
  26. goodsTableList: [] as any,
  27. // 关于按钮的权限信息
  28. authButtonArr: [],
  29. // 外层页面的权限信息
  30. authPageArr: [],
  31. // 所有图片点击预览查看大图
  32. lookBigImg: {
  33. url: "",
  34. show: false,
  35. },
  36. // 加载请求的loding
  37. asyncLoding: false,
  38. // antd轻提示(兼容360浏览器)
  39. message: {
  40. txt: "",
  41. type: "info",
  42. duration: 3,
  43. } as MessageType,
  44. };
  45. type LoginActionType =
  46. | { type: "login/getSelectAll"; payload: any }
  47. | { type: "login/setFileData"; payload: any }
  48. | { type: "login/setGoodsSonList"; payload: any }
  49. | { type: "login/setAuthButtonArr"; payload: any }
  50. | { type: "login/setAuthPageArr"; payload: any }
  51. | { type: "login/lookBigImg"; payload: any }
  52. | { type: "login/asyncLoding"; payload: any }
  53. | { type: "login/message"; payload: MessageType };
  54. // 频道 reducer
  55. export default function loginReducer(
  56. state = initState,
  57. action: LoginActionType
  58. ) {
  59. switch (action.type) {
  60. // 所有的下拉列表数据
  61. case "login/getSelectAll":
  62. return { ...state, selectAll: action.payload };
  63. // 新增编辑藏品的附件数据(弹窗里面的附件)
  64. case "login/setFileData":
  65. return { ...state, fileData: action.payload };
  66. // 新增编辑藏品 的外层 表格信息(新增编辑页面下面的表格)
  67. case "login/setGoodsSonList":
  68. return { ...state, goodsTableList: action.payload };
  69. // 关于按钮的权限信息
  70. case "login/setAuthButtonArr":
  71. return { ...state, authButtonArr: action.payload };
  72. // 关于外层页面的权限信息
  73. case "login/setAuthPageArr":
  74. return { ...state, authPageArr: action.payload };
  75. // 所有图片点击预览查看大图
  76. case "login/lookBigImg":
  77. return { ...state, lookBigImg: action.payload };
  78. // 加载请求的loding
  79. case "login/asyncLoding":
  80. return { ...state, asyncLoding: action.payload };
  81. // antd轻提示(兼容360浏览器)
  82. case "login/message":
  83. return { ...state, message: action.payload };
  84. default:
  85. return state;
  86. }
  87. }