diff --git a/front/src/redux/action/BookmarkTreeOverview.js b/front/src/redux/action/BookmarkTreeOverview.js new file mode 100644 index 0000000..93cb723 --- /dev/null +++ b/front/src/redux/action/BookmarkTreeOverview.js @@ -0,0 +1,112 @@ +/** + /manage/overview action + */ +export const DATA_NAME = "BookmarkTreeOverview"; + +export function getInitData() { + return { + isShowModal: false, + currentEditNode: null, + currentAddFolder: null, + isEdit: false, + treeData: [], + checkedKeys: [], + checkedNodes: [], + expandedKeys: [], + isInit: false + }; +} + +//定义修改modal是否显示 type +export const CLOSE_MODAL = "closeModal"; + +export const closeModal = () => { + return { + type: CLOSE_MODAL, + data: { + isShowModal: false, + currentEditNode: null, + currentAddFolder: null + } + }; +}; + +//设置是否处于编辑模式 +export const SET_IS_EDIT = "isEdit"; + +export const setIsEdit = isEdit => { + return { + type: SET_IS_EDIT, + data: { + isEdit + } + }; +}; + +//新增节点 +export const ADD_NODE = "addNode"; + +export const addNode = (node, e) => { + console.log("add node"); + e.stopPropagation(); + return { + type: ADD_NODE, + data: { + isShowModal: true, + currentAddFolder: node + } + }; +}; + +//编辑节点 +export const EDIT_NODE = "editNode"; + +export const editNode = (node, e) => { + e.stopPropagation(); + return { + type: EDIT_NODE, + data: { + isShowModal: true, + currentEditNode: node + } + }; +}; + +//修改treeData +export const UPDATE_TREEDATA = "updateTreeData"; +export const updateTreeData = treeData => { + return { + type: UPDATE_TREEDATA, + data: { + treeData + } + }; +}; + +//修改checkedKeys +export const CHANGE_CHECKED_KEYS = "changeCheckedKeys"; +export const changeCheckedKeys = (checkedKeys, e) => { + return { + type: CHANGE_CHECKED_KEYS, + data: { checkedKeys, checkedNodes: e ? e.checkedNodes : [] } + }; +}; + +//修改expandedKeys +export const CHANGE_EXPANDED_KEYS = "changeExpandedKeys"; +export const changeExpandedKeys = expandedKeys => { + console.log(expandedKeys); + return { + type: CHANGE_EXPANDED_KEYS, + data: { expandedKeys } + }; +}; + +//修改isInit +export const CHANGE_IS_INIT = "changeIsInit"; +export const changeIsInit = isInit => { + return { + type: CHANGE_EXPANDED_KEYS, + data: { isInit } + }; +}; diff --git a/front/src/redux/reducer/BookmarkTreeOverview.js b/front/src/redux/reducer/BookmarkTreeOverview.js new file mode 100644 index 0000000..38dbd9f --- /dev/null +++ b/front/src/redux/reducer/BookmarkTreeOverview.js @@ -0,0 +1,18 @@ +import * as info from "../action/BookmarkTreeOverview"; + +const BookmarkTreeOverviewReducer = (state = info.getInitData(), action) => { + switch (action.type) { + case info.CLOSE_MODAL: + case info.SET_IS_EDIT: + case info.UPDATE_TREEDATA: + case info.CHANGE_CHECKED_KEYS: + case info.CHANGE_EXPANDED_KEYS: + case info.ADD_NODE: + case info.EDIT_NODE: + return { ...state, ...action.data }; + default: + return state; + } +}; + +export default BookmarkTreeOverviewReducer; diff --git a/front/src/redux/reducer/index.js b/front/src/redux/reducer/index.js index d627c79..4653e60 100644 --- a/front/src/redux/reducer/index.js +++ b/front/src/redux/reducer/index.js @@ -1,9 +1,12 @@ import { combineReducers } from "redux"; import { DATA_NAME } from "../action/LoginInfoAction.js"; import loginInfo from "./loginInfo"; +import * as bookmarkTreeOverview from "../action/BookmarkTreeOverview"; +import bookmarkTreeOverviewData from "./BookmarkTreeOverview"; const data = {}; data[DATA_NAME] = loginInfo; +data[bookmarkTreeOverview.DATA_NAME] = bookmarkTreeOverviewData; const reducer = combineReducers(data); diff --git a/front/src/redux/reducer/loginInfo.js b/front/src/redux/reducer/loginInfo.js index 4b01062..f41f319 100644 --- a/front/src/redux/reducer/loginInfo.js +++ b/front/src/redux/reducer/loginInfo.js @@ -21,7 +21,7 @@ function getInitData() { const LoginStatusReducer = (state = getInitData(), action) => { switch (action.type) { case loginAction.CHANGE_LOGIN_INFO: - return { ...action.data }; + return { ...state, ...action.data }; default: return state; }