Optimize the way to import api, Removed some configuration in utils/config.js.

This commit is contained in:
zuiidea
2018-09-12 14:05:20 +08:00
parent 0de24b8251
commit 237efb4e72
18 changed files with 102 additions and 195 deletions
+2 -1
View File
@@ -31,7 +31,7 @@ export default {
include: ['dva', 'dva/router', 'dva/saga', 'dva/fetch', 'antd/es'],
},
hardSource: /* isMac */ process.platform === 'darwin',
polyfills: ['ie11'],
polyfills: ['ie9'],
},
],
],
@@ -56,6 +56,7 @@ export default {
services: resolve(__dirname, './src/services'),
models: resolve(__dirname, './src/models'),
routes: resolve(__dirname, './src/routes'),
api: resolve(__dirname, './src/services/'),
},
urlLoaderExcludes: [/\.svg$/],
ignoreMomentLocale: true,
+10 -6
View File
@@ -4,7 +4,6 @@
"private": true,
"description": "An admin dashboard application demo built upon Ant Design and UmiJS",
"dependencies": {
"@babel/polyfill": "^7.0.0",
"antd": "^3.9.2",
"axios": "^0.18.0",
"babel-eslint": "^9.0.0",
@@ -58,21 +57,26 @@
"umi-plugin-react": "^1.0.3"
},
"lint-staged": {
"**/*.{js,less}": [
"src/**/*.js": [
"eslint --ext .js --fix",
"umi test",
"npm run prettier",
"git add"
],
"**/*.js": "npm run lint",
"**/*.less": "stylelint --syntax less"
"**/*.less": [
"stylelint --syntax less",
"npm run prettier",
"git add"
]
},
"scripts": {
"analyze": "cross-env ANALYZE=1 umi build",
"build": "umi build",
"lint": "eslint --ext .js src",
"lint:js": "eslint --ext .js src",
"lint:style": "stylelint \"src/**/*.less\" --syntax less",
"start": "umi dev",
"test": "umi test",
"prettier": "prettier --write 'src/**/*'",
"precommit": "lint-staged"
"precommit": "lint-staged && npm run test"
}
}

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

