diff --git a/packages/index.js b/packages/index.js
index 4b1e71f..0ee6398 100644
--- a/packages/index.js
+++ b/packages/index.js
@@ -2,6 +2,7 @@ import Vue from 'vue';
import ZTable from './table/index.vue';
import ZTableNormal from './table/normal';
import ZTableEditable from './table/editable';
+import ZTableEditor from './table/editor';
import ElImageViewer from './upload/image-viewer';
let components = {};
@@ -17,6 +18,7 @@ const install = function(Vue, opts = {}) {
components[ZTable.name] = ZTable;
components[ZTableNormal.name] = ZTableNormal;
components[ZTableEditable.name] = ZTableEditable;
+ components[ZTableEditor.name] = ZTableEditor;
Object.values(components).forEach(component => {
// 组件前缀
const prefix = opts.name || 'z';
diff --git a/packages/table/editable copy.vue b/packages/table/editable copy.vue
deleted file mode 100644
index 99efbb6..0000000
--- a/packages/table/editable copy.vue
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
-
-
-
-
-
- onCellInput(value, row, column, $index)"
- @edit-click="setRowEditor(row, column, $index)"
- @edit-confirm="value => onEditConfirm(value, row, column, $index)"
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/table/editable.vue b/packages/table/editable.vue
index 99efbb6..d48d53b 100644
--- a/packages/table/editable.vue
+++ b/packages/table/editable.vue
@@ -61,14 +61,21 @@
diff --git a/packages/table/index.vue b/packages/table/index.vue
index 6355c72..fdd4c3e 100644
--- a/packages/table/index.vue
+++ b/packages/table/index.vue
@@ -6,8 +6,11 @@ export default {
functional: true,
render(h, context) {
const props = context.props || {};
- if (props.editable) {
- return ref('z-table-editable', context);
+ if (Object.prototype.hasOwnProperty.call(props, 'editable') && props.editable !== false) {
+ return h('z-table-editable', { props, scopedSlots: context.scopedSlots, on: context.listeners });
+ }
+ if (props.editor) {
+ return ref('z-table-editor', context);
}
return ref('z-table-normal', context);
},
diff --git a/packages/table/normal.vue b/packages/table/normal.vue
index 4144968..7bf0741 100644
--- a/packages/table/normal.vue
+++ b/packages/table/normal.vue
@@ -6,9 +6,15 @@ import { renderContext } from '../utils/vnode';
function headerRender(h, context, item) {
const headerSlot = context.scopedSlots[`header-${item.prop}`];
return function(scope) {
+ // 自定义具名插槽
if (headerSlot) {
return headerSlot(scope);
}
+ // 自定义渲染函数
+ if (item.header) {
+ return item.header(item, h, scope);
+ }
+ // 默认取值
return item.label;
};
}
diff --git a/packages/utils/vnode.js b/packages/utils/vnode.js
index bdf35cb..82f5fde 100644
--- a/packages/utils/vnode.js
+++ b/packages/utils/vnode.js
@@ -1,6 +1,6 @@
// 注册函数式组件ref
export function registerRef(vnode, context) {
- if (!context.data.ref) {
+ if (!context.data.ref || !vnode.data.hook) {
return vnode;
}
// 备份vnode原有的insert周期函数
--
libgit2 0.21.0