grid-column.tsx 1.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
import {
  GridEditItemController,
  GridFieldColumnController,
  GridRowController,
} from '@ibiz-template/controller';
import { computed, defineComponent } from 'vue';

export const GridColumn = defineComponent({
  name: 'GridColumn',
  props: {
    fieldColumn: {
      type: GridFieldColumnController,
      required: true,
    },
    editItem: {
      type: GridEditItemController,
    },
    row: {
      type: GridRowController,
      required: true,
    },
  },
  setup(props) {
    /** 先看列是否启用行编辑,然后是否有配置编辑项 */
    const renderRowEdit = computed(() => {
      return props.fieldColumn.enableRowEdit && props.editItem;
    });
    return { renderRowEdit };
  },
  render() {
    if (this.renderRowEdit) {
      return (
        <grid-edit-item
          controller={this.editItem}
          row={this.row}
        ></grid-edit-item>
      );
    }
    return (
      <grid-field-column
        controller={this.fieldColumn}
        row={this.row}
      ></grid-field-column>
    );
  },
});
export default GridColumn;