-1
View File
@@ -1 +0,0 @@
import '@babel/polyfill'
+4 -5
View File
@@ -7,8 +7,7 @@ import { routerRedux } from 'dva/router'
import { parse, stringify } from 'qs'
import config from 'config'
import { EnumRoleType } from 'enums'
import { query, logout } from 'services/app'
import * as menusService from 'services/menus'
import { queryMenuList, userLogout, queryUserInfo } from 'api'
const { prefix } = config
@@ -62,10 +61,10 @@ export default {
},
effects: {
*query({ payload }, { call, put, select }) {
const { success, user } = yield call(query, payload)
const { success, user } = yield call(queryUserInfo, payload)
const { locationPathname } = yield select(_ => _.app)
if (success && user) {
const { list } = yield call(menusService.query)
const { list } = yield call(queryMenuList)
const { permissions } = user
let menu = list
if (
@@ -116,7 +115,7 @@ export default {
},
*logout({ payload }, { call, put }) {
const data = yield call(logout, parse(payload))
const data = yield call(userLogout, parse(payload))
if (data.success) {
yield put({
type: 'updateState',
+2 -2
View File
@@ -1,5 +1,5 @@
import { routerRedux } from 'dva/router'
import { login } from './service'
import { loginUser } from 'api'
export default {
namespace: 'login',
@@ -8,7 +8,7 @@ export default {
effects: {
*login({ payload }, { put, call, select }) {
const data = yield call(login, payload)
const data = yield call(loginUser, payload)
const { locationQuery } = yield select(_ => _.app)
if (data.success) {
const { from } = locationQuery
-12
View File
@@ -1,12 +0,0 @@
import { request, config } from 'utils'
const { api } = config
const { userLogin } = api
export function login(data) {
return request({
url: userLogin,
method: 'post',
data,
})
}
-44
View File
@@ -1,44 +0,0 @@
import modelExtend from 'dva-model-extend'
import { query } from './service'
import { pageModel } from 'utils/model'
export default modelExtend(pageModel, {
namespace: 'post',
subscriptions: {
setup({ dispatch, history }) {
history.listen(location => {
if (location.pathname === '/post') {
dispatch({
type: 'query',
payload: {
status: 2,
...location.query,
},
})
}
})
},
},
effects: {
*query({ payload }, { call, put }) {
const data = yield call(query, payload)
if (data.success) {
yield put({
type: 'querySuccess',
payload: {
list: data.data,
pagination: {
current: Number(payload.page) || 1,
pageSize: Number(payload.pageSize) || 10,
total: data.total,
},
},
})
} else {
throw data
}
},
},
})
+20 -17
View File
@@ -1,19 +1,27 @@
import React from 'react'
import Mock from 'mockjs'
import { request, config } from 'utils'
import { request } from 'utils'
import { Row, Col, Card, Select, Input, Button } from 'antd'
import styles from './index.less'
import {
userLogin,
queryUser,
createUser,
updateUser,
removeUser,
queryUserInfo,
queryDashboard,
queryUserList,
} from 'api'
const { api } = config
const { dashboard, users, userLogin, user, v1test, v2test } = api
import styles from './index.less'
export const requestOptions = [
{
url: user.replace('/:id', ''),
url: queryUserInfo,
desc: 'intercept request by mock.js',
},
{
url: dashboard,
url: queryDashboard,
desc: 'intercept request by mock.js',
},
{
@@ -26,18 +34,18 @@ export const requestOptions = [
desc: 'intercept request by mock.js',
},
{
url: users,
url: queryUserList,
desc: 'intercept request by mock.js',
},
{
url: user,
url: queryUser,
desc: 'intercept request by mock.js',
data: Mock.mock({
id: '@id',
}),
},
{
url: user.replace('/:id', ''),
url: createUser,
desc: 'intercept request by mock.js',
method: 'post',
data: Mock.mock({
@@ -60,7 +68,7 @@ export const requestOptions = [
}),
},
{
url: user,
url: updateUser,
desc: 'intercept request by mock.js',
method: 'patch',
data: Mock.mock({
@@ -69,7 +77,7 @@ export const requestOptions = [
}),
},
{
url: user,
url: removeUser,
desc: 'intercept request by mock.js',
method: 'delete',
data: Mock.mock({
@@ -77,12 +85,7 @@ export const requestOptions = [
}),
},
{
url: v1test,
desc: 'intercept request by mock.js',
method: 'get',
},
{
url: v2test,
url: '/api/v2/test',
desc: 'intercept request by mock.js',
method: 'get',
},
+2 -2
View File
@@ -1,5 +1,5 @@
import pathToRegexp from 'path-to-regexp'
import { query } from '../../services/user'
import { queryUser } from 'api'
export default {
namespace: 'userDetail',
@@ -21,7 +21,7 @@ export default {
effects: {
*query({ payload }, { call, put }) {
const data = yield call(query, payload)
const data = yield call(queryUser, payload)
const { success, message, status, ...other } = data
if (success) {
yield put({
+12 -8
View File
@@ -1,11 +1,15 @@
/* global window */
import modelExtend from 'dva-model-extend'
import { config } from 'utils'
import { create, remove, update } from './services/user'
import * as usersService from './services/users'
import {
queryUserList,
createUser,
removeUser,
updateUser,
removeUserList,
} from 'api'
import { pageModel } from 'utils/model'
const { query } = usersService
const { prefix } = config
export default modelExtend(pageModel, {
@@ -35,7 +39,7 @@ export default modelExtend(pageModel, {
effects: {
*query({ payload = {} }, { call, put }) {
const data = yield call(query, payload)
const data = yield call(queryUserList, payload)
if (data) {
yield put({
type: 'querySuccess',
@@ -52,7 +56,7 @@ export default modelExtend(pageModel, {
},
*delete({ payload }, { call, put, select }) {
const data = yield call(remove, { id: payload })
const data = yield call(removeUser, { id: payload })
const { selectedRowKeys } = yield select(_ => _.user)
if (data.success) {
yield put({
@@ -67,7 +71,7 @@ export default modelExtend(pageModel, {
},
*multiDelete({ payload }, { call, put }) {
const data = yield call(usersService.remove, payload)
const data = yield call(removeUserList, payload)
if (data.success) {
yield put({ type: 'updateState', payload: { selectedRowKeys: [] } })
} else {
@@ -76,7 +80,7 @@ export default modelExtend(pageModel, {
},
*create({ payload }, { call, put }) {
const data = yield call(create, payload)
const data = yield call(createUser, payload)
if (data.success) {
yield put({ type: 'hideModal' })
} else {
@@ -87,7 +91,7 @@ export default modelExtend(pageModel, {
*update({ payload }, { select, call, put }) {
const id = yield select(({ user }) => user.currentItem.id)
const newUser = { ...payload, id }
const data = yield call(update, newUser)
const data = yield call(updateUser, newUser)
if (data.success) {
yield put({ type: 'hideModal' })
} else {
-36
View File
@@ -1,36 +0,0 @@
import { request, config } from 'utils'
const { api } = config
const { user } = api
export function query(params) {
return request({
url: user,
method: 'get',
data: params,
})
}
export function create(params) {
return request({
url: user.replace('/:id', ''),
method: 'post',
data: params,
})
}
export function remove(params) {
return request({
url: user,
method: 'delete',
data: params,
})
}
export function update(params) {
return request({
url: user,
method: 'patch',
data: params,
})
}
-20
View File
@@ -1,20 +0,0 @@
import { request, config } from 'utils'
const { api } = config
const { users } = api
export function query(params) {
return request({
url: users,
method: 'get',
data: params,
})
}
export function remove(params) {
return request({
url: users + '/delete',
method: 'post',
data: params,
})
}
+20
View File
@@ -0,0 +1,20 @@
const api = {
queryMenuList: '/menus',
queryUserInfo: '/user',
logoutUser: '/user/logout',
loginUser: 'POST /user/login',
queryUser: '/user/:id',
queryUserList: '/users',
updateUser: 'Patch /user/:id',
createUser: 'POST /user/:id',
removeUser: 'DELETE /user/:id',
removeUserList: 'POST /users/delete',
queryPostList: '/posts',
queryDashboard: '/dashboard',
}
export default api
-28
View File
@@ -1,28 +0,0 @@
import { request, config } from 'utils'
const { api } = config
const { user, userLogout, userLogin } = api
export function login(params) {
return request({
url: userLogin,
method: 'post',
data: params,
})
}
export function logout(params) {
return request({
url: userLogout,
method: 'get',
data: params,
})
}
export function query(params) {
return request({
url: user.replace('/:id', ''),
method: 'get',
data: params,
})
}
+29
View File
@@ -0,0 +1,29 @@
import request from 'utils/request'
import { apiPrefix } from 'utils/config'
import api from './api'
const gen = params => {
let url = apiPrefix + params
let method = 'GET'
const paramsArray = params.split(' ')
if (paramsArray.length === 2) {
method = paramsArray[0]
url = apiPrefix + paramsArray[1]
}
return function(data) {
return request({
url,
data,
method,
})
}
}
const APIFunction = {}
for (const key in api) {
APIFunction[key] = gen(api[key])
}
module.exports = APIFunction
-12
View File
@@ -1,12 +0,0 @@
import { request, config } from 'utils'
const { api } = config
const { menus } = api
export function query(params) {
return request({
url: menus,
method: 'get',
data: params,
})
}
+1 -1
View File
@@ -5,7 +5,7 @@ module.exports = {
name: 'AntD Admin',
prefix: 'antdAdmin',
footerText: 'Ant Design Admin © 2018 zuiidea',
logo: '/public/logo.svg',
logo: '/logo.svg',
openPages: ['/login'],
apiPrefix: '/api/v1',
APIV1,