UNPKG

vxe-pc-ui

Version:
53 lines (45 loc) 1.52 kB
import { computed } from 'vue' import XEUtils from 'xe-utils' import type { VxeGlobalRendererHandles, VxeFormDesignDefines } from '../../../../types' import type { VxeTableDefines } from '../../../../types/components/table' export function useSubtableView <D = any, P = Record<string, any>> (props: { renderOpts: VxeGlobalRendererHandles.RenderFormDesignWidgetSubtableEditViewOptions renderParams: VxeGlobalRendererHandles.RenderFormDesignWidgetSubtableEditViewParams }) { const currWidget = computed<VxeFormDesignDefines.WidgetObjItem<P>>(() => { const { renderParams } = props return renderParams.widget }) const currColumn = computed<VxeTableDefines.ColumnInfo<D>>(() => { const { renderParams } = props return renderParams.column }) const currRow = computed<D>(() => { const { renderParams } = props return renderParams.row }) const widgetOptions = computed<P>(() => { const { renderParams } = props const { widget } = renderParams return widget ? widget.options : {} }) const cellModel = computed({ get () { const { renderParams } = props const { row, column } = renderParams return XEUtils.get(row, column.field) }, set (value) { const { renderParams } = props const { row, column } = renderParams return XEUtils.set(row, column.field, value) } }) return { currColumn, currRow, currWidget, widgetOptions, cellModel } }