diff --git a/apps/web-naive/src/bootstrap.ts b/apps/web-naive/src/bootstrap.ts
index fc7f961d..40416d82 100644
--- a/apps/web-naive/src/bootstrap.ts
+++ b/apps/web-naive/src/bootstrap.ts
@@ -4,6 +4,7 @@ import { registerAccessDirective } from '@vben/access';
import { preferences } from '@vben/preferences';
import { initStores } from '@vben/stores';
import '@vben/styles';
+import '@vben/styles/naive';
import { useTitle } from '@vueuse/core';
diff --git a/apps/web-naive/src/views/demos/form/basic.vue b/apps/web-naive/src/views/demos/form/basic.vue
index 7d04ff4d..fe26624c 100644
--- a/apps/web-naive/src/views/demos/form/basic.vue
+++ b/apps/web-naive/src/views/demos/form/basic.vue
@@ -40,6 +40,7 @@ const [Form, formApi] = useVbenForm({
fieldName: 'api',
// 界面显示的label
label: 'ApiSelect',
+ rules: 'required',
},
{
component: 'ApiTreeSelect',
@@ -56,16 +57,19 @@ const [Form, formApi] = useVbenForm({
fieldName: 'apiTree',
// 界面显示的label
label: 'ApiTreeSelect',
+ rules: 'required',
},
{
component: 'Input',
fieldName: 'string',
label: 'String',
+ rules: 'required',
},
{
component: 'InputNumber',
fieldName: 'number',
label: 'Number',
+ rules: 'required',
},
{
component: 'RadioGroup',
@@ -80,6 +84,7 @@ const [Form, formApi] = useVbenForm({
{ value: 'E', label: 'E' },
],
},
+ rules: 'selectRequired',
},
{
component: 'RadioGroup',
@@ -94,9 +99,9 @@ const [Form, formApi] = useVbenForm({
{ value: 'C', label: '选项C' },
{ value: 'D', label: '选项D' },
{ value: 'E', label: '选项E' },
- { value: 'F', label: '选项F' },
],
},
+ rules: 'selectRequired',
},
{
component: 'CheckboxGroup',
@@ -109,11 +114,22 @@ const [Form, formApi] = useVbenForm({
{ value: 'C', label: '选项C' },
],
},
+ rules: 'selectRequired',
},
{
component: 'DatePicker',
fieldName: 'date',
label: 'Date',
+ rules: 'required',
+ },
+ {
+ component: 'Input',
+ fieldName: 'textArea',
+ label: 'TextArea',
+ componentProps: {
+ type: 'textarea',
+ },
+ rules: 'required',
},
],
});
diff --git a/docs/.vitepress/components/preview-group.vue b/docs/.vitepress/components/preview-group.vue
index c8c6e83c..e712157c 100644
--- a/docs/.vitepress/components/preview-group.vue
+++ b/docs/.vitepress/components/preview-group.vue
@@ -1,4 +1,6 @@
diff --git a/packages/effects/plugins/src/echarts/use-echarts.ts b/packages/effects/plugins/src/echarts/use-echarts.ts
index fab5c7ab..42cc4bef 100644
--- a/packages/effects/plugins/src/echarts/use-echarts.ts
+++ b/packages/effects/plugins/src/echarts/use-echarts.ts
@@ -1,9 +1,13 @@
import type { EChartsOption } from 'echarts';
+
import type { Ref } from 'vue';
import type EchartsUI from './echarts-ui.vue';
+import { computed, nextTick, watch } from 'vue';
+
import { usePreferences } from '@vben/preferences';
+
import {
tryOnUnmounted,
useDebounceFn,
@@ -11,7 +15,6 @@ import {
useTimeoutFn,
useWindowSize,
} from '@vueuse/core';
-import { computed, nextTick, watch } from 'vue';
import echarts from './echarts';
@@ -108,7 +111,7 @@ function useEcharts(chartRef: Ref) {
return {
renderEcharts,
resize,
- chartInstance
+ chartInstance,
};
}
diff --git a/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue b/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
index fae213b4..1a035243 100644
--- a/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
+++ b/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
@@ -1,5 +1,4 @@
+
+
+
+
+
+
diff --git a/playground/src/views/examples/vxe-table/form.vue b/playground/src/views/examples/vxe-table/form.vue
index dd9e2a37..95de7045 100644
--- a/playground/src/views/examples/vxe-table/form.vue
+++ b/playground/src/views/examples/vxe-table/form.vue
@@ -5,6 +5,7 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { Page } from '@vben/common-ui';
import { message } from 'ant-design-vue';
+import dayjs from 'dayjs';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getExampleTableApi } from '#/api';
@@ -21,6 +22,7 @@ interface RowType {
const formOptions: VbenFormProps = {
// 默认展开
collapsed: false,
+ fieldMappingTime: [['date', ['start', 'end']]],
schema: [
{
component: 'Input',
@@ -58,8 +60,9 @@ const formOptions: VbenFormProps = {
label: 'Color',
},
{
- component: 'DatePicker',
- fieldName: 'datePicker',
+ component: 'RangePicker',
+ defaultValue: [dayjs().subtract(7, 'days'), dayjs()],
+ fieldName: 'date',
label: 'Date',
},
],
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index edfab2b3..54d931e8 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -17,26 +17,26 @@ catalog:
'@changesets/changelog-github': ^0.5.0
'@changesets/cli': ^2.27.11
'@changesets/git': ^3.0.2
- '@clack/prompts': ^0.9.0
+ '@clack/prompts': ^0.9.1
'@commitlint/cli': ^19.6.1
'@commitlint/config-conventional': ^19.6.0
'@ctrl/tinycolor': ^4.1.0
'@eslint/js': ^9.17.0
'@faker-js/faker': ^9.3.0
- '@iconify/json': ^2.2.290
+ '@iconify/json': ^2.2.293
'@iconify/tailwind': ^1.2.0
- '@iconify/vue': ^4.2.0
+ '@iconify/vue': ^4.3.0
'@intlify/core-base': ^11.0.1
'@intlify/unplugin-vue-i18n': ^6.0.3
- '@jspm/generator': ^2.4.1
+ '@jspm/generator': ^2.4.2
'@manypkg/get-packages': ^2.2.2
'@nolebase/vitepress-plugin-git-changelog': ^2.12.0
'@playwright/test': ^1.49.1
'@pnpm/workspace.read-manifest': ^1000.0.1
'@stylistic/stylelint-plugin': ^3.1.1
'@tailwindcss/nesting': 0.0.0-insiders.565cd3e
- '@tailwindcss/typography': ^0.5.15
- '@tanstack/vue-query': ^5.62.9
+ '@tailwindcss/typography': ^0.5.16
+ '@tanstack/vue-query': ^5.62.16
'@tanstack/vue-store': ^0.7.0
'@types/archiver': ^6.0.3
'@types/eslint': ^9.6.1
@@ -45,13 +45,13 @@ catalog:
'@types/lodash.clonedeep': ^4.5.9
'@types/lodash.get': ^4.4.9
'@types/lodash.isequal': ^4.5.8
- '@types/node': ^22.10.3
+ '@types/node': ^22.10.5
'@types/nprogress': ^0.2.3
'@types/postcss-import': ^14.0.3
'@types/qrcode': ^1.5.5
'@types/sortablejs': ^1.15.8
- '@typescript-eslint/eslint-plugin': ^8.19.0
- '@typescript-eslint/parser': ^8.19.0
+ '@typescript-eslint/eslint-plugin': ^8.19.1
+ '@typescript-eslint/parser': ^8.19.1
'@vee-validate/zod': ^4.15.0
'@vite-pwa/vitepress': ^0.5.3
'@vitejs/plugin-vue': ^5.2.1
@@ -59,8 +59,8 @@ catalog:
'@vue/reactivity': ^3.5.13
'@vue/shared': ^3.5.13
'@vue/test-utils': ^2.4.6
- '@vueuse/core': ^12.2.0
- '@vueuse/integrations': ^12.2.0
+ '@vueuse/core': ^12.3.0
+ '@vueuse/integrations': ^12.3.0
ant-design-vue: ^4.2.6
archiver: ^7.0.1
autoprefixer: ^10.4.20
@@ -84,7 +84,7 @@ catalog:
depcheck: ^1.4.7
dotenv: ^16.4.7
echarts: ^5.6.0
- element-plus: ^2.9.1
+ element-plus: ^2.9.2
eslint: ^9.17.0
eslint-config-turbo: ^2.3.3
eslint-plugin-command: ^0.2.7
@@ -94,7 +94,7 @@ catalog:
eslint-plugin-jsonc: ^2.18.2
eslint-plugin-n: ^17.15.1
eslint-plugin-no-only-tests: ^3.3.0
- eslint-plugin-perfectionist: ^4.4.0
+ eslint-plugin-perfectionist: ^4.6.0
eslint-plugin-prettier: ^5.2.1
eslint-plugin-regexp: ^2.7.0
eslint-plugin-unicorn: ^56.0.1
@@ -106,7 +106,7 @@ catalog:
get-port: ^7.1.0
globals: ^15.14.0
h3: ^1.13.0
- happy-dom: ^16.2.9
+ happy-dom: ^16.5.3
html-minifier-terser: ^7.2.0
husky: ^9.1.7
is-ci: ^4.1.0
@@ -118,7 +118,7 @@ catalog:
lodash.isequal: ^4.5.0
lucide-vue-next: ^0.469.0
medium-zoom: ^1.1.0
- naive-ui: ^2.40.4
+ naive-ui: ^2.41.0
nitropack: ^2.10.4
nprogress: ^0.2.0
ora: ^8.1.1
@@ -139,9 +139,9 @@ catalog:
radix-vue: ^1.9.12
resolve.exports: ^2.0.3
rimraf: ^6.0.1
- rollup: ^4.29.1
- rollup-plugin-visualizer: ^5.13.1
- sass: ^1.83.0
+ rollup: ^4.30.1
+ rollup-plugin-visualizer: ^5.14.0
+ sass: ^1.83.1
sortablejs: ^1.15.6
stylelint: ^16.12.0
stylelint-config-recess-order: ^5.1.1
@@ -157,19 +157,19 @@ catalog:
tailwindcss-animate: ^1.0.7
theme-colors: ^0.1.0
turbo: ^2.3.3
- typescript: ^5.7.2
+ typescript: ^5.7.3
unbuild: ^3.2.0
unplugin-element-plus: ^0.9.0
vee-validate: ^4.15.0
- vite: ^6.0.6
+ vite: ^6.0.7
vite-plugin-compression: ^0.5.1
- vite-plugin-dts: ^4.3.0
+ vite-plugin-dts: ^4.4.0
vite-plugin-html: ^3.2.2
vite-plugin-lazy-import: ^1.0.7
vite-plugin-pwa: ^0.21.1
- vite-plugin-vue-devtools: ^7.6.8
+ vite-plugin-vue-devtools: ^7.7.0
vitepress: ^1.5.0
- vitepress-plugin-group-icons: ^1.3.2
+ vitepress-plugin-group-icons: ^1.3.3
vitest: ^2.1.8
vue: ^3.5.13
vue-eslint-parser: ^9.4.3