mirror of
https://github.com/zuiidea/antd-admin
synced 2026-10-18 05:23:51 +00:00
Optimize the way to import api, Removed some configuration in utils/config.js.
This commit is contained in:
@@ -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
@@ -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 +0,0 @@
|
||||
import '@babel/polyfill'
|
||||
+4
-5
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
@@ -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
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
@@ -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
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user