mirror of
https://gitee.com/dapppp/ruoyi-plus-vben5.git
synced 2025-12-30 01:32:26 +00:00
Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -52,3 +52,4 @@ vite.config.ts.*
|
|||||||
# 排除自动生成的类型文件
|
# 排除自动生成的类型文件
|
||||||
apps/web-antd/types/components.d.ts
|
apps/web-antd/types/components.d.ts
|
||||||
.history
|
.history
|
||||||
|
.cursor
|
||||||
|
|||||||
@@ -140,8 +140,12 @@ pnpm build
|
|||||||
|
|
||||||
## 貢献者
|
## 貢献者
|
||||||
|
|
||||||
|
<a href="https://openomy.app/github/vbenjs/vue-vben-admin" target="_blank" style="display: block; width: 100%;" align="center">
|
||||||
|
<img src="https://openomy.app/svg?repo=vbenjs/vue-vben-admin&chart=bubble&latestMonth=3" target="_blank" alt="Contribution Leaderboard" style="display: block; width: 100%;" />
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="https://github.com/vbenjs/vue-vben-admin/graphs/contributors">
|
<a href="https://github.com/vbenjs/vue-vben-admin/graphs/contributors">
|
||||||
<img alt="Contributors" src="https://opencollective.com/vbenjs/contributors.svg?button=false" />
|
<img alt="Contributors" src="https://contrib.rocks/image?repo=vbenjs/vue-vben-admin" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
|
|||||||
@@ -140,8 +140,12 @@ If you think this project is helpful to you, you can help the author buy a cup o
|
|||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
|
||||||
|
<a href="https://openomy.app/github/vbenjs/vue-vben-admin" target="_blank" style="display: block; width: 100%;" align="center">
|
||||||
|
<img src="https://openomy.app/svg?repo=vbenjs/vue-vben-admin&chart=bubble&latestMonth=3" target="_blank" alt="Contribution Leaderboard" style="display: block; width: 100%;" />
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="https://github.com/vbenjs/vue-vben-admin/graphs/contributors">
|
<a href="https://github.com/vbenjs/vue-vben-admin/graphs/contributors">
|
||||||
<img alt="Contributors" src="https://opencollective.com/vbenjs/contributors.svg?button=false" />
|
<img alt="Contributors" src="https://contrib.rocks/image?repo=vbenjs/vue-vben-admin" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
|
v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
|
||||||
|
|
||||||
目前对应后端版本: **分布式5.4.0/微服务2.4.0**
|
目前对应后端版本: **分布式5.5.0/微服务2.5.0**
|
||||||
|
|
||||||
V1.1.0版本已支持离线图标
|
V1.1.0版本已支持离线图标
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ V1.2.0版本对接warmflow工作流
|
|||||||
|
|
||||||
| 组件/框架 | 版本 |
|
| 组件/框架 | 版本 |
|
||||||
| :------------- | :----- |
|
| :------------- | :----- |
|
||||||
| vben | 5.5.6 |
|
| vben | 5.5.9 |
|
||||||
| ant-design-vue | 4.2.6 |
|
| ant-design-vue | 4.2.6 |
|
||||||
| vue | 3.5.13 |
|
| vue | 3.5.13 |
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { eventHandler } from 'h3';
|
||||||
import { verifyAccessToken } from '~/utils/jwt-utils';
|
import { verifyAccessToken } from '~/utils/jwt-utils';
|
||||||
import {
|
import {
|
||||||
sleep,
|
sleep,
|
||||||
@@ -13,6 +14,3 @@ export default eventHandler(async (event) => {
|
|||||||
await sleep(600);
|
await sleep(600);
|
||||||
return useResponseSuccess(null);
|
return useResponseSuccess(null);
|
||||||
});
|
});
|
||||||
function eventHandler(_: (event: any) => Promise<any>) {
|
|
||||||
throw new Error('Function not implemented.');
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,14 +1,3 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"extends": "./.nitro/types/tsconfig.json"
|
||||||
"extends": "@vben/tsconfig/node.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"composite": true,
|
|
||||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
||||||
"baseUrl": ".",
|
|
||||||
"paths": {
|
|
||||||
"~/utils/*": ["utils/*"]
|
|
||||||
},
|
|
||||||
"noEmit": false
|
|
||||||
},
|
|
||||||
"include": ["**/*.ts", "**/*.*.ts"]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/docs",
|
"name": "@vben/docs",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vitepress build",
|
"build": "vitepress build",
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ useVbenForm 返回的第二个参数,是一个对象,包含了一些表单
|
|||||||
|
|
||||||
| 属性名 | 描述 | 类型 | 默认值 |
|
| 属性名 | 描述 | 类型 | 默认值 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| layout | 表单项布局 | `'horizontal' \| 'vertical'` | `horizontal` |
|
| layout | 表单项布局 | `'horizontal' \| 'vertical'\| 'inline'` | `horizontal` |
|
||||||
| showCollapseButton | 是否显示折叠按钮 | `boolean` | `false` |
|
| showCollapseButton | 是否显示折叠按钮 | `boolean` | `false` |
|
||||||
| wrapperClass | 表单的布局,基于tailwindcss | `any` | - |
|
| wrapperClass | 表单的布局,基于tailwindcss | `any` | - |
|
||||||
| actionWrapperClass | 表单操作区域class | `any` | - |
|
| actionWrapperClass | 表单操作区域class | `any` | - |
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/commitlint-config",
|
"name": "@vben/commitlint-config",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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/vite-config",
|
"name": "@vben/vite-config",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"monorepo",
|
"monorepo",
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
"node": ">=20.10.0",
|
"node": ">=20.10.0",
|
||||||
"pnpm": ">=9.12.0"
|
"pnpm": ">=9.12.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.12.4",
|
"packageManager": "pnpm@10.14.0",
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"peerDependencyRules": {
|
"peerDependencyRules": {
|
||||||
"allowedVersions": {
|
"allowedVersions": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/design",
|
"name": "@vben-core/design",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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": {
|
||||||
|
|||||||
@@ -82,11 +82,11 @@ const actionWrapperClass = computed(() => {
|
|||||||
|
|
||||||
const cls = [
|
const cls = [
|
||||||
'flex',
|
'flex',
|
||||||
'w-full',
|
|
||||||
'items-center',
|
'items-center',
|
||||||
'gap-3',
|
'gap-3',
|
||||||
props.compact ? 'pb-2' : 'pb-4',
|
props.compact ? 'pb-2' : 'pb-4',
|
||||||
props.layout === 'vertical' ? 'self-end' : 'self-center',
|
props.layout === 'vertical' ? 'self-end' : 'self-center',
|
||||||
|
props.layout === 'inline' ? '' : 'w-full',
|
||||||
props.actionWrapperClass,
|
props.actionWrapperClass,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -42,11 +42,13 @@ const emits = defineEmits<{
|
|||||||
}>();
|
}>();
|
||||||
|
|
||||||
const wrapperClass = computed(() => {
|
const wrapperClass = computed(() => {
|
||||||
const cls = ['flex flex-col'];
|
const cls = ['flex'];
|
||||||
if (props.layout === 'vertical') {
|
if (props.layout === 'vertical') {
|
||||||
cls.push(props.compact ? 'gap-x-2' : 'gap-x-4');
|
cls.push(props.compact ? 'gap-x-2' : 'gap-x-4', 'flex-col grid');
|
||||||
|
} else if (props.layout === 'inline') {
|
||||||
|
cls.push('flex-wrap gap-2');
|
||||||
} else {
|
} else {
|
||||||
cls.push('gap-2');
|
cls.push('gap-2 flex-col grid');
|
||||||
}
|
}
|
||||||
return cn(...cls, props.wrapperClass);
|
return cn(...cls, props.wrapperClass);
|
||||||
});
|
});
|
||||||
@@ -170,7 +172,7 @@ const computedSchema = computed(
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<component :is="formComponent" v-bind="formComponentProps">
|
<component :is="formComponent" v-bind="formComponentProps">
|
||||||
<div ref="wrapperRef" :class="wrapperClass" class="grid">
|
<div ref="wrapperRef" :class="wrapperClass">
|
||||||
<template v-for="cSchema in computedSchema" :key="cSchema.fieldName">
|
<template v-for="cSchema in computedSchema" :key="cSchema.fieldName">
|
||||||
<!-- <div v-if="$slots[cSchema.fieldName]" :class="cSchema.formItemClass">
|
<!-- <div v-if="$slots[cSchema.fieldName]" :class="cSchema.formItemClass">
|
||||||
<slot :definition="cSchema" :name="cSchema.fieldName"> </slot>
|
<slot :definition="cSchema" :name="cSchema.fieldName"> </slot>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import type { ClassType, MaybeComputedRef } from '@vben-core/typings';
|
|||||||
|
|
||||||
import type { FormApi } from './form-api';
|
import type { FormApi } from './form-api';
|
||||||
|
|
||||||
export type FormLayout = 'horizontal' | 'vertical';
|
export type FormLayout = 'horizontal' | 'inline' | 'vertical';
|
||||||
|
|
||||||
export type BaseFormComponentType =
|
export type BaseFormComponentType =
|
||||||
| 'DefaultButton'
|
| 'DefaultButton'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/layout-ui",
|
"name": "@vben-core/layout-ui",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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/shadcn-ui",
|
"name": "@vben-core/shadcn-ui",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"#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",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben-core/tabs-ui",
|
"name": "@vben-core/tabs-ui",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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/plugins",
|
"name": "@vben/plugins",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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/request",
|
"name": "@vben/request",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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.8",
|
"version": "5.5.9",
|
||||||
"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": {
|
||||||
|
|||||||
@@ -86,6 +86,62 @@ const [QueryForm] = useVbenForm({
|
|||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const [InlineForm] = useVbenForm({
|
||||||
|
layout: 'inline',
|
||||||
|
schema: [
|
||||||
|
{
|
||||||
|
// 组件需要在 #/adapter.ts内注册,并加上类型
|
||||||
|
component: 'Input',
|
||||||
|
// 对应组件的参数
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请输入用户名',
|
||||||
|
},
|
||||||
|
// 字段名
|
||||||
|
fieldName: 'username',
|
||||||
|
// 界面显示的label
|
||||||
|
label: '字符串',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'InputPassword',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请输入密码',
|
||||||
|
},
|
||||||
|
fieldName: 'password',
|
||||||
|
label: '密码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'InputNumber',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
},
|
||||||
|
fieldName: 'number',
|
||||||
|
label: '数字(带后缀)',
|
||||||
|
suffix: () => '¥',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'Select',
|
||||||
|
componentProps: {
|
||||||
|
allowClear: true,
|
||||||
|
filterOption: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: '选项1',
|
||||||
|
value: '1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '选项2',
|
||||||
|
value: '2',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
placeholder: '请选择',
|
||||||
|
showSearch: true,
|
||||||
|
},
|
||||||
|
fieldName: 'options',
|
||||||
|
label: '下拉选',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const [QueryForm1] = useVbenForm({
|
const [QueryForm1] = useVbenForm({
|
||||||
// 默认展开
|
// 默认展开
|
||||||
collapsed: true,
|
collapsed: true,
|
||||||
@@ -205,6 +261,10 @@ function onSubmit(values: Record<string, any>) {
|
|||||||
<QueryForm />
|
<QueryForm />
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
<Card class="mb-5" title="查询表单,单行表单">
|
||||||
|
<InlineForm />
|
||||||
|
</Card>
|
||||||
|
|
||||||
<Card class="mb-5" title="查询表单,默认展开,垂直布局">
|
<Card class="mb-5" title="查询表单,默认展开,垂直布局">
|
||||||
<QueryForm2 />
|
<QueryForm2 />
|
||||||
</Card>
|
</Card>
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ catalog:
|
|||||||
'@typescript-eslint/parser': ^8.35.1
|
'@typescript-eslint/parser': ^8.35.1
|
||||||
'@vee-validate/zod': ^4.15.1
|
'@vee-validate/zod': ^4.15.1
|
||||||
'@vite-pwa/vitepress': ^1.0.0
|
'@vite-pwa/vitepress': ^1.0.0
|
||||||
'@vitejs/plugin-vue': ^5.2.4
|
'@vitejs/plugin-vue': ^6.0.1
|
||||||
'@vitejs/plugin-vue-jsx': ^4.2.0
|
'@vitejs/plugin-vue-jsx': ^5.0.1
|
||||||
'@vue/reactivity': ^3.5.17
|
'@vue/reactivity': ^3.5.17
|
||||||
'@vue/shared': ^3.5.17
|
'@vue/shared': ^3.5.17
|
||||||
'@vue/test-utils': ^2.4.6
|
'@vue/test-utils': ^2.4.6
|
||||||
@@ -167,10 +167,10 @@ catalog:
|
|||||||
tippy.js: ^6.3.7
|
tippy.js: ^6.3.7
|
||||||
turbo: ^2.5.4
|
turbo: ^2.5.4
|
||||||
typescript: ^5.8.3
|
typescript: ^5.8.3
|
||||||
unbuild: ^3.5.0
|
unbuild: ^3.6.1
|
||||||
unplugin-element-plus: ^0.10.0
|
unplugin-element-plus: ^0.10.0
|
||||||
vee-validate: ^4.15.1
|
vee-validate: ^4.15.1
|
||||||
vite: ^6.3.5
|
vite: ^7.1.2
|
||||||
vite-plugin-compression: ^0.5.1
|
vite-plugin-compression: ^0.5.1
|
||||||
vite-plugin-dts: ^4.5.4
|
vite-plugin-dts: ^4.5.4
|
||||||
vite-plugin-html: ^3.2.2
|
vite-plugin-html: ^3.2.2
|
||||||
|
|||||||
@@ -3,30 +3,104 @@ import { join, normalize } from 'node:path';
|
|||||||
|
|
||||||
const rootDir = process.cwd();
|
const rootDir = process.cwd();
|
||||||
|
|
||||||
/**
|
// 控制并发数量,避免创建过多的并发任务
|
||||||
* 递归查找并删除目标目录
|
const CONCURRENCY_LIMIT = 10;
|
||||||
* @param {string} currentDir - 当前遍历的目录路径
|
|
||||||
* @param {string[]} targets - 要删除的目标列表
|
// 需要跳过的目录,避免进入这些目录进行清理
|
||||||
*/
|
const SKIP_DIRS = new Set(['.DS_Store', '.git', '.idea', '.vscode']);
|
||||||
async function cleanTargetsRecursively(currentDir, targets) {
|
|
||||||
const items = await fs.readdir(currentDir);
|
/**
|
||||||
|
* 处理单个文件/目录项
|
||||||
|
* @param {string} currentDir - 当前目录路径
|
||||||
|
* @param {string} item - 文件/目录名
|
||||||
|
* @param {string[]} targets - 要删除的目标列表
|
||||||
|
* @param {number} _depth - 当前递归深度
|
||||||
|
* @returns {Promise<boolean>} - 是否需要进一步递归处理
|
||||||
|
*/
|
||||||
|
async function processItem(currentDir, item, targets, _depth) {
|
||||||
|
// 跳过特殊目录
|
||||||
|
if (SKIP_DIRS.has(item)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (const item of items) {
|
|
||||||
try {
|
try {
|
||||||
const itemPath = normalize(join(currentDir, item));
|
const itemPath = normalize(join(currentDir, item));
|
||||||
const stat = await fs.lstat(itemPath);
|
|
||||||
|
|
||||||
if (targets.includes(item)) {
|
if (targets.includes(item)) {
|
||||||
// 匹配到目标目录或文件时直接删除
|
// 匹配到目标目录或文件时直接删除
|
||||||
await fs.rm(itemPath, { force: true, recursive: true });
|
await fs.rm(itemPath, { force: true, recursive: true });
|
||||||
console.log(`Deleted: ${itemPath}`);
|
console.log(`✅ Deleted: ${itemPath}`);
|
||||||
} else if (stat.isDirectory()) {
|
return false; // 已删除,无需递归
|
||||||
// 只对目录进行递归处理
|
|
||||||
await cleanTargetsRecursively(itemPath, targets);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用 readdir 的 withFileTypes 选项,避免额外的 lstat 调用
|
||||||
|
return true; // 可能需要递归,由调用方决定
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
// 更详细的错误信息
|
||||||
|
if (error.code === 'ENOENT') {
|
||||||
|
// 文件不存在,可能已被删除,这是正常情况
|
||||||
|
return false;
|
||||||
|
} else if (error.code === 'EPERM' || error.code === 'EACCES') {
|
||||||
|
console.error(`❌ Permission denied: ${item} in ${currentDir}`);
|
||||||
|
} else {
|
||||||
console.error(
|
console.error(
|
||||||
`Error handling item ${item} in ${currentDir}: ${error.message}`,
|
`❌ Error handling item ${item} in ${currentDir}: ${error.message}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归查找并删除目标目录(并发优化版本)
|
||||||
|
* @param {string} currentDir - 当前遍历的目录路径
|
||||||
|
* @param {string[]} targets - 要删除的目标列表
|
||||||
|
* @param {number} depth - 当前递归深度,避免过深递归
|
||||||
|
*/
|
||||||
|
async function cleanTargetsRecursively(currentDir, targets, depth = 0) {
|
||||||
|
// 限制递归深度,避免无限递归
|
||||||
|
if (depth > 10) {
|
||||||
|
console.warn(`Max recursion depth reached at: ${currentDir}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let dirents;
|
||||||
|
try {
|
||||||
|
// 使用 withFileTypes 选项,一次性获取文件类型信息,避免后续 lstat 调用
|
||||||
|
dirents = await fs.readdir(currentDir, { withFileTypes: true });
|
||||||
|
} catch (error) {
|
||||||
|
// 如果无法读取目录,可能已被删除或权限不足
|
||||||
|
console.warn(`Cannot read directory ${currentDir}: ${error.message}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分批处理,控制并发数量
|
||||||
|
for (let i = 0; i < dirents.length; i += CONCURRENCY_LIMIT) {
|
||||||
|
const batch = dirents.slice(i, i + CONCURRENCY_LIMIT);
|
||||||
|
|
||||||
|
const tasks = batch.map(async (dirent) => {
|
||||||
|
const item = dirent.name;
|
||||||
|
const shouldRecurse = await processItem(currentDir, item, targets, depth);
|
||||||
|
|
||||||
|
// 如果是目录且没有被删除,则递归处理
|
||||||
|
if (shouldRecurse && dirent.isDirectory()) {
|
||||||
|
const itemPath = normalize(join(currentDir, item));
|
||||||
|
return cleanTargetsRecursively(itemPath, targets, depth + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 并发执行当前批次的任务
|
||||||
|
const results = await Promise.allSettled(tasks);
|
||||||
|
|
||||||
|
// 检查是否有失败的任务(可选:用于调试)
|
||||||
|
const failedTasks = results.filter(
|
||||||
|
(result) => result.status === 'rejected',
|
||||||
|
);
|
||||||
|
if (failedTasks.length > 0) {
|
||||||
|
console.warn(
|
||||||
|
`${failedTasks.length} tasks failed in batch starting at index ${i} in directory: ${currentDir}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,14 +117,25 @@ async function cleanTargetsRecursively(currentDir, targets) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`Starting cleanup of targets: ${cleanupTargets.join(', ')} from root: ${rootDir}`,
|
`🚀 Starting cleanup of targets: ${cleanupTargets.join(', ')} from root: ${rootDir}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const startTime = Date.now();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// 先统计要删除的目标数量
|
||||||
|
console.log('📊 Scanning for cleanup targets...');
|
||||||
|
|
||||||
await cleanTargetsRecursively(rootDir, cleanupTargets);
|
await cleanTargetsRecursively(rootDir, cleanupTargets);
|
||||||
console.log('Cleanup process completed successfully.');
|
|
||||||
|
const endTime = Date.now();
|
||||||
|
const duration = (endTime - startTime) / 1000;
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
`✨ Cleanup process completed successfully in ${duration.toFixed(2)}s`,
|
||||||
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`Unexpected error during cleanup: ${error.message}`);
|
console.error(`💥 Unexpected error during cleanup: ${error.message}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/turbo-run",
|
"name": "@vben/turbo-run",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@vben/vsh",
|
"name": "@vben/vsh",
|
||||||
"version": "5.5.8",
|
"version": "5.5.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user