Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev
This commit is contained in:
commit
14b0d9b50f
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/docs",
|
"name": "@vben/docs",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vitepress build",
|
"build": "vitepress build",
|
||||||
|
@ -21,7 +21,7 @@ The rules are consistent with [Vite Env Variables and Modes](https://vitejs.dev/
|
|||||||
console.log(import.meta.env.VITE_PROT);
|
console.log(import.meta.env.VITE_PROT);
|
||||||
```
|
```
|
||||||
|
|
||||||
- Variables starting with `VITE_GLOB_*` will be added to the `_app.config.js` configuration file during packaging. :::
|
- Variables starting with `VITE_GLOB_*` will be added to the `_app.config.js` configuration file during packaging.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
@ -138,6 +138,27 @@ To add a new dynamically modifiable configuration item, simply follow the steps
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- In `packages/effects/hooks/src/use-app-config.ts`, add the corresponding configuration item, such as:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
export function useAppConfig(
|
||||||
|
env: Record<string, any>,
|
||||||
|
isProduction: boolean,
|
||||||
|
): ApplicationConfig {
|
||||||
|
// In production environment, directly use the window._VBEN_ADMIN_PRO_APP_CONF_ global variable
|
||||||
|
const config = isProduction
|
||||||
|
? window._VBEN_ADMIN_PRO_APP_CONF_
|
||||||
|
: (env as VbenAdminProAppConfigRaw);
|
||||||
|
|
||||||
|
const { VITE_GLOB_API_URL, VITE_GLOB_OTHER_API_URL } = config; // [!code ++]
|
||||||
|
|
||||||
|
return {
|
||||||
|
apiURL: VITE_GLOB_API_URL,
|
||||||
|
otherApiURL: VITE_GLOB_OTHER_API_URL, // [!code ++]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
At this point, you can use the `useAppConfig` method within the project to access the newly added configuration item.
|
At this point, you can use the `useAppConfig` method within the project to access the newly added configuration item.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
console.log(import.meta.env.VITE_PROT);
|
console.log(import.meta.env.VITE_PROT);
|
||||||
```
|
```
|
||||||
|
|
||||||
- 以 `VITE_GLOB_*` 开头的的变量,在打包的时候,会被加入 `_app.config.js`配置文件当中. :::
|
- 以 `VITE_GLOB_*` 开头的的变量,在打包的时候,会被加入 `_app.config.js`配置文件当中.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
@ -137,6 +137,27 @@ const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- 在 `packages/effects/hooks/src/use-app-config.ts` 中,新增对应的配置项,如:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
export function useAppConfig(
|
||||||
|
env: Record<string, any>,
|
||||||
|
isProduction: boolean,
|
||||||
|
): ApplicationConfig {
|
||||||
|
// 生产环境下,直接使用 window._VBEN_ADMIN_PRO_APP_CONF_ 全局变量
|
||||||
|
const config = isProduction
|
||||||
|
? window._VBEN_ADMIN_PRO_APP_CONF_
|
||||||
|
: (env as VbenAdminProAppConfigRaw);
|
||||||
|
|
||||||
|
const { VITE_GLOB_API_URL, VITE_GLOB_OTHER_API_URL } = config; // [!code ++]
|
||||||
|
|
||||||
|
return {
|
||||||
|
apiURL: VITE_GLOB_API_URL,
|
||||||
|
otherApiURL: VITE_GLOB_OTHER_API_URL, // [!code ++]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
到这里,就可以在项目内使用 `useAppConfig`方法获取到新增的配置项了。
|
到这里,就可以在项目内使用 `useAppConfig`方法获取到新增的配置项了。
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/commitlint-config",
|
"name": "@vben/commitlint-config",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/stylelint-config",
|
"name": "@vben/stylelint-config",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/node-utils",
|
"name": "@vben/node-utils",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/tailwind-config",
|
"name": "@vben/tailwind-config",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/tsconfig",
|
"name": "@vben/tsconfig",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vben-admin-monorepo",
|
"name": "vben-admin-monorepo",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"monorepo",
|
"monorepo",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/design",
|
"name": "@vben-core/design",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/icons",
|
"name": "@vben-core/icons",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/shared",
|
"name": "@vben-core/shared",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/typings",
|
"name": "@vben-core/typings",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/composables",
|
"name": "@vben-core/composables",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/preferences",
|
"name": "@vben-core/preferences",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/form-ui",
|
"name": "@vben-core/form-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/layout-ui",
|
"name": "@vben-core/layout-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/menu-ui",
|
"name": "@vben-core/menu-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -94,8 +94,9 @@ export function useVbenModal<TParentModalProps extends ModalProps = ModalProps>(
|
|||||||
injectData.options?.onOpenChange?.(isOpen);
|
injectData.options?.onOpenChange?.(isOpen);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onClosed = mergedOptions.onClosed;
|
||||||
mergedOptions.onClosed = () => {
|
mergedOptions.onClosed = () => {
|
||||||
options.onClosed?.();
|
onClosed?.();
|
||||||
if (mergedOptions.destroyOnClose) {
|
if (mergedOptions.destroyOnClose) {
|
||||||
injectData.reCreateModal?.();
|
injectData.reCreateModal?.();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/shadcn-ui",
|
"name": "@vben-core/shadcn-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"#main": "./dist/index.mjs",
|
"#main": "./dist/index.mjs",
|
||||||
"#module": "./dist/index.mjs",
|
"#module": "./dist/index.mjs",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
|
@ -29,14 +29,25 @@ export type ValueType = boolean | number | string;
|
|||||||
|
|
||||||
export interface VbenButtonGroupProps
|
export interface VbenButtonGroupProps
|
||||||
extends Pick<VbenButtonProps, 'disabled'> {
|
extends Pick<VbenButtonProps, 'disabled'> {
|
||||||
|
/** 单选模式下允许清除选中 */
|
||||||
|
allowClear?: boolean;
|
||||||
|
/** 值改变前的回调 */
|
||||||
beforeChange?: (
|
beforeChange?: (
|
||||||
value: ValueType,
|
value: ValueType,
|
||||||
isChecked: boolean,
|
isChecked: boolean,
|
||||||
) => boolean | PromiseLike<boolean | undefined> | undefined;
|
) => boolean | PromiseLike<boolean | undefined> | undefined;
|
||||||
|
/** 按钮样式 */
|
||||||
btnClass?: any;
|
btnClass?: any;
|
||||||
|
/** 按钮间隔距离 */
|
||||||
gap?: number;
|
gap?: number;
|
||||||
|
/** 多选模式下限制最多选择的数量。0表示不限制 */
|
||||||
|
maxCount?: number;
|
||||||
|
/** 是否允许多选 */
|
||||||
multiple?: boolean;
|
multiple?: boolean;
|
||||||
|
/** 选项 */
|
||||||
options?: { [key: string]: any; label: CustomRenderType; value: ValueType }[];
|
options?: { [key: string]: any; label: CustomRenderType; value: ValueType }[];
|
||||||
|
/** 显示图标 */
|
||||||
showIcon?: boolean;
|
showIcon?: boolean;
|
||||||
|
/** 尺寸 */
|
||||||
size?: 'large' | 'middle' | 'small';
|
size?: 'large' | 'middle' | 'small';
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ const props = withDefaults(defineProps<VbenButtonGroupProps>(), {
|
|||||||
multiple: false,
|
multiple: false,
|
||||||
showIcon: true,
|
showIcon: true,
|
||||||
size: 'middle',
|
size: 'middle',
|
||||||
|
allowClear: false,
|
||||||
|
maxCount: 0,
|
||||||
});
|
});
|
||||||
const emit = defineEmits(['btnClick']);
|
const emit = defineEmits(['btnClick']);
|
||||||
const btnDefaultProps = computed(() => {
|
const btnDefaultProps = computed(() => {
|
||||||
@ -82,12 +84,22 @@ async function onBtnClick(value: ValueType) {
|
|||||||
if (innerValue.value.includes(value)) {
|
if (innerValue.value.includes(value)) {
|
||||||
innerValue.value = innerValue.value.filter((item) => item !== value);
|
innerValue.value = innerValue.value.filter((item) => item !== value);
|
||||||
} else {
|
} else {
|
||||||
|
if (props.maxCount > 0 && innerValue.value.length >= props.maxCount) {
|
||||||
|
innerValue.value = innerValue.value.slice(0, props.maxCount - 1);
|
||||||
|
}
|
||||||
innerValue.value.push(value);
|
innerValue.value.push(value);
|
||||||
}
|
}
|
||||||
modelValue.value = innerValue.value;
|
modelValue.value = innerValue.value;
|
||||||
} else {
|
} else {
|
||||||
innerValue.value = [value];
|
if (props.allowClear && innerValue.value.includes(value)) {
|
||||||
modelValue.value = value;
|
innerValue.value = [];
|
||||||
|
modelValue.value = undefined;
|
||||||
|
emit('btnClick', undefined);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
innerValue.value = [value];
|
||||||
|
modelValue.value = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
emit('btnClick', value);
|
emit('btnClick', value);
|
||||||
}
|
}
|
||||||
@ -112,12 +124,18 @@ async function onBtnClick(value: ValueType) {
|
|||||||
@click="onBtnClick(btn.value)"
|
@click="onBtnClick(btn.value)"
|
||||||
>
|
>
|
||||||
<div class="icon-wrapper" v-if="props.showIcon">
|
<div class="icon-wrapper" v-if="props.showIcon">
|
||||||
<LoaderCircle
|
<slot
|
||||||
class="animate-spin"
|
name="icon"
|
||||||
v-if="loadingValues.includes(btn.value)"
|
:loading="loadingValues.includes(btn.value)"
|
||||||
/>
|
:checked="innerValue.includes(btn.value)"
|
||||||
<CircleCheckBig v-else-if="innerValue.includes(btn.value)" />
|
>
|
||||||
<Circle v-else />
|
<LoaderCircle
|
||||||
|
class="animate-spin"
|
||||||
|
v-if="loadingValues.includes(btn.value)"
|
||||||
|
/>
|
||||||
|
<CircleCheckBig v-else-if="innerValue.includes(btn.value)" />
|
||||||
|
<Circle v-else />
|
||||||
|
</slot>
|
||||||
</div>
|
</div>
|
||||||
<slot name="option" :label="btn.label" :value="btn.value" :data="btn">
|
<slot name="option" :label="btn.label" :value="btn.value" :data="btn">
|
||||||
<VbenRenderContent :content="btn.label" />
|
<VbenRenderContent :content="btn.label" />
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/tabs-ui",
|
"name": "@vben-core/tabs-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/constants",
|
"name": "@vben/constants",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/access",
|
"name": "@vben/access",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/common-ui",
|
"name": "@vben/common-ui",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/hooks",
|
"name": "@vben/hooks",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/layouts",
|
"name": "@vben/layouts",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -46,7 +46,11 @@ interface Props {
|
|||||||
/**
|
/**
|
||||||
* 菜单数组
|
* 菜单数组
|
||||||
*/
|
*/
|
||||||
menus?: Array<{ handler: AnyFunction; icon?: Component; text: string }>;
|
menus?: Array<{
|
||||||
|
handler: AnyFunction;
|
||||||
|
icon?: Component | Function | string;
|
||||||
|
text: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标签文本
|
* 标签文本
|
||||||
|
@ -280,6 +280,15 @@ const delegatedFormSlots = computed(() => {
|
|||||||
return resultSlots.map((key) => key.replace(FORM_SLOT_PREFIX, ''));
|
return resultSlots.map((key) => key.replace(FORM_SLOT_PREFIX, ''));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const showDefaultEmpty = computed(() => {
|
||||||
|
// 检查是否有原生的 VXE Table 空状态配置
|
||||||
|
const hasEmptyText = options.value.emptyText !== undefined;
|
||||||
|
const hasEmptyRender = options.value.emptyRender !== undefined;
|
||||||
|
|
||||||
|
// 如果有原生配置,就不显示默认的空状态
|
||||||
|
return !hasEmptyText && !hasEmptyRender;
|
||||||
|
});
|
||||||
|
|
||||||
async function init() {
|
async function init() {
|
||||||
await nextTick();
|
await nextTick();
|
||||||
const globalGridConfig = VxeUI?.getConfig()?.grid ?? {};
|
const globalGridConfig = VxeUI?.getConfig()?.grid ?? {};
|
||||||
@ -464,7 +473,7 @@ onUnmounted(() => {
|
|||||||
</slot>
|
</slot>
|
||||||
</template>
|
</template>
|
||||||
<!-- 统一控状态 -->
|
<!-- 统一控状态 -->
|
||||||
<template #empty>
|
<template v-if="showDefaultEmpty" #empty>
|
||||||
<slot name="empty">
|
<slot name="empty">
|
||||||
<EmptyIcon class="mx-auto" />
|
<EmptyIcon class="mx-auto" />
|
||||||
<div class="mt-2">{{ $t('common.noData') }}</div>
|
<div class="mt-2">{{ $t('common.noData') }}</div>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/request",
|
"name": "@vben/request",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/icons",
|
"name": "@vben/icons",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/locales",
|
"name": "@vben/locales",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/preferences",
|
"name": "@vben/preferences",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/stores",
|
"name": "@vben/stores",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/styles",
|
"name": "@vben/styles",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/types",
|
"name": "@vben/types",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/utils",
|
"name": "@vben/utils",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
"homepage": "https://github.com/vbenjs/vue-vben-admin",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/playground",
|
"name": "@vben/playground",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"homepage": "https://vben.pro",
|
"homepage": "https://vben.pro",
|
||||||
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -105,11 +105,16 @@ function setupAccessGuard(router: Router) {
|
|||||||
accessStore.setAccessMenus(accessibleMenus);
|
accessStore.setAccessMenus(accessibleMenus);
|
||||||
accessStore.setAccessRoutes(accessibleRoutes);
|
accessStore.setAccessRoutes(accessibleRoutes);
|
||||||
accessStore.setIsAccessChecked(true);
|
accessStore.setIsAccessChecked(true);
|
||||||
const redirectPath = (from.query.redirect ??
|
let redirectPath: string;
|
||||||
(to.path === preferences.app.defaultHomePath
|
if (from.query.redirect) {
|
||||||
? userInfo.homePath || preferences.app.defaultHomePath
|
redirectPath = from.query.redirect as string;
|
||||||
: to.fullPath)) as string;
|
} else if (to.path === preferences.app.defaultHomePath) {
|
||||||
|
redirectPath = preferences.app.defaultHomePath;
|
||||||
|
} else if (userInfo.homePath && to.path === userInfo.homePath) {
|
||||||
|
redirectPath = userInfo.homePath;
|
||||||
|
} else {
|
||||||
|
redirectPath = to.fullPath;
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...router.resolve(decodeURIComponent(redirectPath)),
|
...router.resolve(decodeURIComponent(redirectPath)),
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -9,6 +9,7 @@ import {
|
|||||||
VbenButtonGroup,
|
VbenButtonGroup,
|
||||||
VbenCheckButtonGroup,
|
VbenCheckButtonGroup,
|
||||||
} from '@vben/common-ui';
|
} from '@vben/common-ui';
|
||||||
|
import { LoaderCircle, Square, SquareCheckBig } from '@vben/icons';
|
||||||
|
|
||||||
import { Button, Card, message } from 'ant-design-vue';
|
import { Button, Card, message } from 'ant-design-vue';
|
||||||
|
|
||||||
@ -51,6 +52,7 @@ const compProps = reactive({
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
showIcon: true,
|
showIcon: true,
|
||||||
size: 'middle',
|
size: 'middle',
|
||||||
|
allowClear: false,
|
||||||
} as Recordable<any>);
|
} as Recordable<any>);
|
||||||
|
|
||||||
const [Form] = useVbenForm({
|
const [Form] = useVbenForm({
|
||||||
@ -63,6 +65,9 @@ const [Form] = useVbenForm({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
commonConfig: {
|
||||||
|
labelWidth: 150,
|
||||||
|
},
|
||||||
schema: [
|
schema: [
|
||||||
{
|
{
|
||||||
component: 'RadioGroup',
|
component: 'RadioGroup',
|
||||||
@ -109,6 +114,20 @@ const [Form] = useVbenForm({
|
|||||||
fieldName: 'beforeChange',
|
fieldName: 'beforeChange',
|
||||||
label: '前置回调',
|
label: '前置回调',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
component: 'Switch',
|
||||||
|
defaultValue: false,
|
||||||
|
fieldName: 'allowClear',
|
||||||
|
label: '允许清除',
|
||||||
|
help: '单选时是否允许取消选中(值为undefined)',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'InputNumber',
|
||||||
|
defaultValue: 0,
|
||||||
|
fieldName: 'maxCount',
|
||||||
|
label: '最大选中数量',
|
||||||
|
help: '多选时有效,0表示不限制',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
showDefaultActions: false,
|
showDefaultActions: false,
|
||||||
submitOnChange: true,
|
submitOnChange: true,
|
||||||
@ -186,6 +205,21 @@ function onBtnClick(value: any) {
|
|||||||
v-bind="compProps"
|
v-bind="compProps"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="mt-4">自定义图标{{ checkValue }}</p>
|
||||||
|
<div class="mt-2 flex flex-col gap-2">
|
||||||
|
<VbenCheckButtonGroup
|
||||||
|
v-model="checkValue"
|
||||||
|
multiple
|
||||||
|
:options="options"
|
||||||
|
v-bind="compProps"
|
||||||
|
>
|
||||||
|
<template #icon="{ loading, checked }">
|
||||||
|
<LoaderCircle class="animate-spin" v-if="loading" />
|
||||||
|
<SquareCheckBig v-else-if="checked" />
|
||||||
|
<Square v-else />
|
||||||
|
</template>
|
||||||
|
</VbenCheckButtonGroup>
|
||||||
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card title="设置" class="mt-4">
|
<Card title="设置" class="mt-4">
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/turbo-run",
|
"name": "@vben/turbo-run",
|
||||||
"version": "5.5.6",
|
"version": "5.5.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
Loading…
Reference in New Issue
Block a user