| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { DataAllType, LookDomType } from "@/types";
- import { MessageType } from "@/utils/message";
- type lookType = { url: string[]; show: boolean; current: number };
- // 初始化状态
- const initState = {
- // 所有图片点击预览查看大图
- lookBigImg: {
- url: [],
- show: false,
- current: 0,
- } as lookType,
- // 查看视频、音频、模型
- lookDom: {
- src: "",
- type: "",
- } as LookDomType,
- // antd轻提示(兼容360浏览器)
- message: {
- txt: "",
- type: "info",
- duration: 3,
- } as MessageType,
- // 所有数据
- dataAll: { Home: {} } as DataAllType,
- // 全景的音频播放
- overallAudio: false,
- };
- // 定义 action 类型
- type LayoutActionType =
- | { type: "layout/lookBigImg"; payload: lookType }
- | { type: "layout/lookDom"; payload: LookDomType }
- | { type: "layout/message"; payload: MessageType }
- | { type: "layout/setDataAll"; payload: DataAllType }
- | { type: "layout/playAudio"; payload: boolean };
- // 频道 reducer
- export default function layoutReducer(
- state = initState,
- action: LayoutActionType
- ) {
- switch (action.type) {
- // 所有图片点击预览查看大图
- case "layout/lookBigImg":
- return { ...state, lookBigImg: action.payload };
- // 查看视频
- case "layout/lookDom":
- return { ...state, lookDom: action.payload };
- // antd轻提示(兼容360浏览器)
- case "layout/message":
- return { ...state, message: action.payload };
- // 设置所有数据
- case "layout/setDataAll":
- return { ...state, dataAll: action.payload };
- // 全局的音频
- case "layout/playAudio":
- return { ...state, overallAudio: action.payload };
- default:
- return state;
- }
- }
|