fork from bc4552c5a8
This commit is contained in:
22
client/reducer/create.js
Normal file
22
client/reducer/create.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import { createStore as _createStore, applyMiddleware } from 'redux';
|
||||
import promiseMiddleware from 'redux-promise';
|
||||
import messageMiddleware from './middleware/messageMiddleware';
|
||||
import reducer from './modules/reducer';
|
||||
|
||||
export default function createStore(initialState = {}) {
|
||||
const middleware = [promiseMiddleware, messageMiddleware];
|
||||
|
||||
let finalCreateStore;
|
||||
//if (process.env.NODE_ENV === 'production') {
|
||||
finalCreateStore = applyMiddleware(...middleware)(_createStore);
|
||||
// } else {
|
||||
// finalCreateStore = compose(
|
||||
// applyMiddleware(...middleware),
|
||||
// window.devToolsExtension ? window.devToolsExtension() : require('../containers/DevTools/DevTools').instrument()
|
||||
// )(_createStore);
|
||||
// }
|
||||
|
||||
const store = finalCreateStore(reducer, initialState);
|
||||
|
||||
return store;
|
||||
}
|
||||
19
client/reducer/middleware/messageMiddleware.js
Normal file
19
client/reducer/middleware/messageMiddleware.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import { message } from 'antd';
|
||||
|
||||
export default () => next => action => {
|
||||
if (!action) {
|
||||
return;
|
||||
}
|
||||
if (action.error) {
|
||||
message.error((action.payload && action.payload.message) || '服务器错误');
|
||||
} else if (
|
||||
action.payload &&
|
||||
action.payload.data &&
|
||||
action.payload.data.errcode &&
|
||||
action.payload.data.errcode !== 40011
|
||||
) {
|
||||
message.error(action.payload.data.errmsg);
|
||||
throw new Error(action.payload.data.errmsg);
|
||||
}
|
||||
return next(action);
|
||||
};
|
||||
173
client/reducer/modules/addInterface.js
Normal file
173
client/reducer/modules/addInterface.js
Normal file
@@ -0,0 +1,173 @@
|
||||
// Actions
|
||||
const FETCH_ADD_INTERFACE_INPUT = 'yapi/addInterface/FETCH_ADD_INTERFACE_INPUT';
|
||||
const FETCH_ADD_INTERFACE_TAG_VALUE = 'yapi/addInterface/FETCH_ADD_INTERFACE_TAG_VALUE';
|
||||
const FETCH_ADD_INTERFACE_HEADER_VALUE = 'yapi/addInterface/FETCH_ADD_INTERFACE_HEADER_VALUE';
|
||||
const ADD_INTERFACE_SEQ_HEADER = 'yapi/addInterface/ADD_INTERFACE_SEQ_HEADER';
|
||||
const DELETE_INTERFACE_SEQ_HEADER = 'yapi/addInterface/DELETE_INTERFACE_SEQ_HEADER';
|
||||
const GET_INTERFACE_REQ_PARAMS = 'yapi/addInterface/GET_INTERFACE_REQ_PARAMS';
|
||||
const GET_INTERFACE_RES_PARAMS = 'yapi/addInterface/GET_INTERFACE_RES_PARAMS';
|
||||
const PUSH_INTERFACE_NAME = 'yapi/addInterface/PUSH_INTERFACE_NAME';
|
||||
const PUSH_INTERFACE_METHOD = 'yapi/addInterface/PUSH_INTERFACE_METHOD';
|
||||
const FETCH_INTERFACE_PROJECT = 'yapi/addInterface/FETCH_INTERFACE_PROJECT';
|
||||
const ADD_INTERFACE_CLIPBOARD = 'yapi/addInterface/ADD_INTERFACE_CLIPBOARD';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
interfaceName: '',
|
||||
url: '',
|
||||
method: 'GET',
|
||||
// 默认请求头部有一条数据
|
||||
seqGroup: [
|
||||
{
|
||||
id: 0,
|
||||
name: '',
|
||||
value: ''
|
||||
}
|
||||
],
|
||||
reqParams: '',
|
||||
resParams: '',
|
||||
project: {},
|
||||
clipboard: () => {}
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case FETCH_ADD_INTERFACE_INPUT:
|
||||
return {
|
||||
...state,
|
||||
url: action.payload
|
||||
};
|
||||
case FETCH_ADD_INTERFACE_TAG_VALUE:
|
||||
return {
|
||||
...state,
|
||||
tagValue: action.payload
|
||||
};
|
||||
case FETCH_ADD_INTERFACE_HEADER_VALUE:
|
||||
return {
|
||||
...state,
|
||||
headerValue: action.payload
|
||||
};
|
||||
case ADD_INTERFACE_SEQ_HEADER:
|
||||
return {
|
||||
...state,
|
||||
seqGroup: action.payload
|
||||
};
|
||||
case DELETE_INTERFACE_SEQ_HEADER:
|
||||
return {
|
||||
...state,
|
||||
seqGroup: action.payload
|
||||
};
|
||||
case GET_INTERFACE_REQ_PARAMS:
|
||||
return {
|
||||
...state,
|
||||
reqParams: action.payload
|
||||
};
|
||||
case GET_INTERFACE_RES_PARAMS:
|
||||
return {
|
||||
...state,
|
||||
resParams: action.payload
|
||||
};
|
||||
case PUSH_INTERFACE_NAME:
|
||||
return {
|
||||
...state,
|
||||
interfaceName: action.payload
|
||||
};
|
||||
case PUSH_INTERFACE_METHOD:
|
||||
return {
|
||||
...state,
|
||||
method: action.payload
|
||||
};
|
||||
case FETCH_INTERFACE_PROJECT:
|
||||
return {
|
||||
...state,
|
||||
project: action.payload.data.data
|
||||
};
|
||||
case ADD_INTERFACE_CLIPBOARD:
|
||||
return {
|
||||
...state,
|
||||
clipboard: action.payload
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
import axios from 'axios';
|
||||
|
||||
export function pushInputValue(value) {
|
||||
return {
|
||||
type: FETCH_ADD_INTERFACE_INPUT,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function reqTagValue(value) {
|
||||
return {
|
||||
type: FETCH_ADD_INTERFACE_TAG_VALUE,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function reqHeaderValue(value) {
|
||||
return {
|
||||
type: FETCH_ADD_INTERFACE_HEADER_VALUE,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function addReqHeader(value) {
|
||||
return {
|
||||
type: ADD_INTERFACE_SEQ_HEADER,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function deleteReqHeader(value) {
|
||||
return {
|
||||
type: DELETE_INTERFACE_SEQ_HEADER,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function getReqParams(value) {
|
||||
return {
|
||||
type: GET_INTERFACE_REQ_PARAMS,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function getResParams(value) {
|
||||
return {
|
||||
type: GET_INTERFACE_RES_PARAMS,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function pushInterfaceName(value) {
|
||||
return {
|
||||
type: PUSH_INTERFACE_NAME,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function pushInterfaceMethod(value) {
|
||||
return {
|
||||
type: PUSH_INTERFACE_METHOD,
|
||||
payload: value
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchInterfaceProject(id) {
|
||||
return {
|
||||
type: FETCH_INTERFACE_PROJECT,
|
||||
payload: axios.get('/api/project/get', { params: { id } })
|
||||
};
|
||||
}
|
||||
|
||||
export function addInterfaceClipboard(func) {
|
||||
return {
|
||||
type: ADD_INTERFACE_CLIPBOARD,
|
||||
payload: func
|
||||
};
|
||||
}
|
||||
48
client/reducer/modules/follow.js
Normal file
48
client/reducer/modules/follow.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// Actions
|
||||
const GET_FOLLOW_LIST = 'yapi/follow/GET_FOLLOW_LIST';
|
||||
const DEL_FOLLOW = 'yapi/follow/DEL_FOLLOW';
|
||||
const ADD_FOLLOW = 'yapi/follow/ADD_FOLLOW';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
data: []
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
if (action.type === GET_FOLLOW_LIST) {
|
||||
return {
|
||||
...state,
|
||||
data: action.payload.data.data
|
||||
};
|
||||
} else {
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// 获取关注列表
|
||||
export function getFollowList(uid) {
|
||||
return {
|
||||
type: GET_FOLLOW_LIST,
|
||||
payload: axios.get('/api/follow/list', {
|
||||
params: { uid }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
// 添加关注
|
||||
export function addFollow(param) {
|
||||
return {
|
||||
type: ADD_FOLLOW,
|
||||
payload: axios.post('/api/follow/add', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 删除关注
|
||||
export function delFollow(id) {
|
||||
return {
|
||||
type: DEL_FOLLOW,
|
||||
payload: axios.post('/api/follow/del', { projectid: id })
|
||||
};
|
||||
}
|
||||
162
client/reducer/modules/group.js
Normal file
162
client/reducer/modules/group.js
Normal file
@@ -0,0 +1,162 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// Actions
|
||||
const FETCH_GROUP_LIST = 'yapi/group/FETCH_GROUP_LIST';
|
||||
const SET_CURR_GROUP = 'yapi/group/SET_CURR_GROUP';
|
||||
const FETCH_GROUP_MEMBER = 'yapi/group/FETCH_GROUP_MEMBER';
|
||||
const FETCH_GROUP_MSG = 'yapi/group/FETCH_GROUP_MSG';
|
||||
const ADD_GROUP_MEMBER = 'yapi/group/ADD_GROUP_MEMBER';
|
||||
const DEL_GROUP_MEMBER = 'yapi/group/DEL_GROUP_MEMBER';
|
||||
const CHANGE_GROUP_MEMBER = 'yapi/group/CHANGE_GROUP_MEMBER';
|
||||
const CHANGE_GROUP_MESSAGE = 'yapi/group/CHANGE_GROUP_MESSAGE';
|
||||
const UPDATE_GROUP_LIST = 'yapi/group/UPDATE_GROUP_LIST';
|
||||
const DEL_GROUP = 'yapi/group/DEL_GROUP';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
groupList: [],
|
||||
currGroup: {
|
||||
group_name: '',
|
||||
group_desc: '',
|
||||
custom_field1: {
|
||||
name: '',
|
||||
enable: false
|
||||
}
|
||||
},
|
||||
field: {
|
||||
name: '',
|
||||
enable: false
|
||||
},
|
||||
member: [],
|
||||
role: ''
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case FETCH_GROUP_LIST: {
|
||||
return {
|
||||
...state,
|
||||
groupList: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case UPDATE_GROUP_LIST: {
|
||||
return {
|
||||
...state,
|
||||
groupList: action.payload
|
||||
};
|
||||
}
|
||||
case SET_CURR_GROUP: {
|
||||
return {
|
||||
...state,
|
||||
currGroup: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case FETCH_GROUP_MEMBER: {
|
||||
return {
|
||||
...state,
|
||||
member: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case FETCH_GROUP_MSG: {
|
||||
console.log(action.payload)
|
||||
// const {role,group_name,group_desc,} = action.payload.data.data
|
||||
return {
|
||||
...state,
|
||||
role: action.payload.data.data.role,
|
||||
currGroup: action.payload.data.data,
|
||||
field: {
|
||||
name: action.payload.data.data.custom_field1.name,
|
||||
enable: action.payload.data.data.custom_field1.enable
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// 获取 group 信息 (权限信息)
|
||||
export function fetchGroupMsg(id) {
|
||||
return {
|
||||
type: FETCH_GROUP_MSG,
|
||||
payload: axios.get('/api/group/get', {
|
||||
params: { id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
// 添加分组成员
|
||||
export function addMember(param) {
|
||||
return {
|
||||
type: ADD_GROUP_MEMBER,
|
||||
payload: axios.post('/api/group/add_member', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 删除分组成员
|
||||
export function delMember(param) {
|
||||
return {
|
||||
type: DEL_GROUP_MEMBER,
|
||||
payload: axios.post('/api/group/del_member', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改分组成员权限
|
||||
export function changeMemberRole(param) {
|
||||
return {
|
||||
type: CHANGE_GROUP_MEMBER,
|
||||
payload: axios.post('/api/group/change_member_role', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改分组信息
|
||||
export function changeGroupMsg(param) {
|
||||
return {
|
||||
type: CHANGE_GROUP_MESSAGE,
|
||||
payload: axios.post('/api/group/up', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 更新左侧的分组列表
|
||||
export function updateGroupList(param) {
|
||||
return {
|
||||
type: UPDATE_GROUP_LIST,
|
||||
payload: param
|
||||
};
|
||||
}
|
||||
|
||||
// 删除分组
|
||||
export function deleteGroup(param) {
|
||||
return {
|
||||
type: DEL_GROUP,
|
||||
payload: axios.post('/api/group/del', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 获取分组成员列表
|
||||
export function fetchGroupMemberList(id) {
|
||||
return {
|
||||
type: FETCH_GROUP_MEMBER,
|
||||
payload: axios.get('/api/group/get_member_list', {
|
||||
params: { id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
// Action Creators
|
||||
export function fetchGroupList() {
|
||||
return {
|
||||
type: FETCH_GROUP_LIST,
|
||||
payload: axios.get('/api/group/list')
|
||||
};
|
||||
}
|
||||
|
||||
export function setCurrGroup(group) {
|
||||
return {
|
||||
type: SET_CURR_GROUP,
|
||||
payload: axios.get('/api/group/get', {
|
||||
params: { id: group._id }
|
||||
})
|
||||
};
|
||||
}
|
||||
161
client/reducer/modules/interface.js
Normal file
161
client/reducer/modules/interface.js
Normal file
@@ -0,0 +1,161 @@
|
||||
import axios from 'axios';
|
||||
import qs from 'qs';
|
||||
// Actions
|
||||
const INIT_INTERFACE_DATA = 'yapi/interface/INIT_INTERFACE_DATA';
|
||||
const FETCH_INTERFACE_DATA = 'yapi/interface/FETCH_INTERFACE_DATA';
|
||||
const FETCH_INTERFACE_LIST_MENU = 'yapi/interface/FETCH_INTERFACE_LIST_MENU';
|
||||
const DELETE_INTERFACE_DATA = 'yapi/interface/DELETE_INTERFACE_DATA';
|
||||
const DELETE_INTERFACE_CAT_DATA = 'yapi/interface/DELETE_INTERFACE_CAT_DATA';
|
||||
const UPDATE_INTERFACE_DATA = 'yapi/interface/UPDATE_INTERFACE_DATA';
|
||||
const CHANGE_EDIT_STATUS = 'yapi/interface/CHANGE_EDIT_STATUS';
|
||||
const FETCH_INTERFACE_LIST = 'yapi/interface/FETCH_INTERFACE_LIST';
|
||||
const SAVE_IMPORT_DATA = 'yapi/interface/SAVE_IMPORT_DATA';
|
||||
const FETCH_INTERFACE_CAT_LIST = 'yapi/interface/FETCH_INTERFACE_CAT_LIST';
|
||||
// const SAVE_INTERFACE_PROJECT_ID = 'yapi/interface/SAVE_INTERFACE_PROJECT_ID';
|
||||
// const GET_INTERFACE_GROUP_LIST = 'yapi/interface/GET_INTERFACE_GROUP_LIST';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
curdata: {},
|
||||
list: [],
|
||||
editStatus: false, // 记录编辑页面是否有编辑,
|
||||
totalTableList: [],
|
||||
catTableList: [],
|
||||
count: 0,
|
||||
totalCount: 0
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case INIT_INTERFACE_DATA:
|
||||
return initialState;
|
||||
case UPDATE_INTERFACE_DATA:
|
||||
return {
|
||||
...state,
|
||||
curdata: Object.assign({}, state.curdata, action.updata)
|
||||
};
|
||||
case FETCH_INTERFACE_DATA:
|
||||
return {
|
||||
...state,
|
||||
curdata: action.payload.data.data
|
||||
};
|
||||
case FETCH_INTERFACE_LIST_MENU:
|
||||
return {
|
||||
...state,
|
||||
list: action.payload.data.data
|
||||
};
|
||||
case CHANGE_EDIT_STATUS: {
|
||||
return {
|
||||
...state,
|
||||
editStatus: action.status
|
||||
};
|
||||
}
|
||||
|
||||
case FETCH_INTERFACE_LIST: {
|
||||
return {
|
||||
...state,
|
||||
totalTableList: action.payload.data.data.list,
|
||||
totalCount: action.payload.data.data.count
|
||||
};
|
||||
}
|
||||
|
||||
case FETCH_INTERFACE_CAT_LIST: {
|
||||
return {
|
||||
...state,
|
||||
catTableList: action.payload.data.data.list,
|
||||
count: action.payload.data.data.count
|
||||
};
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// 记录编辑页面是否有编辑
|
||||
export function changeEditStatus(status) {
|
||||
return {
|
||||
type: CHANGE_EDIT_STATUS,
|
||||
status
|
||||
};
|
||||
}
|
||||
|
||||
export function initInterface() {
|
||||
return {
|
||||
type: INIT_INTERFACE_DATA
|
||||
};
|
||||
}
|
||||
|
||||
export function updateInterfaceData(updata) {
|
||||
return {
|
||||
type: UPDATE_INTERFACE_DATA,
|
||||
updata: updata,
|
||||
payload: true
|
||||
};
|
||||
}
|
||||
|
||||
export async function deleteInterfaceData(id) {
|
||||
let result = await axios.post('/api/interface/del', {id: id});
|
||||
return {
|
||||
type: DELETE_INTERFACE_DATA,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function saveImportData(data) {
|
||||
let result = await axios.post('/api/interface/save', data);
|
||||
return {
|
||||
type: SAVE_IMPORT_DATA,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function deleteInterfaceCatData(id) {
|
||||
let result = await axios.post('/api/interface/del_cat', {catid: id});
|
||||
return {
|
||||
type: DELETE_INTERFACE_CAT_DATA,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
// Action Creators
|
||||
export async function fetchInterfaceData(interfaceId) {
|
||||
let result = await axios.get('/api/interface/get?id=' + interfaceId);
|
||||
return {
|
||||
type: FETCH_INTERFACE_DATA,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchInterfaceListMenu(projectId) {
|
||||
let result = await axios.get('/api/interface/list_menu?project_id=' + projectId);
|
||||
return {
|
||||
type: FETCH_INTERFACE_LIST_MENU,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchInterfaceList(params) {
|
||||
let result = await axios.get('/api/interface/list', {
|
||||
params,
|
||||
paramsSerializer: params => {
|
||||
return qs.stringify(params, {indices: false})
|
||||
}
|
||||
})
|
||||
return {
|
||||
type: FETCH_INTERFACE_LIST,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function fetchInterfaceCatList(params) {
|
||||
let result = axios.get('/api/interface/list_cat', {
|
||||
params,
|
||||
paramsSerializer: params => {
|
||||
return qs.stringify(params, {indices: false})
|
||||
}
|
||||
})
|
||||
return {
|
||||
type: FETCH_INTERFACE_CAT_LIST,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
120
client/reducer/modules/interfaceCol.js
Normal file
120
client/reducer/modules/interfaceCol.js
Normal file
@@ -0,0 +1,120 @@
|
||||
import axios from 'axios';
|
||||
// Actions
|
||||
const FETCH_INTERFACE_COL_LIST = 'yapi/interfaceCol/FETCH_INTERFACE_COL_LIST';
|
||||
const FETCH_CASE_DATA = 'yapi/interfaceCol/FETCH_CASE_DATA';
|
||||
const FETCH_CASE_LIST = 'yapi/interfaceCol/FETCH_CASE_LIST';
|
||||
const SET_COL_DATA = 'yapi/interfaceCol/SET_COL_DATA';
|
||||
const FETCH_VARIABLE_PARAMS_LIST = 'yapi/interfaceCol/FETCH_VARIABLE_PARAMS_LIST';
|
||||
const FETCH_CASE_ENV_LIST = 'yapi/interfaceCol/FETCH_CASE_ENV_LIST';
|
||||
// Reducer
|
||||
const initialState = {
|
||||
interfaceColList: [
|
||||
{
|
||||
_id: 0,
|
||||
name: '',
|
||||
uid: 0,
|
||||
project_id: 0,
|
||||
desc: '',
|
||||
add_time: 0,
|
||||
up_time: 0,
|
||||
caseList: [{}]
|
||||
}
|
||||
],
|
||||
isShowCol: true,
|
||||
isRender: false,
|
||||
currColId: 0,
|
||||
currCaseId: 0,
|
||||
currCase: {},
|
||||
currCaseList: [],
|
||||
variableParamsList: [],
|
||||
envList: []
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case FETCH_INTERFACE_COL_LIST: {
|
||||
return {
|
||||
...state,
|
||||
interfaceColList: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case FETCH_CASE_DATA: {
|
||||
return {
|
||||
...state,
|
||||
currCase: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case FETCH_CASE_LIST: {
|
||||
return {
|
||||
...state,
|
||||
currCaseList: action.payload.data.data
|
||||
};
|
||||
}
|
||||
|
||||
case FETCH_VARIABLE_PARAMS_LIST: {
|
||||
return {
|
||||
...state,
|
||||
variableParamsList: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case SET_COL_DATA: {
|
||||
return {
|
||||
...state,
|
||||
...action.payload
|
||||
};
|
||||
}
|
||||
case FETCH_CASE_ENV_LIST: {
|
||||
return {
|
||||
...state,
|
||||
envList: action.payload.data.data
|
||||
};
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
export function fetchInterfaceColList(projectId) {
|
||||
return {
|
||||
type: FETCH_INTERFACE_COL_LIST,
|
||||
payload: axios.get('/api/col/list?project_id=' + projectId)
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchCaseData(caseId) {
|
||||
return {
|
||||
type: FETCH_CASE_DATA,
|
||||
payload: axios.get('/api/col/case?caseid=' + caseId)
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchCaseList(colId) {
|
||||
return {
|
||||
type: FETCH_CASE_LIST,
|
||||
payload: axios.get('/api/col/case_list/?col_id=' + colId)
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchCaseEnvList(col_id) {
|
||||
return {
|
||||
type: FETCH_CASE_ENV_LIST,
|
||||
payload: axios.get('/api/col/case_env_list', {
|
||||
params: { col_id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchVariableParamsList(colId) {
|
||||
return {
|
||||
type: FETCH_VARIABLE_PARAMS_LIST,
|
||||
payload: axios.get('/api/col/case_list_by_var_params?col_id=' + colId)
|
||||
};
|
||||
}
|
||||
|
||||
export function setColData(data) {
|
||||
return {
|
||||
type: SET_COL_DATA,
|
||||
payload: data
|
||||
};
|
||||
}
|
||||
26
client/reducer/modules/menu.js
Normal file
26
client/reducer/modules/menu.js
Normal file
@@ -0,0 +1,26 @@
|
||||
// Actions
|
||||
const CHANGE_MENU_ITEM = 'yapi/menu/CHANGE_MENU_ITEM';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
curKey: '/' + window.location.hash.split('/')[1]
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
if (action.type === CHANGE_MENU_ITEM) {
|
||||
return {
|
||||
...state,
|
||||
curKey: action.data
|
||||
};
|
||||
} else {
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
export function changeMenuItem(curKey) {
|
||||
return {
|
||||
type: CHANGE_MENU_ITEM,
|
||||
data: curKey
|
||||
};
|
||||
}
|
||||
30
client/reducer/modules/mockCol.js
Normal file
30
client/reducer/modules/mockCol.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// Actions
|
||||
const FETCH_MOCK_COL = 'yapi/mockCol/FETCH_MOCK_COL';
|
||||
|
||||
// Reducer
|
||||
const initialState = {
|
||||
list: []
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case FETCH_MOCK_COL:
|
||||
return {
|
||||
...state,
|
||||
list: action.payload.data
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
export async function fetchMockCol(interfaceId) {
|
||||
let result = await axios.get('/api/plugin/advmock/case/list?interface_id=' + interfaceId);
|
||||
return {
|
||||
type: FETCH_MOCK_COL,
|
||||
payload: result.data
|
||||
};
|
||||
}
|
||||
101
client/reducer/modules/news.js
Normal file
101
client/reducer/modules/news.js
Normal file
@@ -0,0 +1,101 @@
|
||||
// Actions
|
||||
const FETCH_NEWS_DATA = 'yapi/news/FETCH_NEWS_DATA';
|
||||
const FETCH_MORE_NEWS = 'yapi/news/FETCH_MORE_NEWS';
|
||||
// Reducer
|
||||
const initialState = {
|
||||
newsData: {
|
||||
list: [],
|
||||
total: 0
|
||||
},
|
||||
curpage: 1
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case FETCH_NEWS_DATA: {
|
||||
const list = action.payload.data.data.list;
|
||||
state.newsData.list = list;
|
||||
state.curpage = 1;
|
||||
state.newsData.list.sort(function(a, b) {
|
||||
return b.add_time - a.add_time;
|
||||
});
|
||||
return {
|
||||
...state,
|
||||
newsData: {
|
||||
total: action.payload.data.data.total,
|
||||
list: state.newsData.list
|
||||
}
|
||||
};
|
||||
}
|
||||
case FETCH_MORE_NEWS: {
|
||||
const list = action.payload.data.data.list;
|
||||
state.newsData.list.push(...list);
|
||||
state.newsData.list.sort(function(a, b) {
|
||||
return b.add_time - a.add_time;
|
||||
});
|
||||
if (list && list.length) {
|
||||
state.curpage++;
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
newsData: {
|
||||
total: action.payload.data.data.total,
|
||||
list: state.newsData.list
|
||||
}
|
||||
};
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
import axios from 'axios';
|
||||
import variable from '../../constants/variable';
|
||||
|
||||
export function fetchNewsData(typeid, type, page, limit, selectValue) {
|
||||
let param = {
|
||||
typeid: typeid,
|
||||
type: type,
|
||||
page: page,
|
||||
limit: limit ? limit : variable.PAGE_LIMIT,
|
||||
selectValue
|
||||
}
|
||||
|
||||
return {
|
||||
type: FETCH_NEWS_DATA,
|
||||
payload: axios.get('/api/log/list', {
|
||||
params: param
|
||||
})
|
||||
};
|
||||
}
|
||||
export function fetchMoreNews(typeid, type, page, limit, selectValue) {
|
||||
const param = {
|
||||
typeid: typeid,
|
||||
type: type,
|
||||
page: page,
|
||||
limit: limit ? limit : variable.PAGE_LIMIT,
|
||||
selectValue
|
||||
}
|
||||
return {
|
||||
type: FETCH_MORE_NEWS,
|
||||
payload: axios.get('/api/log/list', {
|
||||
params: param
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export function getMockUrl(project_id) {
|
||||
const params = { id: project_id };
|
||||
return {
|
||||
type: '',
|
||||
payload: axios.get('/api/project/get', { params: params })
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchUpdateLogData(params) {
|
||||
return {
|
||||
type: '',
|
||||
payload: axios.post('/api/log/list_by_update', params)
|
||||
};
|
||||
}
|
||||
337
client/reducer/modules/project.js
Normal file
337
client/reducer/modules/project.js
Normal file
@@ -0,0 +1,337 @@
|
||||
import axios from 'axios';
|
||||
import variable from '../../constants/variable';
|
||||
import {htmlFilter} from '../../common';
|
||||
|
||||
// Actions
|
||||
const FETCH_PROJECT_LIST = 'yapi/project/FETCH_PROJECT_LIST';
|
||||
const PROJECT_ADD = 'yapi/project/PROJECT_ADD';
|
||||
const PROJECT_DEL = 'yapi/project/PROJECT_DEL';
|
||||
// const CHANGE_TABLE_LOADING = 'yapi/project/CHANGE_TABLE_LOADING';
|
||||
const PROJECT_UPDATE = 'yapi/project/PROJECT_UPDATE';
|
||||
const PROJECT_UPDATE_ENV = 'yapi/project/PROJECT_UPDATE_ENV';
|
||||
const PROJECT_UPSET = 'yapi/project/PROJECT_UPSET';
|
||||
const GET_CURR_PROJECT = 'yapi/project/GET_CURR_PROJECT';
|
||||
const GET_PEOJECT_MEMBER = 'yapi/project/GET_PEOJECT_MEMBER';
|
||||
const ADD_PROJECT_MEMBER = 'yapi/project/ADD_PROJECT_MEMBER';
|
||||
const DEL_PROJECT_MEMBER = 'yapi/project/DEL_PROJECT_MEMBER';
|
||||
const CHANGE_PROJECT_MEMBER = 'yapi/project/CHANGE_PROJECT_MEMBER';
|
||||
const GET_TOKEN = 'yapi/project/GET_TOKEN';
|
||||
const UPDATE_TOKEN = 'yapi/project/UPDATE_TOKEN';
|
||||
const CHECK_PROJECT_NAME = 'yapi/project/CHECK_PROJECT_NAME';
|
||||
const COPY_PROJECT_MSG = 'yapi/project/COPY_PROJECT_MSG';
|
||||
const PROJECT_GET_ENV = 'yapi/project/PROJECT_GET_ENV';
|
||||
const CHANGE_MEMBER_EMAIL_NOTICE = 'yapi/project/CHANGE_MEMBER_EMAIL_NOTICE';
|
||||
const GET_SWAGGER_URL_DATA = 'yapi/project/GET_SWAGGER_URL_DATA'
|
||||
// Reducer
|
||||
const initialState = {
|
||||
isUpdateModalShow: false,
|
||||
handleUpdateIndex: -1,
|
||||
projectList: [],
|
||||
projectMsg: {},
|
||||
userInfo: {},
|
||||
tableLoading: true,
|
||||
total: 0,
|
||||
currPage: 1,
|
||||
token: '',
|
||||
currProject: {},
|
||||
projectEnv: {
|
||||
env: [
|
||||
{
|
||||
header: []
|
||||
}
|
||||
]
|
||||
},
|
||||
swaggerUrlData: ''
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case GET_CURR_PROJECT: {
|
||||
return {
|
||||
...state,
|
||||
currProject: action.payload.data.data
|
||||
};
|
||||
}
|
||||
|
||||
case FETCH_PROJECT_LIST: {
|
||||
return {
|
||||
...state,
|
||||
projectList: action.payload.data.data.list,
|
||||
total: action.payload.data.data.total,
|
||||
userInfo: action.payload.data.data.userinfo
|
||||
};
|
||||
}
|
||||
|
||||
case PROJECT_ADD: {
|
||||
return state;
|
||||
}
|
||||
case PROJECT_DEL: {
|
||||
return state;
|
||||
}
|
||||
|
||||
case GET_TOKEN: {
|
||||
return {
|
||||
...state,
|
||||
token: action.payload.data.data
|
||||
};
|
||||
}
|
||||
|
||||
case PROJECT_GET_ENV: {
|
||||
return {
|
||||
...state,
|
||||
projectEnv: action.payload.data.data
|
||||
};
|
||||
}
|
||||
case UPDATE_TOKEN: {
|
||||
return {
|
||||
...state,
|
||||
token: action.payload.data.data.token
|
||||
};
|
||||
}
|
||||
|
||||
case CHECK_PROJECT_NAME: {
|
||||
return {
|
||||
...state
|
||||
};
|
||||
}
|
||||
case COPY_PROJECT_MSG: {
|
||||
return {
|
||||
...state
|
||||
};
|
||||
}
|
||||
|
||||
case GET_SWAGGER_URL_DATA: {
|
||||
return {
|
||||
...state,
|
||||
swaggerUrlData: action.payload.data.data
|
||||
}
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// 获取某分组下的项目列表
|
||||
export function fetchProjectList(id, pageNum) {
|
||||
return {
|
||||
type: FETCH_PROJECT_LIST,
|
||||
payload: axios.get('/api/project/list', {
|
||||
params: {
|
||||
group_id: id,
|
||||
page: pageNum || 1,
|
||||
limit: variable.PAGE_LIMIT
|
||||
}
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
// 复制项目
|
||||
export function copyProjectMsg(params) {
|
||||
return {
|
||||
type: COPY_PROJECT_MSG,
|
||||
payload: axios.post('/api/project/copy', params)
|
||||
};
|
||||
}
|
||||
|
||||
// 添加项目成员
|
||||
export function addMember(param) {
|
||||
return {
|
||||
type: ADD_PROJECT_MEMBER,
|
||||
payload: axios.post('/api/project/add_member', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 删除项目成员
|
||||
export function delMember(param) {
|
||||
return {
|
||||
type: DEL_PROJECT_MEMBER,
|
||||
payload: axios.post('/api/project/del_member', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改项目成员权限
|
||||
export function changeMemberRole(param) {
|
||||
return {
|
||||
type: CHANGE_PROJECT_MEMBER,
|
||||
payload: axios.post('/api/project/change_member_role', param)
|
||||
};
|
||||
}
|
||||
// 修改项目成员是否收到消息通知
|
||||
export function changeMemberEmailNotice(param) {
|
||||
return {
|
||||
type: CHANGE_MEMBER_EMAIL_NOTICE,
|
||||
payload: axios.post('/api/project/change_member_email_notice', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 获取项目成员列表
|
||||
export function getProjectMemberList(id) {
|
||||
return {
|
||||
type: GET_PEOJECT_MEMBER,
|
||||
payload: axios.get('/api/project/get_member_list', {
|
||||
params: { id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
// export function changeTableLoading(data) {
|
||||
// return {
|
||||
// type: CHANGE_TABLE_LOADING,
|
||||
// payload: data
|
||||
// };
|
||||
// }
|
||||
|
||||
export function addProject(data) {
|
||||
let {
|
||||
name,
|
||||
prd_host,
|
||||
basepath,
|
||||
desc,
|
||||
group_id,
|
||||
group_name,
|
||||
protocol,
|
||||
icon,
|
||||
color,
|
||||
project_type
|
||||
} = data;
|
||||
|
||||
// 过滤项目名称中有html标签存在的情况
|
||||
name = htmlFilter(name);
|
||||
const param = {
|
||||
name,
|
||||
prd_host,
|
||||
protocol,
|
||||
basepath,
|
||||
desc,
|
||||
group_id,
|
||||
group_name,
|
||||
icon,
|
||||
color,
|
||||
project_type
|
||||
};
|
||||
return {
|
||||
type: PROJECT_ADD,
|
||||
payload: axios.post('/api/project/add', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改项目
|
||||
export function updateProject(data) {
|
||||
let { name, project_type, basepath, desc, _id, env, group_id, switch_notice, strice, is_json5, tag } = data;
|
||||
|
||||
// 过滤项目名称中有html标签存在的情况
|
||||
name = htmlFilter(name);
|
||||
const param = {
|
||||
name,
|
||||
project_type,
|
||||
basepath,
|
||||
switch_notice,
|
||||
desc,
|
||||
id: _id,
|
||||
env,
|
||||
group_id,
|
||||
strice,
|
||||
is_json5,
|
||||
tag
|
||||
};
|
||||
return {
|
||||
type: PROJECT_UPDATE,
|
||||
payload: axios.post('/api/project/up', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改项目脚本
|
||||
export function updateProjectScript(data) {
|
||||
return {
|
||||
type: PROJECT_UPDATE,
|
||||
payload: axios.post('/api/project/up', data)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改全局mock
|
||||
export function updateProjectMock(data) {
|
||||
return {
|
||||
type: PROJECT_UPDATE,
|
||||
payload: axios.post('/api/project/up', data)
|
||||
};
|
||||
}
|
||||
|
||||
// 修改项目环境配置
|
||||
export function updateEnv(data) {
|
||||
const { env, _id } = data;
|
||||
const param = {
|
||||
id: _id,
|
||||
env
|
||||
};
|
||||
return {
|
||||
type: PROJECT_UPDATE_ENV,
|
||||
payload: axios.post('/api/project/up_env', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 获取项目环境配置
|
||||
export function getEnv(project_id) {
|
||||
return {
|
||||
type: PROJECT_GET_ENV,
|
||||
payload: axios.get('/api/project/get_env', { params: { project_id } })
|
||||
};
|
||||
}
|
||||
|
||||
// 修改项目头像
|
||||
export function upsetProject(param) {
|
||||
return {
|
||||
type: PROJECT_UPSET,
|
||||
payload: axios.post('/api/project/upset', param)
|
||||
};
|
||||
}
|
||||
|
||||
// 删除项目
|
||||
export function delProject(id) {
|
||||
const param = { id };
|
||||
return {
|
||||
type: PROJECT_DEL,
|
||||
payload: axios.post('/api/project/del', param)
|
||||
};
|
||||
}
|
||||
|
||||
export async function getProject(id) {
|
||||
let result = await axios.get('/api/project/get?id=' + id);
|
||||
return {
|
||||
type: GET_CURR_PROJECT,
|
||||
payload: result
|
||||
};
|
||||
}
|
||||
|
||||
export async function getToken(project_id) {
|
||||
return {
|
||||
type: GET_TOKEN,
|
||||
payload: axios.get('/api/project/token', {
|
||||
params: { project_id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export async function updateToken(project_id) {
|
||||
return {
|
||||
type: UPDATE_TOKEN,
|
||||
payload: axios.get('/api/project/update_token', {
|
||||
params: { project_id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export async function checkProjectName(name, group_id) {
|
||||
return {
|
||||
type: CHECK_PROJECT_NAME,
|
||||
payload: axios.get('/api/project/check_project_name', {
|
||||
params: { name, group_id }
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export async function handleSwaggerUrlData(url) {
|
||||
return {
|
||||
type: GET_SWAGGER_URL_DATA,
|
||||
payload: axios.get('/api/project/swagger_url?url='+encodeURI(encodeURI(url)))
|
||||
};
|
||||
}
|
||||
27
client/reducer/modules/reducer.js
Normal file
27
client/reducer/modules/reducer.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import { combineReducers } from 'redux';
|
||||
import user from './user.js';
|
||||
import group from './group.js';
|
||||
import project from './project.js';
|
||||
import inter from './interface.js';
|
||||
import interfaceCol from './interfaceCol.js';
|
||||
import news from './news.js';
|
||||
import addInterface from './addInterface.js';
|
||||
import menu from './menu.js';
|
||||
import follow from './follow.js';
|
||||
|
||||
import { emitHook } from 'client/plugin.js';
|
||||
|
||||
const reducerModules = {
|
||||
group,
|
||||
user,
|
||||
inter,
|
||||
interfaceCol,
|
||||
project,
|
||||
news,
|
||||
addInterface,
|
||||
menu,
|
||||
follow
|
||||
};
|
||||
emitHook('add_reducer', reducerModules);
|
||||
|
||||
export default combineReducers(reducerModules);
|
||||
207
client/reducer/modules/user.js
Normal file
207
client/reducer/modules/user.js
Normal file
@@ -0,0 +1,207 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// Actions
|
||||
const LOGIN = 'yapi/user/LOGIN';
|
||||
const LOGIN_OUT = 'yapi/user/LOGIN_OUT';
|
||||
const LOGIN_TYPE = 'yapi/user/LOGIN_TYPE';
|
||||
const GET_LOGIN_STATE = 'yapi/user/GET_LOGIN_STATE';
|
||||
const REGISTER = 'yapi/user/REGISTER';
|
||||
const SET_BREADCRUMB = 'yapi/user/SET_BREADCRUMB';
|
||||
const CHANGE_STUDY_TIP = 'yapi/user/CHANGE_STUDY_TIP';
|
||||
const FINISH_STUDY = 'yapi/user/FINISH_STUDY';
|
||||
const SET_IMAGE_URL = 'yapi/user/SET_IMAGE_URL';
|
||||
|
||||
// Reducer
|
||||
const LOADING_STATUS = 0;
|
||||
const GUEST_STATUS = 1;
|
||||
const MEMBER_STATUS = 2;
|
||||
// Reducer user
|
||||
const initialState = {
|
||||
isLogin: false,
|
||||
canRegister: true,
|
||||
isLDAP: false,
|
||||
userName: null,
|
||||
uid: null,
|
||||
email: '',
|
||||
loginState: LOADING_STATUS,
|
||||
loginWrapActiveKey: '1',
|
||||
role: '',
|
||||
type: '',
|
||||
// breadcrumb: [{
|
||||
// name: 'name',
|
||||
// href: 'group'
|
||||
// }, {
|
||||
// name: '当前页面'
|
||||
// }]
|
||||
breadcrumb: [],
|
||||
studyTip: 0,
|
||||
study: false,
|
||||
imageUrl: ''
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case GET_LOGIN_STATE: {
|
||||
return {
|
||||
...state,
|
||||
isLogin: action.payload.data.errcode == 0,
|
||||
isLDAP: action.payload.data.ladp,
|
||||
canRegister: action.payload.data.canRegister,
|
||||
role: action.payload.data.data ? action.payload.data.data.role : null,
|
||||
loginState: action.payload.data.errcode == 0 ? MEMBER_STATUS : GUEST_STATUS,
|
||||
userName: action.payload.data.data ? action.payload.data.data.username : null,
|
||||
uid: action.payload.data.data ? action.payload.data.data._id : null,
|
||||
type: action.payload.data.data ? action.payload.data.data.type : null,
|
||||
study: action.payload.data.data ? action.payload.data.data.study : false
|
||||
};
|
||||
}
|
||||
case LOGIN: {
|
||||
if (action.payload.data.errcode === 0) {
|
||||
return {
|
||||
...state,
|
||||
isLogin: true,
|
||||
loginState: MEMBER_STATUS,
|
||||
uid: action.payload.data.data.uid,
|
||||
userName: action.payload.data.data.username,
|
||||
role: action.payload.data.data.role,
|
||||
type: action.payload.data.data.type,
|
||||
study: action.payload.data.data.study
|
||||
};
|
||||
} else {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
case LOGIN_OUT: {
|
||||
return {
|
||||
...state,
|
||||
isLogin: false,
|
||||
loginState: GUEST_STATUS,
|
||||
userName: null,
|
||||
uid: null,
|
||||
role: '',
|
||||
type: ''
|
||||
};
|
||||
}
|
||||
case LOGIN_TYPE: {
|
||||
return {
|
||||
...state,
|
||||
loginWrapActiveKey: action.index
|
||||
};
|
||||
}
|
||||
case REGISTER: {
|
||||
return {
|
||||
...state,
|
||||
isLogin: true,
|
||||
loginState: MEMBER_STATUS,
|
||||
uid: action.payload.data.data.uid,
|
||||
userName: action.payload.data.data.username,
|
||||
type: action.payload.data.data.type,
|
||||
study: action.payload.data.data ? action.payload.data.data.study : false
|
||||
};
|
||||
}
|
||||
case SET_BREADCRUMB: {
|
||||
return {
|
||||
...state,
|
||||
breadcrumb: action.data
|
||||
};
|
||||
}
|
||||
case CHANGE_STUDY_TIP: {
|
||||
return {
|
||||
...state,
|
||||
studyTip: state.studyTip + 1
|
||||
};
|
||||
}
|
||||
case FINISH_STUDY: {
|
||||
return {
|
||||
...state,
|
||||
study: true,
|
||||
studyTip: 0
|
||||
};
|
||||
}
|
||||
case SET_IMAGE_URL: {
|
||||
// console.log('state', state);
|
||||
return {
|
||||
...state,
|
||||
imageUrl: action.data
|
||||
};
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
// Action Creators
|
||||
export function checkLoginState() {
|
||||
return {
|
||||
type: GET_LOGIN_STATE,
|
||||
payload: axios.get('/api/user/status')
|
||||
};
|
||||
}
|
||||
|
||||
export function loginActions(data) {
|
||||
return {
|
||||
type: LOGIN,
|
||||
payload: axios.post('/api/user/login', data)
|
||||
};
|
||||
}
|
||||
|
||||
export function loginLdapActions(data) {
|
||||
return {
|
||||
type: LOGIN,
|
||||
payload: axios.post('/api/user/login_by_ldap', data)
|
||||
};
|
||||
}
|
||||
|
||||
export function regActions(data) {
|
||||
const { email, password, userName } = data;
|
||||
const param = {
|
||||
email,
|
||||
password,
|
||||
username: userName
|
||||
};
|
||||
return {
|
||||
type: REGISTER,
|
||||
payload: axios.post('/api/user/reg', param)
|
||||
};
|
||||
}
|
||||
|
||||
export function logoutActions() {
|
||||
return {
|
||||
type: LOGIN_OUT,
|
||||
payload: axios.get('/api/user/logout')
|
||||
};
|
||||
}
|
||||
|
||||
export function loginTypeAction(index) {
|
||||
return {
|
||||
type: LOGIN_TYPE,
|
||||
index
|
||||
};
|
||||
}
|
||||
|
||||
export function setBreadcrumb(data) {
|
||||
return {
|
||||
type: SET_BREADCRUMB,
|
||||
data
|
||||
};
|
||||
}
|
||||
|
||||
export function setImageUrl(data) {
|
||||
return {
|
||||
type: SET_IMAGE_URL,
|
||||
data
|
||||
};
|
||||
}
|
||||
|
||||
export function changeStudyTip() {
|
||||
return {
|
||||
type: CHANGE_STUDY_TIP
|
||||
};
|
||||
}
|
||||
|
||||
export function finishStudy() {
|
||||
return {
|
||||
type: FINISH_STUDY,
|
||||
payload: axios.get('/api/user/up_study')
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user