From 56223d91957c17ac51138fac6e00e76a190962a1 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Thu, 13 Dec 2018 10:29:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20mock=20=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 91e149862bc5c5994005c16b8921d293347c935e [formerly cc5c1b4e89e4c0bd2a86ced9e4dd4ac30cf69ad4] [formerly 91e149862bc5c5994005c16b8921d293347c935e [formerly cc5c1b4e89e4c0bd2a86ced9e4dd4ac30cf69ad4] [formerly 91e149862bc5c5994005c16b8921d293347c935e [formerly cc5c1b4e89e4c0bd2a86ced9e4dd4ac30cf69ad4] [formerly cc5c1b4e89e4c0bd2a86ced9e4dd4ac30cf69ad4 [formerly a995dd4aa6a5745242d449c1114d41592437d318 [formerly 84ceaffec1514357a65944b2b2af6ad55eed82cd]]]]] Former-commit-id: 7fff6c3cca28a5b09ebbdb395fb250487bee6da3 Former-commit-id: ed647717531cb8a8d9ccb276c01986b5f8af7653 Former-commit-id: 7afd7c7718a1302fe0adc74bd06a1af0992fc305 [formerly fe10b57a2e3e9738867df9c88ec22d51d271891a] Former-commit-id: 8ad7dd5c5e2ecf759e0ffd82e296658b5d735dd1 Former-commit-id: 289a192ca0d76c1e99dc1a9786a71580f705a1bd Former-commit-id: 06de0f519d511e893333553a3a25d4388308e1b0 Former-commit-id: 0f21f9ff42abc15714f0622b0de1770509e19052 Former-commit-id: bbef35694d434bab48f2fcf49d7ae459fe7bff2b --- src/api/demo.business.issues.142.js | 2 +- src/api/demo.business.table.1.js | 8 +-- src/mock/api/demo.business.issues.142.js | 20 +++--- src/mock/api/demo.business.table.1.js | 47 +++++++------- src/mock/api/demo.plugins.mock.ajax.js | 38 ++++++------ src/mock/api/sys.login.js | 61 ++++++++----------- src/mock/d2-mock/index.js | 16 ++--- .../patch/{index.js => withCredentials.js} | 0 src/mock/index.js | 4 +- src/pages/demo/business/table/1/index.vue | 16 ++--- 10 files changed, 102 insertions(+), 110 deletions(-) rename src/mock/d2-mock/patch/{index.js => withCredentials.js} (100%) diff --git a/src/api/demo.business.issues.142.js b/src/api/demo.business.issues.142.js index b5b4464c..0e0f2bd8 100644 --- a/src/api/demo.business.issues.142.js +++ b/src/api/demo.business.issues.142.js @@ -2,7 +2,7 @@ import request from '@/plugin/axios' export function get (id) { return request({ - url: '/demo/business/issues/142', + url: '/demo/business/issues/142/detail', method: 'get', params: { id diff --git a/src/api/demo.business.table.1.js b/src/api/demo.business.table.1.js index 4e09ecb9..3c1b94af 100644 --- a/src/api/demo.business.table.1.js +++ b/src/api/demo.business.table.1.js @@ -1,9 +1,9 @@ import request from '@/plugin/axios' -export function BusinessTable1List (data) { +export function BusinessTable1List (params) { return request({ - url: '/demo/business/table/1', - method: 'post', - data + url: '/demo/business/table/1/fetch', + method: 'get', + params }) } diff --git a/src/mock/api/demo.business.issues.142.js b/src/mock/api/demo.business.issues.142.js index e342b517..13920c13 100644 --- a/src/mock/api/demo.business.issues.142.js +++ b/src/mock/api/demo.business.issues.142.js @@ -5,14 +5,16 @@ const db = [ { id: '4', name: '王小虎4', address: '上海市普陀区金沙江路 1516 弄' } ] -export default { - path: RegExp('/api/demo/business/issues/142.*'), - method: 'get', - handle ({ params }) { - return { - code: 0, - msg: '获取数据成功', - data: db.find(e => e.id === params.id) +export default [ + { + path: '/api/demo/business/issues/142/detail.*', + method: 'get', + handle ({ params }) { + return { + code: 0, + msg: '获取数据成功', + data: db.find(e => e.id === params.id) + } } } -} +] diff --git a/src/mock/api/demo.business.table.1.js b/src/mock/api/demo.business.table.1.js index 66b638ce..f14f4346 100644 --- a/src/mock/api/demo.business.table.1.js +++ b/src/mock/api/demo.business.table.1.js @@ -1,25 +1,28 @@ -export default { - path: RegExp('/api/demo/business/table/1'), - method: 'post', - handle ({ body, Repeat }) { - const { page } = body - page.total = 1000 - return { - code: 0, - msg: '获取数据成功', - data: { - page, - list: Repeat(page.size, { - 'key': '@guid', - 'value|1': [10, 100, 200, 500], - 'type': '@boolean', - 'admin': '@cname', - 'adminNote': '@cparagraph(0.5)', - 'dateTimeCreat': '@datetime', - 'used': '@boolean', - 'dateTimeUse': '@datetime' - }) +export default [ + { + path: '/api/demo/business/table/1/fetch.*', + method: 'get', + handle ({ params, Repeat }) { + let { pageSize } = params + return { + code: 0, + msg: '获取数据成功', + data: { + page: { + total: 1000 + }, + list: Repeat(pageSize, { + 'key': '@guid', + 'value|1': [10, 100, 200, 500], + 'type': '@boolean', + 'admin': '@cname', + 'adminNote': '@cparagraph(0.5)', + 'dateTimeCreat': '@datetime', + 'used': '@boolean', + 'dateTimeUse': '@datetime' + }) + } } } } -} +] diff --git a/src/mock/api/demo.plugins.mock.ajax.js b/src/mock/api/demo.plugins.mock.ajax.js index a9df1a8b..6df32545 100644 --- a/src/mock/api/demo.plugins.mock.ajax.js +++ b/src/mock/api/demo.plugins.mock.ajax.js @@ -1,21 +1,23 @@ -export default { - path: RegExp('/api/demo/plugins/mock/ajax'), - method: 'get', - handle ({ Repeat }) { - return { - code: 0, - msg: '获取数据成功', - data: { - list: Repeat('4-10', { - 'id|+1': 1, - 'name': '@CNAME', - 'star|1-5': '★', - 'delFlag|1': [0, 1], - 'creatDate': '@DATE', - 'address': '@CITY', - 'zip': '@ZIP' - }) +export default [ + { + path: '/api/demo/plugins/mock/ajax', + method: 'get', + handle ({ Repeat }) { + return { + code: 0, + msg: '获取数据成功', + data: { + list: Repeat('4-10', { + 'id|+1': 1, + 'name': '@CNAME', + 'star|1-5': '★', + 'delFlag|1': [0, 1], + 'creatDate': '@DATE', + 'address': '@CITY', + 'zip': '@ZIP' + }) + } } } } -} +] diff --git a/src/mock/api/sys.login.js b/src/mock/api/sys.login.js index e9b51d2e..7283ee70 100644 --- a/src/mock/api/sys.login.js +++ b/src/mock/api/sys.login.js @@ -1,44 +1,31 @@ const userDB = [ - { - username: 'admin', - password: 'admin', - uuid: 'admin-uuid', - name: '管理员' - }, - { - username: 'editor', - password: 'editor', - uuid: 'editor-uuid', - name: '编辑' - }, - { - username: 'user1', - password: 'user1', - uuid: 'user1-uuid', - name: '用户1' - } + { username: 'admin', password: 'admin', uuid: 'admin-uuid', name: '管理员' }, + { username: 'editor', password: 'editor', uuid: 'editor-uuid', name: '编辑' }, + { username: 'user1', password: 'user1', uuid: 'user1-uuid', name: '用户1' } ] -export default { - path: RegExp('/api/login'), - method: 'post', - handle ({ body }) { - const user = userDB.find(e => e.username === body.username && e.password === body.password) - if (user) { - return { - code: 0, - msg: '登录成功', - data: { - ...user, - token: 'd787syv8dys8cas80d9s0a0d8f79ads56f7s4d56f879a8as89fd980s7dg' +export default [ + { + path: '/api/login', + method: 'post', + handle ({ body }) { + const user = userDB.find(e => e.username === body.username && e.password === body.password) + if (user) { + return { + code: 0, + msg: '登录成功', + data: { + ...user, + token: '8dfhassad0asdjwoeiruty' + } + } + } else { + return { + code: 401, + msg: '用户名或密码错误', + data: {} } - } - } else { - return { - code: 401, - msg: '用户名或密码错误', - data: {} } } } -} +] diff --git a/src/mock/d2-mock/index.js b/src/mock/d2-mock/index.js index f1671624..0dd19625 100644 --- a/src/mock/d2-mock/index.js +++ b/src/mock/d2-mock/index.js @@ -1,24 +1,21 @@ import Mock from 'mockjs' import qs from 'qs' -import patch from './patch' +import withCredentials from './patch/withCredentials' -/* 打补丁 */ -patch(Mock) +/* 补丁 */ +withCredentials(Mock) /* Mock 默认配置 */ - Mock.setup({ timeout: '200-300' }) -/* 扩展 */ - +/* 扩展 [生成器] */ const Generator = (prop, template) => { const obj = {} obj[prop] = [template] return Mock.mock(obj) } -/* 扩展 */ - +/* 扩展 [循环] */ const Repeat = (num, itemTemplate) => Generator(`data|${num}`, itemTemplate).data const CustomExtends = { @@ -33,7 +30,6 @@ const extend = (prop, value) => { } /* 装配配置组 */ - const wired = ({ url, type, body }) => ({ method: type, params: qs.parse(url.split('?').length > 1 ? url.split('?')[1] : ''), @@ -44,7 +40,7 @@ const wired = ({ url, type, body }) => ({ const setup = (path, method, handle) => { Mock.mock( - path, + RegExp(path), method, typeof handle === 'function' ? o => handle(wired(o)) : handle ) diff --git a/src/mock/d2-mock/patch/index.js b/src/mock/d2-mock/patch/withCredentials.js similarity index 100% rename from src/mock/d2-mock/patch/index.js rename to src/mock/d2-mock/patch/withCredentials.js diff --git a/src/mock/index.js b/src/mock/index.js index ed02bfe2..1a3dec93 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -5,4 +5,6 @@ const options = req(require.context('./api/', true, /\.js$/)) .filter(e => e.default) .map(e => e.default) -d2Mock.load(options) +options.forEach(option => { + d2Mock.load(option) +}) diff --git a/src/pages/demo/business/table/1/index.vue b/src/pages/demo/business/table/1/index.vue index c0ce9668..85cd124d 100644 --- a/src/pages/demo/business/table/1/index.vue +++ b/src/pages/demo/business/table/1/index.vue @@ -9,9 +9,9 @@ :loading="loading"/> @@ -32,9 +32,9 @@ export default { table: [], loading: false, page: { - current: 1, - size: 10, - total: 0 + pageCurrent: 1, + pageSize: 10, + pageTotal: 0 } } }, @@ -57,7 +57,7 @@ export default { }) BusinessTable1List({ ...form, - page: this.page + ...this.page }) .then(res => { this.loading = false @@ -65,7 +65,7 @@ export default { title: '模拟表格数据请求完毕' }) this.table = res.list - this.page = res.page + this.page.pageTotal = res.page.total }) .catch(err => { this.loading = false