parent
c9014d0338
commit
9379093a4f
@ -167,6 +167,23 @@ vxeUI.renderer.add('CellLink', {
|
|||||||
|
|
||||||
当启用了表单搜索时,可以在toolbarConfig中配置`search`为`true`来让表格在工具栏区域显示一个搜索表单控制按钮。表格的所有以`form-`开头的命名插槽都会被传递给搜索表单。
|
当启用了表单搜索时,可以在toolbarConfig中配置`search`为`true`来让表格在工具栏区域显示一个搜索表单控制按钮。表格的所有以`form-`开头的命名插槽都会被传递给搜索表单。
|
||||||
|
|
||||||
|
### 定制分隔条
|
||||||
|
|
||||||
|
当你启用表单搜索时,在表单和表格之间会显示一个分隔条。这个分隔条使用了默认的组件背景色,并且横向贯穿整个Vben Vxe Table在视觉上融入了页面的默认背景中。如果你在Vben Vxe Table的外层包裹了一个不同背景色的容器(如将其放在一个Card内),默认的表单和表格之间的分隔条可能就显得格格不入了,下面的代码演示了如何定制这个分隔条。
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const [Grid] = useVbenVxeGrid({
|
||||||
|
formOptions: {},
|
||||||
|
gridOptions: {},
|
||||||
|
// 完全移除分隔条
|
||||||
|
separator: false,
|
||||||
|
// 你也可以使用下面的代码来移除分隔条
|
||||||
|
// separator: { show: false },
|
||||||
|
// 或者使用下面的代码来改变分隔条的颜色
|
||||||
|
// separator: { backgroundColor: 'rgba(100,100,0,0.5)' },
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
<DemoPreview dir="demos/vben-vxe-table/form" />
|
<DemoPreview dir="demos/vben-vxe-table/form" />
|
||||||
|
|
||||||
## 单元格编辑
|
## 单元格编辑
|
||||||
@ -231,15 +248,16 @@ useVbenVxeGrid 返回的第二个参数,是一个对象,包含了一些表
|
|||||||
|
|
||||||
所有属性都可以传入 `useVbenVxeGrid` 的第一个参数中。
|
所有属性都可以传入 `useVbenVxeGrid` 的第一个参数中。
|
||||||
|
|
||||||
| 属性名 | 描述 | 类型 |
|
| 属性名 | 描述 | 类型 | 版本要求 |
|
||||||
| -------------- | -------------------- | ------------------- |
|
| --- | --- | --- | --- |
|
||||||
| tableTitle | 表格标题 | `string` |
|
| tableTitle | 表格标题 | `string` | - |
|
||||||
| tableTitleHelp | 表格标题帮助信息 | `string` |
|
| tableTitleHelp | 表格标题帮助信息 | `string` | - |
|
||||||
| gridClass | grid组件的class | `string` |
|
| gridClass | grid组件的class | `string` | - |
|
||||||
| gridOptions | grid组件的参数 | `VxeTableGridProps` |
|
| gridOptions | grid组件的参数 | `VxeTableGridProps` | - |
|
||||||
| gridEvents | grid组件的触发的事件 | `VxeGridListeners` |
|
| gridEvents | grid组件的触发的事件 | `VxeGridListeners` | - |
|
||||||
| formOptions | 表单参数 | `VbenFormProps` |
|
| formOptions | 表单参数 | `VbenFormProps` | - |
|
||||||
| showSearchForm | 是否显示搜索表单 | `boolean` |
|
| showSearchForm | 是否显示搜索表单 | `boolean` | - |
|
||||||
|
| separator | 搜索表单与表格主体之间的分隔条 | `boolean\|SeparatorOptions` | >5.5.4 |
|
||||||
|
|
||||||
## Slots
|
## Slots
|
||||||
|
|
||||||
|
@ -31,6 +31,10 @@ export interface VxeTableGridOptions<T = any> extends VxeTableGridProps<T> {
|
|||||||
toolbarConfig?: ToolbarConfigOptions;
|
toolbarConfig?: ToolbarConfigOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface SeparatorOptions {
|
||||||
|
show?: boolean;
|
||||||
|
backgroundColor?: string;
|
||||||
|
}
|
||||||
export interface VxeGridProps {
|
export interface VxeGridProps {
|
||||||
/**
|
/**
|
||||||
* 标题
|
* 标题
|
||||||
@ -64,6 +68,10 @@ export interface VxeGridProps {
|
|||||||
* 显示搜索表单
|
* 显示搜索表单
|
||||||
*/
|
*/
|
||||||
showSearchForm?: boolean;
|
showSearchForm?: boolean;
|
||||||
|
/**
|
||||||
|
* 搜索表单与表格主体之间的分隔条
|
||||||
|
*/
|
||||||
|
separator?: boolean | SeparatorOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ExtendedVxeGridApi = VxeGridApi & {
|
export type ExtendedVxeGridApi = VxeGridApi & {
|
||||||
|
@ -29,7 +29,13 @@ import { usePriorityValues } from '@vben/hooks';
|
|||||||
import { EmptyIcon } from '@vben/icons';
|
import { EmptyIcon } from '@vben/icons';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { usePreferences } from '@vben/preferences';
|
import { usePreferences } from '@vben/preferences';
|
||||||
import { cloneDeep, cn, isEqual, mergeWithArrayOverride } from '@vben/utils';
|
import {
|
||||||
|
cloneDeep,
|
||||||
|
cn,
|
||||||
|
isBoolean,
|
||||||
|
isEqual,
|
||||||
|
mergeWithArrayOverride,
|
||||||
|
} from '@vben/utils';
|
||||||
|
|
||||||
import { VbenHelpTooltip, VbenLoading } from '@vben-core/shadcn-ui';
|
import { VbenHelpTooltip, VbenLoading } from '@vben-core/shadcn-ui';
|
||||||
|
|
||||||
@ -67,10 +73,30 @@ const {
|
|||||||
tableTitle,
|
tableTitle,
|
||||||
tableTitleHelp,
|
tableTitleHelp,
|
||||||
showSearchForm,
|
showSearchForm,
|
||||||
|
separator,
|
||||||
} = usePriorityValues(props, state);
|
} = usePriorityValues(props, state);
|
||||||
|
|
||||||
const { isMobile } = usePreferences();
|
const { isMobile } = usePreferences();
|
||||||
|
const isSeparator = computed(() => {
|
||||||
|
if (
|
||||||
|
!formOptions.value ||
|
||||||
|
showSearchForm.value === false ||
|
||||||
|
separator.value === false
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (separator.value === true || separator.value === undefined) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return separator.value.show !== false;
|
||||||
|
});
|
||||||
|
const separatorBg = computed(() => {
|
||||||
|
return !separator.value ||
|
||||||
|
isBoolean(separator.value) ||
|
||||||
|
!separator.value.backgroundColor
|
||||||
|
? undefined
|
||||||
|
: separator.value.backgroundColor;
|
||||||
|
});
|
||||||
const slots: SetupContext['slots'] = useSlots();
|
const slots: SetupContext['slots'] = useSlots();
|
||||||
|
|
||||||
const [Form, formApi] = useTableForm({
|
const [Form, formApi] = useTableForm({
|
||||||
@ -375,7 +401,18 @@ onUnmounted(() => {
|
|||||||
<div
|
<div
|
||||||
v-if="formOptions"
|
v-if="formOptions"
|
||||||
v-show="showSearchForm !== false"
|
v-show="showSearchForm !== false"
|
||||||
:class="cn('relative rounded py-3', isCompactForm ? 'pb-8' : 'pb-4')"
|
:class="
|
||||||
|
cn(
|
||||||
|
'relative rounded py-3',
|
||||||
|
isCompactForm
|
||||||
|
? isSeparator
|
||||||
|
? 'pb-8'
|
||||||
|
: 'pb-4'
|
||||||
|
: isSeparator
|
||||||
|
? 'pb-4'
|
||||||
|
: 'pb-0',
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<slot name="form">
|
<slot name="form">
|
||||||
<Form>
|
<Form>
|
||||||
@ -404,6 +441,10 @@ onUnmounted(() => {
|
|||||||
</Form>
|
</Form>
|
||||||
</slot>
|
</slot>
|
||||||
<div
|
<div
|
||||||
|
v-if="isSeparator"
|
||||||
|
:style="{
|
||||||
|
...(separatorBg ? { backgroundColor: separatorBg } : undefined),
|
||||||
|
}"
|
||||||
class="bg-background-deep z-100 absolute -left-2 bottom-1 h-2 w-[calc(100%+1rem)] overflow-hidden md:bottom-2 md:h-3"
|
class="bg-background-deep z-100 absolute -left-2 bottom-1 h-2 w-[calc(100%+1rem)] overflow-hidden md:bottom-2 md:h-3"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user