diff --git a/src/api/orders.js b/src/api/orders.js new file mode 100644 index 0000000000000000000000000000000000000000..de88844b571f9140e1ef1a5e40a82b88dc1fc476 --- /dev/null +++ b/src/api/orders.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' +import { isNumber } from '@/utils/util' + +const api = { + orderList: '/cms/order', + orderDone: '/cms/orderDone' +} + +export function getOrderList (parameter) { + if (parameter.search) { + const apiSuffix = isNumber(parameter.search) + ? 'isbn' + : 'title' + return request({ + url: api.orderList + `/${apiSuffix}/${parameter.search}/pageNum/${parameter.pageNo ? parameter.pageNo : 1}/pageSize/${parameter.pageSize ? parameter.pageSize : 20}`, + method: 'get' + }) + } else { + return request({ + url: api.orderList + `/info/pageNum/${parameter.pageNo ? parameter.pageNo : 1}/pageSize/${parameter.pageSize ? parameter.pageSize : 20}`, + method: 'get' + }) + } +} diff --git a/src/config/router.config.js b/src/config/router.config.js index bbd880a61f9513266dcd8b082990865ba6349b0e..e4d9e1f045a3fed5f9acc0a2be37540441c9bac2 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -1,6 +1,5 @@ // eslint-disable-next-line import { UserLayout, BasicLayout, BlankLayout } from '@/layouts' -import { bxAnaalyse } from '@/core/icons' const RouteView = { name: 'RouteView', @@ -20,7 +19,7 @@ export const asyncRouterMap = [ name: 'BookManagement', component: RouteView, redirect: '/bookManagement/bookList', - meta: { title: 'menu.bookManagement', keepAlive: true, icon: bxAnaalyse, permission: ['dashboard'] }, + meta: { title: 'menu.bookManagement', keepAlive: true, icon: 'book', permission: ['dashboard'] }, children: [ { path: '/bookManagement/bookList', @@ -29,6 +28,21 @@ export const asyncRouterMap = [ meta: { title: 'menu.bookManagement.bookList', keepAlive: false, permission: ['dashboard'] } } ] + }, + { + path: '/orderManagement', + name: 'OrderManagement', + component: RouteView, + redirect: '/orderManagement/orderList', + meta: { title: 'menu.orderManagement', keepAlive: true, icon: '', permission: ['dashboard'] }, + children: [ + { + path: '/orderManagement/orderList', + name: 'OrderList', + component: () => import('@/views/orderManagement/orderList/OrderList'), + meta: { title: 'menu.orderManagement.orderList', keepAlive: false, permission: ['dashboard'] } + } + ] } ] // children: [ diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js index 658f355b85045c05b1fc04c916b2bba10408c1bf..e3a574d59130f2da49ffa40e40a5f35a6f703a11 100644 --- a/src/locales/lang/zh-CN/menu.js +++ b/src/locales/lang/zh-CN/menu.js @@ -3,6 +3,8 @@ export default { 'menu.home': '主页', 'menu.bookManagement': '书本管理', 'menu.bookManagement.bookList': '书本列表', + 'menu.orderManagement': '订单管理', + 'menu.orderManagement.orderList': '订单列表', 'menu.dashboard': '仪表盘', 'menu.dashboard.analysis': '分析页', 'menu.dashboard.monitor': '监控页', diff --git a/src/mock/index.js b/src/mock/index.js index a0ee230e10978f602b1166aa82d9d9736c8d667c..b38c80a03ee6d8535cf2567fae354491d3157ff7 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -16,6 +16,7 @@ if (isMock()) { require('./services/tagCloud') require('./services/article') require('./services/books') + require('./services/orders') Mock.setup({ timeout: 800 // setter delay time diff --git a/src/mock/services/orders.js b/src/mock/services/orders.js new file mode 100644 index 0000000000000000000000000000000000000000..5833f0a044e234d7ca6547baa04a3472d7b107c3 --- /dev/null +++ b/src/mock/services/orders.js @@ -0,0 +1,44 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const totalCount = 100 + +const ordersList = (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({ + orderId: Mock.mock('@id()'), + money: Mock.mock('@float(1,100,2,2)'), + user: { + avatar: '', + nickname: Mock.mock('@cname'), + openId: Mock.mock('@id') + }, + books: Mock.mock({ + 'array|1-5': [ + { + isbn: Mock.mock(/^978\d{10}/), + num: Mock.mock('@integer(1,10)') + } + ] + }), + createTime: Mock.mock('@datetime()'), + status: Mock.mock(/[0-2]/) + }) + } + + return builder({ + pageSize: pageSize, + pageNum: pageNum, + total: totalCount, + pages: totalPage, + list: result + }) +} + +Mock.mock(/.+\/cms\/order\/.+/, 'get', ordersList) diff --git a/src/views/orderManagement/orderList/OrderList.vue b/src/views/orderManagement/orderList/OrderList.vue new file mode 100644 index 0000000000000000000000000000000000000000..192bb1d7f6fc7b6a363fe4d5fc75b66b4aace53b --- /dev/null +++ b/src/views/orderManagement/orderList/OrderList.vue @@ -0,0 +1,153 @@ + + +