From e22dce64d4fd02c1f62c07fb9cd2b271db317605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=98=8A=E7=BF=94?= <673686754@qq.com> Date: Fri, 7 Sep 2018 15:01:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: eb890f1e76db02d8b8613650a4620e0815a2adaa [formerly eb890f1e76db02d8b8613650a4620e0815a2adaa [formerly eb890f1e76db02d8b8613650a4620e0815a2adaa [formerly eb890f1e76db02d8b8613650a4620e0815a2adaa [formerly 6c3a4338de7e3fd586a512bc3ed01607a6d35059 [formerly 82b81ed3a29d38520c9604670dc7215f1d5b5174]]]]] Former-commit-id: 4ea2f665b597d7be5475fcc52f72d5480b861f96 Former-commit-id: 6f021dbf6acf5a37c75de9136f988bc3a145478d Former-commit-id: 73529e2785ecda05d6975294c252f1491484f8fd [formerly bec7cf3aef63adf5fb24202468f6e860d91c2eea] Former-commit-id: f3300f293d8c3179a3261dc198f1ac84bacfcd82 Former-commit-id: 12bb9bc4d7512f3a5b58c8c94148b514b54885e9 Former-commit-id: 23a27dc9331d432f00f415b1fde86f80a11c60a4 Former-commit-id: 3ce60f0a0c26979cefb334119093c0d984c2459d Former-commit-id: feb82325b2b2fd15d9a0ba9df800b800bb3da0b2 --- package.json | 2 +- src/menu/modules/demo-d2-crud.js | 4 +- src/pages/demo/d2-crud/demo17/code.js | 29 +++- src/pages/demo/d2-crud/demo17/index.vue | 29 +++- src/pages/demo/d2-crud/demo18/code.js | 30 +++- src/pages/demo/d2-crud/demo18/index.vue | 30 +++- src/pages/demo/d2-crud/demo25/MyTag.vue | 29 ++++ .../demo/d2-crud/demo25/codeComponent.js | 29 ++++ src/pages/demo/d2-crud/demo25/codeOverall.js | 72 ++++++++ src/pages/demo/d2-crud/demo25/codePart.js | 77 +++++++++ src/pages/demo/d2-crud/demo25/doc.md | 1 + src/pages/demo/d2-crud/demo25/index.vue | 104 +++++++++++ src/pages/demo/d2-crud/demo26/MyTag.vue | 29 ++++ .../demo/d2-crud/demo26/codeComponent.js | 29 ++++ src/pages/demo/d2-crud/demo26/codeOverall.js | 130 ++++++++++++++ src/pages/demo/d2-crud/demo26/codePart.js | 135 +++++++++++++++ src/pages/demo/d2-crud/demo26/doc.md | 1 + src/pages/demo/d2-crud/demo26/index.vue | 162 ++++++++++++++++++ src/router/routes.js.REMOVED.git-id | 2 +- yarn.lock.REMOVED.git-id | 2 +- 20 files changed, 902 insertions(+), 24 deletions(-) create mode 100644 src/pages/demo/d2-crud/demo25/MyTag.vue create mode 100644 src/pages/demo/d2-crud/demo25/codeComponent.js create mode 100644 src/pages/demo/d2-crud/demo25/codeOverall.js create mode 100644 src/pages/demo/d2-crud/demo25/codePart.js create mode 100644 src/pages/demo/d2-crud/demo25/doc.md create mode 100644 src/pages/demo/d2-crud/demo25/index.vue create mode 100644 src/pages/demo/d2-crud/demo26/MyTag.vue create mode 100644 src/pages/demo/d2-crud/demo26/codeComponent.js create mode 100644 src/pages/demo/d2-crud/demo26/codeOverall.js create mode 100644 src/pages/demo/d2-crud/demo26/codePart.js create mode 100644 src/pages/demo/d2-crud/demo26/doc.md create mode 100644 src/pages/demo/d2-crud/demo26/index.vue diff --git a/package.json b/package.json index 8617c963..631da2a2 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "@d2-projects/d2-crud": "^1.0.2", + "@d2-projects/d2-crud": "^1.1.0", "axios": "^0.17.1", "babel-polyfill": "^6.26.0", "better-scroll": "^1.12.1", diff --git a/src/menu/modules/demo-d2-crud.js b/src/menu/modules/demo-d2-crud.js index cadf67b1..6eed0d36 100644 --- a/src/menu/modules/demo-d2-crud.js +++ b/src/menu/modules/demo-d2-crud.js @@ -35,7 +35,9 @@ export default { { path: `${pre}demo20`, title: '表单组件渲染' }, { path: `${pre}demo21`, title: '表单布局' }, { path: `${pre}demo22`, title: '表单校验' }, - { path: `${pre}demo23`, title: '表格内编辑' } + { path: `${pre}demo23`, title: '表格内编辑' }, + { path: `${pre}demo25`, title: '表格自定义组件' }, + { path: `${pre}demo26`, title: '表单自定义组件' } ] } ])('/demo/d2-crud/') diff --git a/src/pages/demo/d2-crud/demo17/code.js b/src/pages/demo/d2-crud/demo17/code.js index 59d69469..45b84750 100644 --- a/src/pages/demo/d2-crud/demo17/code.js +++ b/src/pages/demo/d2-crud/demo17/code.js @@ -34,22 +34,30 @@ export default { { date: '2016-05-02', name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' + address: '上海市普陀区金沙江路 1518 弄', + forbidEdit: true, + showEditButton: true }, { date: '2016-05-04', name: '王小虎', - address: '上海市普陀区金沙江路 1517 弄' + address: '上海市普陀区金沙江路 1517 弄', + forbidEdit: false, + showEditButton: true }, { date: '2016-05-01', name: '王小虎', - address: '上海市普陀区金沙江路 1519 弄' + address: '上海市普陀区金沙江路 1519 弄', + forbidEdit: false, + showEditButton: false }, { date: '2016-05-03', name: '王小虎', - address: '上海市普陀区金沙江路 1516 弄' + address: '上海市普陀区金沙江路 1516 弄', + forbidEdit: false, + showEditButton: true } ], rowHandle: { @@ -58,7 +66,18 @@ export default { icon: 'el-icon-edit', text: '点我进行编辑', size: 'small', - fixed: 'right' + show (index, row) { + if (row.showEditButton) { + return true + } + return false + }, + disabled (index, row) { + if (row.forbidEdit) { + return true + } + return false + } } }, formTemplate: { diff --git a/src/pages/demo/d2-crud/demo17/index.vue b/src/pages/demo/d2-crud/demo17/index.vue index 1a1be7a5..6c2226d4 100644 --- a/src/pages/demo/d2-crud/demo17/index.vue +++ b/src/pages/demo/d2-crud/demo17/index.vue @@ -50,22 +50,30 @@ export default { { date: '2016-05-02', name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' + address: '上海市普陀区金沙江路 1518 弄', + forbidEdit: true, + showEditButton: true }, { date: '2016-05-04', name: '王小虎', - address: '上海市普陀区金沙江路 1517 弄' + address: '上海市普陀区金沙江路 1517 弄', + forbidEdit: false, + showEditButton: true }, { date: '2016-05-01', name: '王小虎', - address: '上海市普陀区金沙江路 1519 弄' + address: '上海市普陀区金沙江路 1519 弄', + forbidEdit: false, + showEditButton: false }, { date: '2016-05-03', name: '王小虎', - address: '上海市普陀区金沙江路 1516 弄' + address: '上海市普陀区金沙江路 1516 弄', + forbidEdit: false, + showEditButton: true } ], rowHandle: { @@ -74,7 +82,18 @@ export default { icon: 'el-icon-edit', text: '点我进行编辑', size: 'small', - fixed: 'right' + show (index, row) { + if (row.showEditButton) { + return true + } + return false + }, + disabled (index, row) { + if (row.forbidEdit) { + return true + } + return false + } } }, formTemplate: { diff --git a/src/pages/demo/d2-crud/demo18/code.js b/src/pages/demo/d2-crud/demo18/code.js index 45d4e564..5484cf37 100644 --- a/src/pages/demo/d2-crud/demo18/code.js +++ b/src/pages/demo/d2-crud/demo18/code.js @@ -31,22 +31,30 @@ export default { { date: '2016-05-02', name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' + address: '上海市普陀区金沙江路 1518 弄', + forbidRemove: true, + showRemoveButton: true }, { date: '2016-05-04', name: '王小虎', - address: '上海市普陀区金沙江路 1517 弄' + address: '上海市普陀区金沙江路 1517 弄', + forbidRemove: false, + showRemoveButton: true }, { date: '2016-05-01', name: '王小虎', - address: '上海市普陀区金沙江路 1519 弄' + address: '上海市普陀区金沙江路 1519 弄', + forbidRemove: false, + showRemoveButton: false }, { date: '2016-05-03', name: '王小虎', - address: '上海市普陀区金沙江路 1516 弄' + address: '上海市普陀区金沙江路 1516 弄', + forbidRemove: false, + showRemoveButton: true } ], rowHandle: { @@ -54,7 +62,19 @@ export default { icon: 'el-icon-delete', size: 'small', fixed: 'right', - confirm: true + confirm: true, + show (index, row) { + if (row.showRemoveButton) { + return true + } + return false + }, + disabled (index, row) { + if (row.forbidRemove) { + return true + } + return false + } } } } diff --git a/src/pages/demo/d2-crud/demo18/index.vue b/src/pages/demo/d2-crud/demo18/index.vue index ee394425..b6ebe804 100644 --- a/src/pages/demo/d2-crud/demo18/index.vue +++ b/src/pages/demo/d2-crud/demo18/index.vue @@ -47,22 +47,30 @@ export default { { date: '2016-05-02', name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' + address: '上海市普陀区金沙江路 1518 弄', + forbidRemove: true, + showRemoveButton: true }, { date: '2016-05-04', name: '王小虎', - address: '上海市普陀区金沙江路 1517 弄' + address: '上海市普陀区金沙江路 1517 弄', + forbidRemove: false, + showRemoveButton: true }, { date: '2016-05-01', name: '王小虎', - address: '上海市普陀区金沙江路 1519 弄' + address: '上海市普陀区金沙江路 1519 弄', + forbidRemove: false, + showRemoveButton: false }, { date: '2016-05-03', name: '王小虎', - address: '上海市普陀区金沙江路 1516 弄' + address: '上海市普陀区金沙江路 1516 弄', + forbidRemove: false, + showRemoveButton: true } ], rowHandle: { @@ -70,7 +78,19 @@ export default { icon: 'el-icon-delete', size: 'small', fixed: 'right', - confirm: true + confirm: true, + show (index, row) { + if (row.showRemoveButton) { + return true + } + return false + }, + disabled (index, row) { + if (row.forbidRemove) { + return true + } + return false + } } } } diff --git a/src/pages/demo/d2-crud/demo25/MyTag.vue b/src/pages/demo/d2-crud/demo25/MyTag.vue new file mode 100644 index 00000000..5c0091c7 --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/MyTag.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/pages/demo/d2-crud/demo25/codeComponent.js b/src/pages/demo/d2-crud/demo25/codeComponent.js new file mode 100644 index 00000000..eb01844b --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/codeComponent.js @@ -0,0 +1,29 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo25/codeOverall.js b/src/pages/demo/d2-crud/demo25/codeOverall.js new file mode 100644 index 00000000..e71c2d3d --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/codeOverall.js @@ -0,0 +1,72 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo25/codePart.js b/src/pages/demo/d2-crud/demo25/codePart.js new file mode 100644 index 00000000..3ba9fbb9 --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/codePart.js @@ -0,0 +1,77 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo25/doc.md b/src/pages/demo/d2-crud/demo25/doc.md new file mode 100644 index 00000000..7b9fd03d --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/doc.md @@ -0,0 +1 @@ +向 `columns` 的 `component` 对象的 `name` 传入自定义组件来进行渲染,如果是[全局注册](https://cn.vuejs.org/v2/guide/components-registration.html#%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8C)的自定义组件,只需传入组件名即可;如果是[局部注册](https://cn.vuejs.org/v2/guide/components-registration.html#%E5%B1%80%E9%83%A8%E6%B3%A8%E5%86%8C)的组件,则需要传入`import` 的那个组件对象。自定义组件的写法需要符合[自定义组件使用v-model](https://cn.vuejs.org/v2/guide/components-custom-events.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84-v-model)的写法,代码如下: diff --git a/src/pages/demo/d2-crud/demo25/index.vue b/src/pages/demo/d2-crud/demo25/index.vue new file mode 100644 index 00000000..cb799554 --- /dev/null +++ b/src/pages/demo/d2-crud/demo25/index.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/pages/demo/d2-crud/demo26/MyTag.vue b/src/pages/demo/d2-crud/demo26/MyTag.vue new file mode 100644 index 00000000..5c0091c7 --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/MyTag.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/pages/demo/d2-crud/demo26/codeComponent.js b/src/pages/demo/d2-crud/demo26/codeComponent.js new file mode 100644 index 00000000..eb01844b --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/codeComponent.js @@ -0,0 +1,29 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo26/codeOverall.js b/src/pages/demo/d2-crud/demo26/codeOverall.js new file mode 100644 index 00000000..8de14e77 --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/codeOverall.js @@ -0,0 +1,130 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo26/codePart.js b/src/pages/demo/d2-crud/demo26/codePart.js new file mode 100644 index 00000000..803a7718 --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/codePart.js @@ -0,0 +1,135 @@ +export default ` + +` diff --git a/src/pages/demo/d2-crud/demo26/doc.md b/src/pages/demo/d2-crud/demo26/doc.md new file mode 100644 index 00000000..dc3426e9 --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/doc.md @@ -0,0 +1 @@ +向 `formTemplate` 中需要渲染自定义组件的 `component` 对象 `name` 中传入自定义组件来进行渲染,如果是[全局注册](https://cn.vuejs.org/v2/guide/components-registration.html#%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8C)的自定义组件,只需传入组件名即可;如果是[局部注册](https://cn.vuejs.org/v2/guide/components-registration.html#%E5%B1%80%E9%83%A8%E6%B3%A8%E5%86%8C)的组件,则需要传入`import` 的那个组件对象。自定义组件的写法需要符合[自定义组件使用v-model](https://cn.vuejs.org/v2/guide/components-custom-events.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84-v-model)的写法,代码如下: diff --git a/src/pages/demo/d2-crud/demo26/index.vue b/src/pages/demo/d2-crud/demo26/index.vue new file mode 100644 index 00000000..b51f7362 --- /dev/null +++ b/src/pages/demo/d2-crud/demo26/index.vue @@ -0,0 +1,162 @@ + + + diff --git a/src/router/routes.js.REMOVED.git-id b/src/router/routes.js.REMOVED.git-id index c81bf6fe..48b10bdb 100644 --- a/src/router/routes.js.REMOVED.git-id +++ b/src/router/routes.js.REMOVED.git-id @@ -1 +1 @@ -8f7502120cb1936fb8f1ef83f9462574f64d9d4b \ No newline at end of file +e5f86ceea9da8ed5238a065835a8d86dfa3cf688 \ No newline at end of file diff --git a/yarn.lock.REMOVED.git-id b/yarn.lock.REMOVED.git-id index f9a5a198..f27b6ed1 100644 --- a/yarn.lock.REMOVED.git-id +++ b/yarn.lock.REMOVED.git-id @@ -1 +1 @@ -ee5cecf1e3ba566cb1ff834db9f3c1f9d910fb26 \ No newline at end of file +98d7a73c1fb484dbcca94b8f6a41f916b8a30c20 \ No newline at end of file