diff --git a/src/api/miniUser.js b/src/api/miniUser.js new file mode 100644 index 0000000000000000000000000000000000000000..a0236c460b636c87fabe64110b9ddcbd5f51a071 --- /dev/null +++ b/src/api/miniUser.js @@ -0,0 +1,21 @@ +import request from '@/utils/request' + +const api = { + miniUserList: '/user/selectAll', + miniUserStatusModify: '/user/updateRole' +} + +export function getMiniUserList (parameter) { + return request({ + url: api.miniUserList + `/pageNum/${parameter.pageNo ? parameter.pageNo : 1}/pageSize/${parameter.pageSize ? parameter.pageSize : 20}`, + method: 'get' + }) +} + +export function modifyMiniUserStatus (parameter) { + return request({ + url: api.miniUserStatusModify, + method: 'post', + data: parameter + }) +} diff --git a/src/config/router.config.js b/src/config/router.config.js index b581baafd8ee1f2c7f57f512552ad61263b5ae78..fd679146f32e2febcd7d079aba0d8a88b49f5f33 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -50,6 +50,21 @@ export const asyncRouterMap = [ meta: { title: 'menu.orderManagement.orderDetail', keepAlive: false } } ] + }, + { + path: '/userManagement', + name: 'UserManagement', + component: RouteView, + redirect: '/userManagement/miniUserList', + meta: { title: 'menu.userManagement', keepAlive: true, icon: 'account-book', permission: ['dashboard'] }, + children: [ + { + path: '/UserManagement/miniUserList', + name: 'MiniUserList', + component: () => import('@/views/UserManagement/miniUserList/MiniUserList'), + meta: { title: 'menu.userManagement.miniUserList', keepAlive: false, permission: ['dashboard'] } + } + ] } ] // children: [ diff --git a/src/core/global.js b/src/core/global.js index 0fe30bb6798e74cbe9d05d643bfdc01c51fd5dc5..4c127040fa304b51af8d8f77de88b81f7eb9c88b 100644 --- a/src/core/global.js +++ b/src/core/global.js @@ -24,3 +24,22 @@ export const statusMap = { } } } + +export const UserstatusMap = { + 'user': { + status: 'processing', + text: '普通用户', + dropDownIcon: { + type: 'clock-circle', + color: '#1890ff' + } + }, + 'agent': { + status: 'success', + text: '代理用户', + dropDownIcon: { + type: 'check-circle', + color: '#52c41a' + } + } +} diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js index a59b25c4e87cc3b5ca862167b3ef999372d1fd34..ca9e8fd8d825b61bcecca7f251515b0fcd9f42cd 100644 --- a/src/locales/lang/zh-CN/menu.js +++ b/src/locales/lang/zh-CN/menu.js @@ -4,6 +4,8 @@ export default { 'menu.bookManagement': '书本管理', 'menu.bookManagement.bookList': '书本列表', 'menu.orderManagement': '订单管理', + 'menu.userManagement': '用户管理', + 'menu.userManagement.miniUserList': '小程序用户', 'menu.orderManagement.orderList': '订单列表', 'menu.orderManagement.orderDetail': '订单详情', 'menu.dashboard': '仪表盘', diff --git a/src/mock/index.js b/src/mock/index.js index b38c80a03ee6d8535cf2567fae354491d3157ff7..e4b4ef09b8ff605675a4ebe530d5c763c31f71b3 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -17,6 +17,7 @@ if (isMock()) { require('./services/article') require('./services/books') require('./services/orders') + require('./services/miniUser') Mock.setup({ timeout: 800 // setter delay time diff --git a/src/mock/services/miniUser.js b/src/mock/services/miniUser.js new file mode 100644 index 0000000000000000000000000000000000000000..c6396ad9991ea4ef3e12efcc133aaa1442d71573 --- /dev/null +++ b/src/mock/services/miniUser.js @@ -0,0 +1,33 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const totalCount = 100 + +const Random = Mock.Random + +const miniUserList = (options) => { + const arr = options.url.split('/') + const result = [] + const pageNum = Number(arr[arr.indexOf('pageNum') + 1]) + const pageSize = Number(arr[arr.indexOf('pageSize') + 1]) + const totalPage = Math.ceil(totalCount / pageSize) + const next = (pageNum >= totalPage ? (totalCount % pageSize) : pageSize) + 1 + for (let i = 1; i < next; i++) { + result.push(Mock.mock({ + 'openId': '@id', + 'nickname': Random.pick(['@cname', '@name(true)', '@name']), + 'createTime': '@datetime', + 'role': Random.pick(['user', 'agent']) + })) + } + + return builder({ + pageSize: pageSize, + pageNum: pageNum, + total: totalCount, + pages: totalPage, + list: result + }) +} + +Mock.mock(/.+\/user\/selectAll\/.+/, 'get', miniUserList) diff --git a/src/views/UserManagement/miniUserList/MiniUserList.vue b/src/views/UserManagement/miniUserList/MiniUserList.vue new file mode 100644 index 0000000000000000000000000000000000000000..80d78e681b1d0bb83a0273dd31c00d7d7697a728 --- /dev/null +++ b/src/views/UserManagement/miniUserList/MiniUserList.vue @@ -0,0 +1,137 @@ + + +