Skip to content

StkTableColumn

列設定

vue
<StkTable :columns="columns"></StkTable>

浅い監視

コンポーネントは columns プロパティを深く監視しません。したがって、列のプッシュが效果がない場合は、次のように参照を更新することを検討してください:

ts
columns.value = columns.value.slice(); // 配列参照を更新

StkTableColumn 設定

ts
export type StkTableColumn<T extends Record<string, any>> = {
    /**
     * 列の一意キー(オプション)。提供されていない場合、dataIndexフィールドがデフォルトで列の一意キーとして使用されます。
     */
    key?: any;
    /**
     * 列タイプ
     * - seq: シーケンス列
     * - expand: 展開可能列
     * - dragRow: ドラッグ可能行列(sktTableRef.getTableDataを使用して変更された順序を取得)
     * - tree-node: ツリーノード列、展開/折りたたみ矢印が前につきます
     */
    type?: 'seq' | 'expand' | 'dragRow' | 'tree-node';
    /** データインデックス */
    dataIndex: keyof T & string;
    /** ヘッダーテキスト */
    title?: string;
    /** 列コンテンツの配置 */
    align?: 'right' | 'left' | 'center';
    /** ヘッダーコンテンツの配置 */
    headerAlign?: 'right' | 'left' | 'center';
    /** 排序 */
    sorter?: Sorter<T>;
    /** 列幅。横方向仮想スクロールには必ず設定が必要です。 */
    width?: string | number;
    /** 最小列幅。横方向仮想スクロールを使用していない場合に効果的。 */
    minWidth?: string | number;
    /** 最大列幅。横方向仮想スクロールを使用していない場合に効果的。 */
    maxWidth?: string | number;
    /** th クラス */
    headerClassName?: string;
    /** td クラス */
    className?: string;
    /** 排序フィールド。デフォルト: dataIndex */
    sortField?: keyof T;
    /** 排序タイプ。number/string */
    sortType?: 'number' | 'string';
    /** 固定列 */
    fixed?: 'left' | 'right' | null;
    /** 列を非表示にするかどうか */
    hidden?: boolean;
    /** 現在の列の排序設定 */
    sortConfig?: Omit<SortConfig<T>, 'defaultSort'>;
    /**
     * カスタムtdレンダリングコンテンツ。
     *
     * コンポーネントprops:
     * @param props.row 行のレコード。
     * @param props.col 列設定
     * @param props.cellValue row[col.dataIndex] の値
     * @param props.rowIndex 行インデックス
     * @param props.colIndex 列インデックス(0から)virtual-xでは、そうでない場合は仮想リスト内のインデックスを表します
     */
    customCell?: Component<CustomCellProps<T>> | string;
    /**
     * カスタムthレンダリングコンテンツ
     *
     * コンポーネントprops:
     * @param props.col 列設定
     * @param props.rowIndex 行インデックス
     * @param props.colIndex 列インデックス(0から)virtual-xでは、そうでない場合は仮想リスト内のインデックスを表します
     */
    customHeaderCell?: Component<CustomHeaderCellProps<T>> | string;
    /**
     * カスタムtfoot tdレンダリングコンテンツ
     *
     * コンポーネントprops:
     * @param props.row tfoot行のレコード。
     * @param props.col 列設定
     * @param props.cellValue row[col.dataIndex] の値
     * @param props.rowIndex Tfoot行インデックス(0から開始)
     * @param props.colIndex 列インデックス
     */
    customFooterCell?: Component<CustomFooterCellProps<T>> | string;
    /** ネストされたヘッダー */
    children?: StkTableColumn<T>[];
     /** セルマージ */
    mergeCells?: MergeCellsFn<T>;
};

StkTableColumn.Sorter

ts
type Sorter<T> = boolean 
    | ((
        data: T[],
        option: { order: Order; column: any }
    ) => T[]);

StkTableColumn.SortConfig

ts
/** 排序設定 */
export type SortConfig<T extends Record<string, any>> = {
    /** 空の値は常にリストの下部にきます */
    emptyToBottom?: boolean;
    /**
     * デフォルト排序(1.初期化時にトリガー 2.排序方向がnullの場合にトリガー)
     * onMountedでsetSorterを呼び出し、ヘッダーをクリックすること类似的行为。
     */
    defaultSort?: {
        dataIndex: keyof T;
        order: Order;
        /** sort-changeイベントの発生を無効にするかどうか。デフォルトfalse يعنيイベントが発生 */
        silent?: boolean;
    };
    /**
     * 文字列排序にString.prototype.localCompareを使用するかどうか
     * デフォルト true ($*$ should be false)
     */
    stringLocaleCompare?: boolean;
    /** 子アイテムを排序するかどうか。デフォルト false (v0.8.8)*/
    sortChildren?: boolean;
};

StkTableColumn.MergeCellsFn

ts
export type MergeCellsParam<T extends Record<string, any>> = {
    row: T;
    col: StkTableColumn<T>;
    rowIndex: number;
    colIndex: number;
};

export type MergeCellsFn<T extends Record<string, any>> =
    (data: MergeCellsParam<T>) => 
        { 
            rowspan?: number; 
            colspan?: number 
        } | undefined;

MITライセンスの下で公開されています