mirror of https://github.com/certd/certd
🔱: [client] sync upgrade with 6 commits [trident-sync]
chore: chore: help menu chore: help menu fix: 修复 antdv 弹出菜单边框过大的问题 fix: 修复 antdv懒加载后dropdown按钮无法点击的bugpull/91/head
parent
140606744b
commit
2b4b15f558
|
@ -62,5 +62,6 @@ export default defineComponent({
|
||||||
.fs-highlight {
|
.fs-highlight {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -15,15 +15,15 @@ const userStore = useUserStore();
|
||||||
const accessStore = useAccessStore();
|
const accessStore = useAccessStore();
|
||||||
|
|
||||||
const menus = computed(() => [
|
const menus = computed(() => [
|
||||||
{
|
// {
|
||||||
handler: () => {
|
// handler: () => {
|
||||||
openWindow(VBEN_DOC_URL, {
|
// openWindow(VBEN_DOC_URL, {
|
||||||
target: "_blank"
|
// target: "_blank"
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
icon: BookOpenText,
|
// icon: BookOpenText,
|
||||||
text: $t("ui.widgets.document")
|
// text: $t("ui.widgets.document")
|
||||||
}
|
// }
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const avatar = computed(() => {
|
const avatar = computed(() => {
|
||||||
|
@ -38,7 +38,7 @@ async function handleLogout() {
|
||||||
<template>
|
<template>
|
||||||
<BasicLayout @clear-preferences-and-logout="handleLogout">
|
<BasicLayout @clear-preferences-and-logout="handleLogout">
|
||||||
<template #user-dropdown>
|
<template #user-dropdown>
|
||||||
<UserDropdown :avatar :menus :text="userStore.userInfo?.nickName" description="ann.vben@gmail.com" tag-text="Pro" @logout="handleLogout" />
|
<UserDropdown :avatar :menus :text="userStore.userInfo?.nickName" description="development@handsfree.work" tag-text="Pro" @logout="handleLogout" />
|
||||||
</template>
|
</template>
|
||||||
<template #lock-screen>
|
<template #lock-screen>
|
||||||
<LockScreen :avatar @to-login="handleLogout" />
|
<LockScreen :avatar @to-login="handleLogout" />
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
import { defineAsyncComponent } from "vue";
|
import { defineAsyncComponent } from "vue";
|
||||||
|
import Input from "ant-design-vue/es/input/Input";
|
||||||
|
import Button from "ant-design-vue/es/button/button";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
install(app: any) {
|
install(app: any) {
|
||||||
app.component(
|
app.component("AInput", Input);
|
||||||
"AInput",
|
app.component("AButton", Button);
|
||||||
defineAsyncComponent(() => import("ant-design-vue/es/input/Input"))
|
|
||||||
);
|
|
||||||
app.component(
|
app.component(
|
||||||
"AInputPassword",
|
"AInputPassword",
|
||||||
defineAsyncComponent(() => import("ant-design-vue/es/input/Password"))
|
defineAsyncComponent(() => import("ant-design-vue/es/input/Password"))
|
||||||
);
|
);
|
||||||
app.component(
|
|
||||||
"AButton",
|
|
||||||
defineAsyncComponent(() => import("ant-design-vue/es/button/button"))
|
|
||||||
);
|
|
||||||
app.component(
|
app.component(
|
||||||
"AButtonGroup",
|
"AButtonGroup",
|
||||||
defineAsyncComponent(() => import("ant-design-vue/es/button/button-group"))
|
defineAsyncComponent(() => import("ant-design-vue/es/button/button-group"))
|
||||||
|
@ -158,5 +154,18 @@ export default {
|
||||||
"AToar",
|
"AToar",
|
||||||
defineAsyncComponent(() => import("ant-design-vue/es/tree-select"))
|
defineAsyncComponent(() => import("ant-design-vue/es/tree-select"))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
app.component(
|
||||||
|
"AMenu",
|
||||||
|
defineAsyncComponent(() => import("ant-design-vue/es/menu/index"))
|
||||||
|
);
|
||||||
|
app.component(
|
||||||
|
"ASubMenu",
|
||||||
|
defineAsyncComponent(() => import("ant-design-vue/es/menu/src/SubMenu"))
|
||||||
|
);
|
||||||
|
app.component(
|
||||||
|
"AMenuItem",
|
||||||
|
defineAsyncComponent(() => import("ant-design-vue/es/menu/src/MenuItem"))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,8 @@ export const frameworkResource = [
|
||||||
auth: true
|
auth: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
...dynamicRoutes
|
// @ts-ignore
|
||||||
|
...dynamicRoutes.sort((a, b) => (a.meta?.order || 0) - (b.meta?.order || 0))
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
import { IFrameView } from "/@/vben/layouts";
|
||||||
|
|
||||||
|
export const aboutResource = [
|
||||||
|
{
|
||||||
|
title: "关于",
|
||||||
|
name: "about",
|
||||||
|
path: "/about",
|
||||||
|
redirect: "/about/doc",
|
||||||
|
meta: {
|
||||||
|
icon: "lucide:copyright",
|
||||||
|
order: 9999
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: "文档",
|
||||||
|
name: "document",
|
||||||
|
path: "/about/doc",
|
||||||
|
component: IFrameView,
|
||||||
|
meta: {
|
||||||
|
icon: "lucide:book-open-text",
|
||||||
|
link: "http://fast-crud.docmirror.cn/",
|
||||||
|
title: "文档"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Github",
|
||||||
|
path: "/about/github",
|
||||||
|
component: IFrameView,
|
||||||
|
meta: {
|
||||||
|
icon: "mdi:github",
|
||||||
|
link: "https://github.com/fast-crud/fast-crud",
|
||||||
|
title: "Github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Gitee",
|
||||||
|
path: "/about/gitee",
|
||||||
|
component: IFrameView,
|
||||||
|
meta: {
|
||||||
|
icon: "ion:logo-octocat",
|
||||||
|
link: "https://gitee.com/fast-crud/fast-crud",
|
||||||
|
title: "Gite"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "其他Demo",
|
||||||
|
name: "demo",
|
||||||
|
path: "/about/demo",
|
||||||
|
meta: {
|
||||||
|
icon: "ion:git-branch-outline"
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: "Element版",
|
||||||
|
path: "/about/demo/element",
|
||||||
|
component: IFrameView,
|
||||||
|
meta: {
|
||||||
|
link: "http://fast-crud.docmirror.cn/element/",
|
||||||
|
title: "Element版"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Naive版",
|
||||||
|
path: "/about/demo/naive",
|
||||||
|
component: IFrameView,
|
||||||
|
meta: {
|
||||||
|
link: "http://fast-crud.docmirror.cn/naive/",
|
||||||
|
title: "Naive版"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "VbenAdmin",
|
||||||
|
path: "/about/demo/vben",
|
||||||
|
meta: {
|
||||||
|
link: "http://fast-crud.docmirror.cn/vben/",
|
||||||
|
title: "VbenAdmin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export default aboutResource;
|
|
@ -31,4 +31,4 @@ export const uiResources = [
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
export default uiResources;
|
// export default uiResources;
|
||||||
|
|
|
@ -382,6 +382,9 @@ function removeMenuItem(item: MenuItemRegistered) {
|
||||||
.is-menu-align {
|
.is-menu-align {
|
||||||
justify-content: var(--menu-align, start);
|
justify-content: var(--menu-align, start);
|
||||||
}
|
}
|
||||||
|
.vben-menu__popup-container {
|
||||||
|
padding: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
.vben-menu__popup-container,
|
.vben-menu__popup-container,
|
||||||
.vben-menu {
|
.vben-menu {
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { VbenButtonProps } from './button';
|
import type { VbenButtonProps } from "./button";
|
||||||
|
|
||||||
import { computed } from 'vue';
|
import { computed } from "vue";
|
||||||
|
|
||||||
import { LoaderCircle } from '/@/vben/icons';
|
import { LoaderCircle } from "/@/vben/icons";
|
||||||
import { cn } from '/@/vben/shared/utils';
|
import { cn } from "/@/vben/shared/utils";
|
||||||
|
|
||||||
import { Primitive } from 'radix-vue';
|
import { Primitive } from "radix-vue";
|
||||||
|
|
||||||
import { buttonVariants } from '../../ui';
|
import { buttonVariants } from "../../ui";
|
||||||
|
|
||||||
interface Props extends VbenButtonProps {}
|
interface Props extends VbenButtonProps {}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
as: 'button',
|
as: "button",
|
||||||
class: '',
|
class: "",
|
||||||
disabled: false,
|
disabled: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
size: 'default',
|
size: "default",
|
||||||
variant: 'default',
|
variant: "default"
|
||||||
});
|
});
|
||||||
|
|
||||||
const isDisabled = computed(() => {
|
const isDisabled = computed(() => {
|
||||||
|
@ -27,16 +27,8 @@ const isDisabled = computed(() => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Primitive
|
<Primitive :as="as" :as-child="asChild" :class="cn(buttonVariants({ variant, size }), props.class)" :disabled="isDisabled">
|
||||||
:as="as"
|
<LoaderCircle v-if="loading" class="text-md mr-2 size-4 flex-shrink-0 animate-spin" />
|
||||||
:as-child="asChild"
|
|
||||||
:class="cn(buttonVariants({ variant, size }), props.class)"
|
|
||||||
:disabled="isDisabled"
|
|
||||||
>
|
|
||||||
<LoaderCircle
|
|
||||||
v-if="loading"
|
|
||||||
class="text-md mr-2 size-4 flex-shrink-0 animate-spin"
|
|
||||||
/>
|
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,23 +1,20 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { PopoverContentEmits, PopoverContentProps } from 'radix-vue';
|
import type { PopoverContentEmits, PopoverContentProps } from "radix-vue";
|
||||||
|
|
||||||
import { computed } from 'vue';
|
import { computed } from "vue";
|
||||||
|
|
||||||
import { cn } from '/@/vben/shared/utils';
|
import { cn } from "/@/vben/shared/utils";
|
||||||
|
|
||||||
import { PopoverContent, PopoverPortal, useForwardPropsEmits } from 'radix-vue';
|
import { PopoverContent, PopoverPortal, useForwardPropsEmits } from "radix-vue";
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
inheritAttrs: false,
|
inheritAttrs: false
|
||||||
});
|
});
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(defineProps<PopoverContentProps & { class?: any }>(), {
|
||||||
defineProps<PopoverContentProps & { class?: any }>(),
|
align: "center",
|
||||||
{
|
sideOffset: 4
|
||||||
align: 'center',
|
});
|
||||||
sideOffset: 4,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
const emits = defineEmits<PopoverContentEmits>();
|
const emits = defineEmits<PopoverContentEmits>();
|
||||||
|
|
||||||
const delegatedProps = computed(() => {
|
const delegatedProps = computed(() => {
|
||||||
|
@ -36,7 +33,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
||||||
:class="
|
:class="
|
||||||
cn(
|
cn(
|
||||||
'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 border-border w-72 rounded-md border p-4 shadow-md outline-none',
|
'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 border-border w-72 rounded-md border p-4 shadow-md outline-none',
|
||||||
props.class,
|
props.class
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
|
@ -22,7 +22,6 @@ export default defineComponent({
|
||||||
setup() {
|
setup() {
|
||||||
const { crudBinding, crudRef, crudExpose, context, crudOptions, resetCrudOptions, appendBindingOptions } = useFs({ createCrudOptions, context: { text: 111 } });
|
const { crudBinding, crudRef, crudExpose, context, crudOptions, resetCrudOptions, appendBindingOptions } = useFs({ createCrudOptions, context: { text: 111 } });
|
||||||
|
|
||||||
debugger;
|
|
||||||
const { merge } = useMerge();
|
const { merge } = useMerge();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
//合并新的crudOptions
|
//合并新的crudOptions
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
export default {
|
export default {
|
||||||
crud: ` columns: {
|
crud: ` columns: {
|
||||||
date:{
|
name:{
|
||||||
title: '姓名', //字段名称
|
title: '姓名', //字段名称
|
||||||
type: 'text', //字段类型,添加、修改、查询将自动生成相应表单组件
|
type: 'text', //字段类型,添加、修改、查询将自动生成相应表单组件
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue