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 @@
+
+
+
+
+
+
+
+
+
+ ¥{{ money }}
+
+
+
+ 查看详情
+
+
+ 修改状态
+
+
+ {{ menu }}
+
+
+
+
+
+
+
+
+
+