Browse Source

fix: when opening the tool separately, there is no need to pass the toolbar-tools slot (#4841)

Vben 6 months ago
parent
commit
2c6edafeb2

+ 1 - 1
docs/src/components/common-ui/vben-form.md

@@ -320,7 +320,7 @@ useVbenForm 返回的第二个参数,是一个对象,包含了一些表单
 ```ts
 export interface ActionButtonOptions {
   /** 样式 */
-  class?: any;
+  class?: ClassType;
   /** 是否禁用 */
   disabled?: boolean;
   /** 是否加载中 */

+ 1 - 1
docs/src/guide/essentials/icons.md

@@ -67,7 +67,7 @@ import { SvgTestIcon } from '@vben/icons';
 </template>
 ```
 
-## Tailwind CSS 图标 <Badge text="不推荐" type="danger"/>
+## Tailwind CSS 图标
 
 ### 使用
 

+ 3 - 1
packages/@core/base/typings/src/basic.d.ts

@@ -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 };

+ 1 - 0
packages/@core/ui-kit/form-ui/package.json

@@ -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:",

+ 2 - 1
packages/@core/ui-kit/form-ui/src/types.ts

@@ -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;
   /**
    * 表单重置回调
    */

+ 1 - 0
packages/@core/ui-kit/popup-ui/package.json

@@ -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:"
   }

+ 11 - 3
packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts

@@ -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

+ 2 - 0
packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue

@@ -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',

+ 3 - 2
packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue

@@ -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({

+ 4 - 3
packages/@core/ui-kit/shadcn-ui/src/components/context-menu/context-menu.vue

@@ -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
 >();

+ 3 - 2
packages/@core/ui-kit/shadcn-ui/src/components/hover-card/hover-card.vue

@@ -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;
 }
 

+ 3 - 2
packages/@core/ui-kit/shadcn-ui/src/components/popover/popover.vue

@@ -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;
 }
 

+ 4 - 2
packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue

@@ -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;

+ 2 - 1
packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue

@@ -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'];

+ 4 - 2
packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue

@@ -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;

+ 3 - 1
packages/effects/common-ui/src/components/captcha/types.ts

@@ -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 {}

+ 8 - 0
packages/effects/plugins/src/vxe-table/theme.css

@@ -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;
+}

+ 3 - 3
packages/effects/plugins/src/vxe-table/types.ts

@@ -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 配置
    */

+ 0 - 4
packages/effects/plugins/src/vxe-table/use-vxe-grid.vue

@@ -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',

+ 1 - 1
playground/src/views/examples/vxe-table/basic.vue

@@ -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>

+ 6 - 0
pnpm-lock.yaml

@@ -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))