Browse Source
fix: when opening the tool separately, there is no need to pass the toolbar-tools slot (#4841)
pull/4844/head
Vben
1 year ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with
66 additions and
30 deletions
-
docs/src/components/common-ui/vben-form.md
-
docs/src/guide/essentials/icons.md
-
packages/@core/base/typings/src/basic.d.ts
-
packages/@core/ui-kit/form-ui/package.json
-
packages/@core/ui-kit/form-ui/src/types.ts
-
packages/@core/ui-kit/popup-ui/package.json
-
packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts
-
packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/context-menu/context-menu.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/hover-card/hover-card.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/popover/popover.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue
-
packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue
-
packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue
-
packages/effects/common-ui/src/components/captcha/types.ts
-
packages/effects/plugins/src/vxe-table/theme.css
-
packages/effects/plugins/src/vxe-table/types.ts
-
packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
-
playground/src/views/examples/vxe-table/basic.vue
-
pnpm-lock.yaml
|
|
|
@ -320,7 +320,7 @@ useVbenForm 返回的第二个参数,是一个对象,包含了一些表单 |
|
|
|
```ts |
|
|
|
export interface ActionButtonOptions { |
|
|
|
/** 样式 */ |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
/** 是否禁用 */ |
|
|
|
disabled?: boolean; |
|
|
|
/** 是否加载中 */ |
|
|
|
|
|
|
|
@ -67,7 +67,7 @@ import { SvgTestIcon } from '@vben/icons'; |
|
|
|
</template> |
|
|
|
``` |
|
|
|
|
|
|
|
## Tailwind CSS 图标 <Badge text="不推荐" type="danger"/> |
|
|
|
## Tailwind CSS 图标 |
|
|
|
|
|
|
|
### 使用 |
|
|
|
|
|
|
|
|
|
|
|
@ -30,4 +30,6 @@ interface BasicUserInfo { |
|
|
|
username: string; |
|
|
|
} |
|
|
|
|
|
|
|
export type { BasicOption, BasicUserInfo, SelectOption, TabOption }; |
|
|
|
type ClassType = Array<object | string> | object | string; |
|
|
|
|
|
|
|
export type { BasicOption, BasicUserInfo, ClassType, SelectOption, TabOption }; |
|
|
|
|
|
|
|
@ -40,6 +40,7 @@ |
|
|
|
"@vben-core/composables": "workspace:*", |
|
|
|
"@vben-core/shadcn-ui": "workspace:*", |
|
|
|
"@vben-core/shared": "workspace:*", |
|
|
|
"@vben-core/typings": "workspace:*", |
|
|
|
"@vee-validate/zod": "catalog:", |
|
|
|
"@vueuse/core": "catalog:", |
|
|
|
"vee-validate": "catalog:", |
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
import type { VbenButtonProps } from '@vben-core/shadcn-ui'; |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { FieldOptions, FormContext, GenericObject } from 'vee-validate'; |
|
|
|
import type { ZodTypeAny } from 'zod'; |
|
|
|
|
|
|
|
@ -303,7 +304,7 @@ export interface VbenFormProps< |
|
|
|
/** |
|
|
|
* 表单操作区域class |
|
|
|
*/ |
|
|
|
actionWrapperClass?: any; |
|
|
|
actionWrapperClass?: ClassType; |
|
|
|
/** |
|
|
|
* 表单重置回调 |
|
|
|
*/ |
|
|
|
|
|
|
|
@ -41,6 +41,7 @@ |
|
|
|
"@vben-core/icons": "workspace:*", |
|
|
|
"@vben-core/shadcn-ui": "workspace:*", |
|
|
|
"@vben-core/shared": "workspace:*", |
|
|
|
"@vben-core/typings": "workspace:*", |
|
|
|
"@vueuse/core": "catalog:", |
|
|
|
"vue": "catalog:" |
|
|
|
} |
|
|
|
|
|
|
|
@ -1,3 +1,5 @@ |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
|
|
|
|
import type { DrawerApi } from './drawer-api'; |
|
|
|
|
|
|
|
import type { Component, Ref } from 'vue'; |
|
|
|
@ -7,7 +9,7 @@ export interface DrawerProps { |
|
|
|
* 取消按钮文字 |
|
|
|
*/ |
|
|
|
cancelText?: string; |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
/** |
|
|
|
* 是否显示右上角的关闭按钮 |
|
|
|
* @default true |
|
|
|
@ -45,11 +47,17 @@ export interface DrawerProps { |
|
|
|
/** |
|
|
|
* 弹窗底部样式 |
|
|
|
*/ |
|
|
|
footerClass?: any; |
|
|
|
footerClass?: ClassType; |
|
|
|
/** |
|
|
|
* 是否显示顶栏 |
|
|
|
* @default true |
|
|
|
*/ |
|
|
|
header?: boolean; |
|
|
|
/** |
|
|
|
* 弹窗头部样式 |
|
|
|
*/ |
|
|
|
headerClass?: any; |
|
|
|
headerClass?: ClassType; |
|
|
|
|
|
|
|
/** |
|
|
|
* 弹窗是否显示 |
|
|
|
* @default false |
|
|
|
|
|
|
|
@ -57,6 +57,7 @@ const { |
|
|
|
description, |
|
|
|
footer: showFooter, |
|
|
|
footerClass, |
|
|
|
header: showHeader, |
|
|
|
headerClass, |
|
|
|
loading: showLoading, |
|
|
|
modal, |
|
|
|
@ -131,6 +132,7 @@ function handleFocusOutside(e: Event) { |
|
|
|
@pointer-down-outside="pointerDownOutside" |
|
|
|
> |
|
|
|
<SheetHeader |
|
|
|
v-show="showHeader" |
|
|
|
:class=" |
|
|
|
cn( |
|
|
|
'!flex flex-row items-center justify-between border-b px-6 py-5', |
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { |
|
|
|
AvatarFallbackProps, |
|
|
|
AvatarImageProps, |
|
|
|
@ -11,9 +12,9 @@ import { Avatar, AvatarFallback, AvatarImage } from '../../ui'; |
|
|
|
|
|
|
|
interface Props extends AvatarRootProps, AvatarFallbackProps, AvatarImageProps { |
|
|
|
alt?: string; |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
dot?: boolean; |
|
|
|
dotClass?: any; |
|
|
|
dotClass?: ClassType; |
|
|
|
} |
|
|
|
|
|
|
|
defineOptions({ |
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { |
|
|
|
ContextMenuContentProps, |
|
|
|
ContextMenuRootEmits, |
|
|
|
@ -22,11 +23,11 @@ import { |
|
|
|
|
|
|
|
const props = defineProps< |
|
|
|
{ |
|
|
|
class?: any; |
|
|
|
contentClass?: any; |
|
|
|
class?: ClassType; |
|
|
|
contentClass?: ClassType; |
|
|
|
contentProps?: ContextMenuContentProps; |
|
|
|
handlerData?: Record<string, any>; |
|
|
|
itemClass?: any; |
|
|
|
itemClass?: ClassType; |
|
|
|
menus: (data: any) => IContextMenuItem[]; |
|
|
|
} & ContextMenuRootProps |
|
|
|
>(); |
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { |
|
|
|
HoverCardContentProps, |
|
|
|
HoverCardRootEmits, |
|
|
|
@ -12,8 +13,8 @@ import { useForwardPropsEmits } from 'radix-vue'; |
|
|
|
import { HoverCard, HoverCardContent, HoverCardTrigger } from '../../ui'; |
|
|
|
|
|
|
|
interface Props extends HoverCardRootProps { |
|
|
|
class?: any; |
|
|
|
contentClass?: any; |
|
|
|
class?: ClassType; |
|
|
|
contentClass?: ClassType; |
|
|
|
contentProps?: HoverCardContentProps; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { |
|
|
|
PopoverContentProps, |
|
|
|
PopoverRootEmits, |
|
|
|
@ -16,8 +17,8 @@ import { |
|
|
|
} from '../../ui'; |
|
|
|
|
|
|
|
interface Props extends PopoverRootProps { |
|
|
|
class?: any; |
|
|
|
contentClass?: any; |
|
|
|
class?: ClassType; |
|
|
|
contentClass?: ClassType; |
|
|
|
contentProps?: PopoverContentProps; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -1,4 +1,6 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
|
|
|
|
import { computed, ref } from 'vue'; |
|
|
|
|
|
|
|
import { cn } from '@vben-core/shared/utils'; |
|
|
|
@ -6,9 +8,9 @@ import { cn } from '@vben-core/shared/utils'; |
|
|
|
import { ScrollArea, ScrollBar } from '../../ui'; |
|
|
|
|
|
|
|
interface Props { |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
horizontal?: boolean; |
|
|
|
scrollBarClass?: any; |
|
|
|
scrollBarClass?: ClassType; |
|
|
|
shadow?: boolean; |
|
|
|
shadowBorder?: boolean; |
|
|
|
shadowBottom?: boolean; |
|
|
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
import type { TooltipContentProps } from 'radix-vue'; |
|
|
|
|
|
|
|
import type { StyleValue } from 'vue'; |
|
|
|
@ -11,7 +12,7 @@ import { |
|
|
|
} from '../../ui'; |
|
|
|
|
|
|
|
interface Props { |
|
|
|
contentClass?: any; |
|
|
|
contentClass?: ClassType; |
|
|
|
contentStyle?: StyleValue; |
|
|
|
delayDuration?: number; |
|
|
|
side?: TooltipContentProps['side']; |
|
|
|
|
|
|
|
@ -1,4 +1,6 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import type { ClassType } from '@vben-core/typings'; |
|
|
|
|
|
|
|
import { computed, ref } from 'vue'; |
|
|
|
|
|
|
|
import { cn } from '@vben-core/shared/utils'; |
|
|
|
@ -18,8 +20,8 @@ import DialogOverlay from './DialogOverlay.vue'; |
|
|
|
const props = withDefaults( |
|
|
|
defineProps< |
|
|
|
{ |
|
|
|
class?: any; |
|
|
|
closeClass?: any; |
|
|
|
class?: ClassType; |
|
|
|
closeClass?: ClassType; |
|
|
|
modal?: boolean; |
|
|
|
open?: boolean; |
|
|
|
showClose?: boolean; |
|
|
|
|
|
|
|
@ -1,3 +1,5 @@ |
|
|
|
import type { ClassType } from '@vben/types'; |
|
|
|
|
|
|
|
import type { CSSProperties } from 'vue'; |
|
|
|
|
|
|
|
export interface CaptchaData { |
|
|
|
@ -72,7 +74,7 @@ export interface PointSelectionCaptchaProps |
|
|
|
} |
|
|
|
|
|
|
|
export interface SliderCaptchaProps { |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
/** |
|
|
|
* @description 滑块的样式 |
|
|
|
* @default {} |
|
|
|
|
|
|
|
@ -87,3 +87,11 @@ |
|
|
|
.vxe-table-custom--checkbox-option:hover { |
|
|
|
background: none !important; |
|
|
|
} |
|
|
|
|
|
|
|
.vxe-toolbar { |
|
|
|
padding-top: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.vxe-tools--operate:not(:has(button)) { |
|
|
|
margin-left: 0; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import type { DeepPartial } from '@vben/types'; |
|
|
|
import type { ClassType, DeepPartial } from '@vben/types'; |
|
|
|
import type { VbenFormProps } from '@vben-core/form-ui'; |
|
|
|
import type { |
|
|
|
VxeGridListeners, |
|
|
|
@ -30,11 +30,11 @@ export interface VxeGridProps { |
|
|
|
/** |
|
|
|
* 组件class |
|
|
|
*/ |
|
|
|
class?: any; |
|
|
|
class?: ClassType; |
|
|
|
/** |
|
|
|
* vxe-grid class |
|
|
|
*/ |
|
|
|
gridClass?: any; |
|
|
|
gridClass?: ClassType; |
|
|
|
/** |
|
|
|
* vxe-grid 配置 |
|
|
|
*/ |
|
|
|
|
|
|
|
@ -137,10 +137,6 @@ const options = computed(() => { |
|
|
|
mergedOptions.proxyConfig.autoLoad = false; |
|
|
|
} |
|
|
|
|
|
|
|
if (!showToolbar.value && mergedOptions.toolbarConfig) { |
|
|
|
mergedOptions.toolbarConfig.enabled = false; |
|
|
|
} |
|
|
|
|
|
|
|
if (mergedOptions.pagerConfig) { |
|
|
|
const mobileLayouts = [ |
|
|
|
'PrevJump', |
|
|
|
|
|
|
|
@ -87,7 +87,7 @@ function changeLoading() { |
|
|
|
<Button class="mr-2" type="primary" @click="changeLoading"> |
|
|
|
显示loading |
|
|
|
</Button> |
|
|
|
<Button class="mr-2" type="primary" @click="changeStripe"> |
|
|
|
<Button type="primary" @click="changeStripe"> |
|
|
|
{{ showStripe ? '隐藏' : '显示' }}斑马纹 |
|
|
|
</Button> |
|
|
|
</template> |
|
|
|
|
|
|
|
@ -1292,6 +1292,9 @@ importers: |
|
|
|
'@vben-core/shared': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../base/shared |
|
|
|
'@vben-core/typings': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../base/typings |
|
|
|
'@vee-validate/zod': |
|
|
|
specifier: 'catalog:' |
|
|
|
version: 4.14.7(vue@3.5.12(typescript@5.6.3)) |
|
|
|
@ -1370,6 +1373,9 @@ importers: |
|
|
|
'@vben-core/shared': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../base/shared |
|
|
|
'@vben-core/typings': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../base/typings |
|
|
|
'@vueuse/core': |
|
|
|
specifier: 'catalog:' |
|
|
|
version: 11.2.0(vue@3.5.12(typescript@5.6.3)) |
|
|
|
|