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 @@
+
+
+ {{ text }}
+
+
+
+
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 `
+
+ {{ text }}
+
+
+
+`
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 @@
+
+
+ 表格自定义组件
+
+
+
+
+
+ 全局注册写法:
+
+
+
+ 局部注册写法:
+
+
+
+ 自定义组件 MyTag 代码:
+
+
+
+
+
+
+
+
+
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 @@
+
+
+ {{ text }}
+
+
+
+
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 `
+
+ {{ text }}
+
+
+
+`
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 @@
+
+
+ 表单自定义组件
+
+
+
+
+
+ 全局注册写法:
+
+
+
+ 局部注册写法:
+
+
+
+ 自定义组件 MyTag 代码:
+
+
+
+
+
+
+
+
+
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