From d7a2b04f456c7fad46c0c523a704e7e75d8fb2bb Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Wed, 12 Dec 2018 20:57:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?select-svg=20=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 8e7f1a63631ec0370683eadb16a9203b835f293d [formerly 8e7f1a63631ec0370683eadb16a9203b835f293d [formerly 8e7f1a63631ec0370683eadb16a9203b835f293d [formerly 8e7f1a63631ec0370683eadb16a9203b835f293d [formerly 8e6796da5ea041da9ed2fcbf89e84c91e2b7b230 [formerly 226e52a0e20b8a9cd011e2a2b0b0da2c25b9db4b]]]]] Former-commit-id: 4fd47532611745f6cefcbbb3f9f9409c6cbb978c Former-commit-id: 4a9f59b88aa4d6a164010e2cf80a20a6ad704efb Former-commit-id: 8b2408f7205cf68a8920e6287ad7cdc6da541d13 [formerly 50abaafae7d85ed49404b471297543a95c773e68] Former-commit-id: e9c5c24e393c7cc06f275b8249a1ff10e5aea3e2 Former-commit-id: 133e32b20973babb6cb2815c5f88f925e1d68cf2 Former-commit-id: 5b4528bd6e10f53f5ca19948af5fbe40a18ae4d3 Former-commit-id: 429cc57574024a3d073657f7c773104ec29ced39 Former-commit-id: b78065290d0d26c7fe4c6b2fd41288fb115686df --- src/components/d2-icon-select/index.vue | 4 +- .../data/index.js.REMOVED.git-id | 1 + src/components/d2-icon-svg-select/index.vue | 179 ++++++++++++++++++ src/components/index.js | 3 +- src/menu/modules/demo-components.js | 5 +- src/mock/api/demo.business.issues.142.js | 24 +-- src/mock/api/demo.business.table.1.js | 56 +++--- src/mock/api/demo.plugins.mock.ajax.js | 36 ++-- src/mock/api/sys.login.js | 39 ++-- src/mock/d2-mock/index.js | 77 ++++++++ src/mock/d2-mock/patch/index.js | 8 + src/mock/index.js | 20 +- .../components/icon/{svg.vue => icon-svg.vue} | 0 src/pages/demo/components/icon/select-svg.vue | 25 +++ src/router/modules/components.js | 5 +- 15 files changed, 380 insertions(+), 102 deletions(-) create mode 100644 src/components/d2-icon-svg-select/data/index.js.REMOVED.git-id create mode 100644 src/components/d2-icon-svg-select/index.vue create mode 100644 src/mock/d2-mock/index.js create mode 100644 src/mock/d2-mock/patch/index.js rename src/pages/demo/components/icon/{svg.vue => icon-svg.vue} (100%) create mode 100644 src/pages/demo/components/icon/select-svg.vue diff --git a/src/components/d2-icon-select/index.vue b/src/components/d2-icon-select/index.vue index 7079d763..bf3cc194 100644 --- a/src/components/d2-icon-select/index.vue +++ b/src/components/d2-icon-select/index.vue @@ -1,5 +1,5 @@ + + diff --git a/src/components/index.js b/src/components/index.js index 76a5b68a..59549f4e 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -12,8 +12,9 @@ Vue.component('d2-page-cover', () => import('./d2-page-cover')) Vue.component('d2-count-up', () => import('./d2-count-up')) Vue.component('d2-highlight', () => import('./d2-highlight')) Vue.component('d2-icon', () => import('./d2-icon')) -Vue.component('d2-icon-select', () => import('./d2-icon-select/index.vue')) Vue.component('d2-icon-svg', () => import('./d2-icon-svg/index.vue')) +Vue.component('d2-icon-select', () => import('./d2-icon-select/index.vue')) +Vue.component('d2-icon-svg-select', () => import('./d2-icon-svg-select/index.vue')) Vue.component('d2-markdown', () => import('./d2-markdown')) Vue.component('d2-mde', () => import('./d2-mde')) Vue.component('d2-module-index-banner', () => import('./d2-module-index-banner')) diff --git a/src/menu/modules/demo-components.js b/src/menu/modules/demo-components.js index 62b00eef..f4ebd4a7 100644 --- a/src/menu/modules/demo-components.js +++ b/src/menu/modules/demo-components.js @@ -67,9 +67,10 @@ export default { icon: 'star', children: [ { path: `${pre}icon/icon`, title: '图标组件' }, - { path: `${pre}icon/list`, title: 'FontAwesome' }, + { path: `${pre}icon/icon-svg`, title: 'svg 图标组件' }, { path: `${pre}icon/select`, title: '图标选择器' }, - { path: `${pre}icon/svg`, title: 'SVG图标组件' } + { path: `${pre}icon/select-svg`, title: 'svg 图标选择器' }, + { path: `${pre}icon/list`, title: 'FontAwesome' } ] }, { diff --git a/src/mock/api/demo.business.issues.142.js b/src/mock/api/demo.business.issues.142.js index 0c8933d8..9098c95e 100644 --- a/src/mock/api/demo.business.issues.142.js +++ b/src/mock/api/demo.business.issues.142.js @@ -1,6 +1,3 @@ -import Mock from 'mockjs' -import qs from 'qs' - const db = [ { id: '1', name: '王小虎1', address: '上海市普陀区金沙江路 1518 弄' }, { id: '2', name: '王小虎2', address: '上海市普陀区金沙江路 1517 弄' }, @@ -8,19 +5,14 @@ const db = [ { id: '4', name: '王小虎4', address: '上海市普陀区金沙江路 1516 弄' } ] -Mock.mock(RegExp('/api/demo/business/issues/142' + '.*'), 'get', ({ url, type, body }) => { - // 解析 - const options = { - params: qs.parse(url.split('?').length > 1 ? url.split('?')[1] : ''), - body: qs.parse(body), - url: qs.parse(url.split('?')[0]) - } - // 返回数据 - return Mock.mock( - { +export default { + path: RegExp('/api/demo/business/issues/142' + '.*'), + method: 'get', + handle ({ method, url, params, body, Mock, Random, Generator, Repeat }) { + return { code: 0, msg: '获取数据成功', - data: db.find(e => e.id === options.params.id) + 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 ff02e4c7..b6cb6074 100644 --- a/src/mock/api/demo.business.table.1.js +++ b/src/mock/api/demo.business.table.1.js @@ -1,29 +1,29 @@ -import Mock from 'mockjs' - -Mock.mock('/api/demo/business/table/1', ({ body }) => { - // 这是通过 post 传来的参数 - body = JSON.parse(body) - const { page } = body - page.total = 1000 - return Mock.mock( - { - code: 0, - msg: '获取数据成功', - data: { - page, - 'list|20': [ - { - '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: RegExp('/api/demo/business/table/1'), + method: 'post', + handle ({ method, url, params, body, Mock, Random, Generator, Repeat }) { + const { page } = body + page.total = 1000 + return Mock.mock( + { + code: 0, + msg: '获取数据成功', + data: { + page, + 'list|20': [ + { + '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 0e696322..a9df1a8b 100644 --- a/src/mock/api/demo.plugins.mock.ajax.js +++ b/src/mock/api/demo.plugins.mock.ajax.js @@ -1,19 +1,21 @@ -import Mock from 'mockjs' - -Mock.mock('/api/demo/plugins/mock/ajax', { - code: 0, - msg: '获取数据成功', - data: { - 'list|4-10': [ - { - 'id|+1': 1, - 'name': '@CNAME', - 'star|1-5': '★', - 'delFlag|1': [0, 1], - 'creatDate': '@DATE', - 'address': '@CITY', - 'zip': '@ZIP' +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' + }) } - ] + } } -}) +} diff --git a/src/mock/api/sys.login.js b/src/mock/api/sys.login.js index 2b2becb4..e9b51d2e 100644 --- a/src/mock/api/sys.login.js +++ b/src/mock/api/sys.login.js @@ -1,5 +1,3 @@ -import Mock from 'mockjs' - const userDB = [ { username: 'admin', @@ -21,23 +19,26 @@ const userDB = [ } ] -Mock.mock('/api/login', 'post', ({ url, type, body }) => { - const bodyObj = JSON.parse(body) - const user = userDB.find(e => e.username === bodyObj.username && e.password === bodyObj.password) - if (user) { - return { - code: 0, - msg: '登录成功', - data: { - ...user, - token: 'd787syv8dys8cas80d9s0a0d8f79ads56f7s4d56f879a8as89fd980s7dg' +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' + } + } + } 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 new file mode 100644 index 00000000..f1671624 --- /dev/null +++ b/src/mock/d2-mock/index.js @@ -0,0 +1,77 @@ +import Mock from 'mockjs' +import qs from 'qs' +import patch from './patch' + +/* 打补丁 */ +patch(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 = { + Generator, + Repeat, + Mock, + Random: Mock.Random +} + +const extend = (prop, value) => { + CustomExtends[prop] = value +} + +/* 装配配置组 */ + +const wired = ({ url, type, body }) => ({ + method: type, + params: qs.parse(url.split('?').length > 1 ? url.split('?')[1] : ''), + body: JSON.parse(body), + url: qs.parse(url.split('?')[0]), + ...CustomExtends +}) + +const setup = (path, method, handle) => { + Mock.mock( + path, + method, + typeof handle === 'function' ? o => handle(wired(o)) : handle + ) +} + +const load = (collection) => { + collection.map(({ path, method, handle }) => { + if (method === '*') { + method = [ + 'get', + 'head', + 'post', + 'put', + 'delete', + 'connect', + 'options', + 'trace', + 'patch' + ] + } + if (typeof method === 'string' && method.indexOf('|') > -1) method = method.split('|') + if (method instanceof Array) { + method.map(item => setup(path, item, handle)) + } else { + setup(path, method, handle) + } + }) +} + +export default { setup, load, extend } diff --git a/src/mock/d2-mock/patch/index.js b/src/mock/d2-mock/patch/index.js new file mode 100644 index 00000000..71a65a32 --- /dev/null +++ b/src/mock/d2-mock/patch/index.js @@ -0,0 +1,8 @@ +export default function (Mock) { + // http://cnine.me/note/FrontEnd/mock-lose-cookies-dbg.html + Mock.XHR.prototype.__send = Mock.XHR.prototype.send + Mock.XHR.prototype.send = function () { + if (this.custom.xhr) this.custom.xhr.withCredentials = this.withCredentials || false + this.__send.apply(this, arguments) + } +} diff --git a/src/mock/index.js b/src/mock/index.js index 7711bd1f..4d7c7eca 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,19 +1,9 @@ -import Mock from 'mockjs' - -// 解决 Mock 情况下,携带 withCredentials = true,且未被拦截的跨域请求丢失 Cookies 的问题 -Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send -Mock.XHR.prototype.send = function () { - if (this.custom.xhr) { - this.custom.xhr.withCredentials = this.withCredentials || false - } - this.proxy_send(...arguments) -} +import d2Mock from './d2-mock' // 导入所有的接口 const req = context => context.keys().map(context) -req(require.context('./api/', true, /\.js$/)) +const arr = req(require.context('./api/', true, /\.js$/)) + .filter(e => e.default) + .map(e => e.default) -// 设置全局延时 没有延时的话有时候会检测不到数据变化 建议保留 -Mock.setup({ - timeout: '300-600' -}) +d2Mock.load(arr) diff --git a/src/pages/demo/components/icon/svg.vue b/src/pages/demo/components/icon/icon-svg.vue similarity index 100% rename from src/pages/demo/components/icon/svg.vue rename to src/pages/demo/components/icon/icon-svg.vue diff --git a/src/pages/demo/components/icon/select-svg.vue b/src/pages/demo/components/icon/select-svg.vue new file mode 100644 index 00000000..244ba521 --- /dev/null +++ b/src/pages/demo/components/icon/select-svg.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/router/modules/components.js b/src/router/modules/components.js index d1864fcb..c8c56fa1 100644 --- a/src/router/modules/components.js +++ b/src/router/modules/components.js @@ -31,9 +31,10 @@ export default { { path: 'editor-simpleMDE', name: `${pre}editor-simpleMDE`, component: () => import('@/pages/demo/components/editor-simpleMDE'), meta: { ...meta, title: 'markdown编辑器' } }, { path: 'highlight', name: `${pre}highlight`, component: () => import('@/pages/demo/components/highlight'), meta: { ...meta, title: '代码高亮组件' } }, { path: 'icon/icon', name: `${pre}icon-icon`, component: () => import('@/pages/demo/components/icon/icon.vue'), meta: { ...meta, title: '图标组件' } }, + { path: 'icon/icon-svg', name: `${pre}icon-icon-svg`, component: () => import('@/pages/demo/components/icon/icon-svg.vue'), meta: { ...meta, title: 'svg 图标' } }, + { path: 'icon/select', name: `${pre}icon-select`, component: () => import('@/pages/demo/components/icon/select.vue'), meta: { ...meta, title: '图标选择器' } }, + { path: 'icon/select-svg', name: `${pre}icon-select-svg`, component: () => import('@/pages/demo/components/icon/select-svg.vue'), meta: { ...meta, title: 'svg 图标选择器' } }, { path: 'icon/list', name: `${pre}icon-list`, component: () => import('@/pages/demo/components/icon/list.vue'), meta: { ...meta, title: '图标列表' } }, - { path: 'icon/select', name: `${pre}icon-select`, component: () => import('@/pages/demo/components/icon/select.vue'), meta: { ...meta, title: '图表选择器组件' } }, - { path: 'icon/svg', name: `${pre}icon-svg`, component: () => import('@/pages/demo/components/icon/svg.vue'), meta: { ...meta, title: 'svg 图标' } }, { path: 'index', name: `${pre}index`, component: () => import('@/pages/demo/components/index'), meta: { ...meta, title: '组件首页' } }, { path: 'json-tree', name: `${pre}json-tree`, component: () => import('@/pages/demo/components/json-tree'), meta: { ...meta, title: 'JSON 展示' } }, { path: 'layout/grid', name: `${pre}layout-grid`, component: () => import('@/pages/demo/components/layout/grid.vue'), meta: { ...meta, title: '拖拽网格布局' } }, From 82c7f98e7cade773fb88b832a4055ced8a11d3c0 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Wed, 12 Dec 2018 22:01:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=20d2-icon-select=20d2-ic?= =?UTF-8?q?on-svg-select?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 23048d4149234e89b004c3e372329c6f98761758 [formerly 23048d4149234e89b004c3e372329c6f98761758 [formerly 23048d4149234e89b004c3e372329c6f98761758 [formerly 23048d4149234e89b004c3e372329c6f98761758 [formerly 275123feb74c1c623162bbc40297f0aa7bc86fe0 [formerly 61a358238bfa2687b4af53abb16f97ed66000360]]]]] Former-commit-id: 49fe5afc42637c517173105f33df8c8870d7fe88 Former-commit-id: 9f9153a76016993bdedfd6e6f7732e668b2047ea Former-commit-id: cf1a0a4bf0e33deb3167c3583a4b98b18dc3246e [formerly 9612610849efccc456868c65de8f6d78fe1eb690] Former-commit-id: 57967a2dcda29767e87196b4d82e433e4246e653 Former-commit-id: 85c96b419d24a43117c75a34fcc8454b57f72336 Former-commit-id: e58a7e88a7925b5e0761f919fa2f2160a350b681 Former-commit-id: 94635a1b758e730f362bf40949676cc2b320bf55 Former-commit-id: 6f412615cab141a24d32e1c259f949c13f78c6b9 --- src/components/d2-icon-select/index.vue | 39 ++++---- .../data/index.js.REMOVED.git-id | 1 - src/components/d2-icon-svg-select/index.vue | 89 ++++++++++--------- 3 files changed, 71 insertions(+), 58 deletions(-) delete mode 100644 src/components/d2-icon-svg-select/data/index.js.REMOVED.git-id diff --git a/src/components/d2-icon-select/index.vue b/src/components/d2-icon-select/index.vue index bf3cc194..7016a9bc 100644 --- a/src/components/d2-icon-select/index.vue +++ b/src/components/d2-icon-select/index.vue @@ -6,8 +6,15 @@ :placement="placement" width="300" trigger="click"> -
- 清空 +
+ + 清空 +
- - - - + + + + -
-
-
{{item.title}}
- - +
+
+
{{item.title}}
+ + @@ -159,22 +166,22 @@ export default { From b1afe31a051d235e8b7e45353fce58db29254252 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Wed, 12 Dec 2018 22:58:18 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0mock=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 3561c0b2ab4034d5d5a89b6a2f35de618c147c2c [formerly 3561c0b2ab4034d5d5a89b6a2f35de618c147c2c [formerly 3561c0b2ab4034d5d5a89b6a2f35de618c147c2c [formerly 3561c0b2ab4034d5d5a89b6a2f35de618c147c2c [formerly ac1af8ddc9819b789fd70b8da10ee223faed6e69 [formerly 22a45253b3ddb18715a39500f9bf5b56e1b37c6e]]]]] Former-commit-id: acba007c5344dce6a0122676027ba0266c5636b0 Former-commit-id: 33b90caaf8810a029cf1f051b4b0f30f7c328309 Former-commit-id: 6d602d737c16c5eda5f8e2448acb7c83c8df8c4c [formerly 415683706be473d2888806175eec075c57798e0e] Former-commit-id: c5285636ff550374708ba4346fc6e98eb08d32e3 Former-commit-id: 0ed99aac2efee06256bc94d52eac820ca24dda35 Former-commit-id: d8a75b3f1da2a75645e0965f2b278bde10ef16cb Former-commit-id: 8b424ac8ef5df06cb89d76e4ba3a3fcdeb34f113 Former-commit-id: 93f866cbfcf129ed0f0393c4bf567a45c6a17568 --- src/mock/api/demo.business.issues.142.js | 4 +- src/mock/api/demo.business.table.1.js | 38 +++++++++---------- src/mock/index.js | 5 +-- .../table/1/componnets/PageFooter/index.vue | 2 +- src/pages/demo/business/table/1/index.vue | 2 +- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/src/mock/api/demo.business.issues.142.js b/src/mock/api/demo.business.issues.142.js index 9098c95e..e342b517 100644 --- a/src/mock/api/demo.business.issues.142.js +++ b/src/mock/api/demo.business.issues.142.js @@ -6,9 +6,9 @@ const db = [ ] export default { - path: RegExp('/api/demo/business/issues/142' + '.*'), + path: RegExp('/api/demo/business/issues/142.*'), method: 'get', - handle ({ method, url, params, body, Mock, Random, Generator, Repeat }) { + handle ({ params }) { return { code: 0, msg: '获取数据成功', diff --git a/src/mock/api/demo.business.table.1.js b/src/mock/api/demo.business.table.1.js index b6cb6074..66b638ce 100644 --- a/src/mock/api/demo.business.table.1.js +++ b/src/mock/api/demo.business.table.1.js @@ -1,29 +1,25 @@ export default { path: RegExp('/api/demo/business/table/1'), method: 'post', - handle ({ method, url, params, body, Mock, Random, Generator, Repeat }) { + handle ({ body, Repeat }) { const { page } = body page.total = 1000 - return Mock.mock( - { - code: 0, - msg: '获取数据成功', - data: { - page, - 'list|20': [ - { - 'key': '@guid', - 'value|1': [10, 100, 200, 500], - 'type': '@boolean', - 'admin': '@cname', - 'adminNote': '@cparagraph(0.5)', - 'dateTimeCreat': '@datetime', - 'used': '@boolean', - 'dateTimeUse': '@datetime' - } - ] - } + 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' + }) } - ) + } } } diff --git a/src/mock/index.js b/src/mock/index.js index 4d7c7eca..ed02bfe2 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,9 +1,8 @@ import d2Mock from './d2-mock' -// 导入所有的接口 const req = context => context.keys().map(context) -const arr = req(require.context('./api/', true, /\.js$/)) +const options = req(require.context('./api/', true, /\.js$/)) .filter(e => e.default) .map(e => e.default) -d2Mock.load(arr) +d2Mock.load(options) diff --git a/src/pages/demo/business/table/1/componnets/PageFooter/index.vue b/src/pages/demo/business/table/1/componnets/PageFooter/index.vue index 46df4540..31ac9067 100644 --- a/src/pages/demo/business/table/1/componnets/PageFooter/index.vue +++ b/src/pages/demo/business/table/1/componnets/PageFooter/index.vue @@ -3,7 +3,7 @@ :current-page="current" :page-size="size" :total="total" - :page-sizes="[100, 200, 300, 400]" + :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" style="margin: -10px;" @size-change="handleSizeChange" diff --git a/src/pages/demo/business/table/1/index.vue b/src/pages/demo/business/table/1/index.vue index ac1b5fe6..c0ce9668 100644 --- a/src/pages/demo/business/table/1/index.vue +++ b/src/pages/demo/business/table/1/index.vue @@ -33,7 +33,7 @@ export default { loading: false, page: { current: 1, - size: 100, + size: 10, total: 0 } } 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 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20mock=20=E8=AE=BE?= =?UTF-8?q?=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