From d05fd5081617e421d3250818cfc88490c657a504 Mon Sep 17 00:00:00 2001 From: fanxb Date: Thu, 18 Jul 2019 17:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Refactor:=20[=E5=89=8D=E5=8F=B0]?= =?UTF-8?q?:=E5=B0=86=E4=B9=A6=E7=AD=BE=E7=AE=A1=E7=90=86=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=B0redux=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/redux/action/BookmarkTreeOverview.js | 112 ++++++++++++++++++ .../src/redux/reducer/BookmarkTreeOverview.js | 18 +++ front/src/redux/reducer/index.js | 3 + front/src/redux/reducer/loginInfo.js | 2 +- 4 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 front/src/redux/action/BookmarkTreeOverview.js create mode 100644 front/src/redux/reducer/BookmarkTreeOverview.js 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; }