diff --git a/.node-version b/.node-version index ee5c2446..85e50277 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -22.1.0 +22.22.0 diff --git a/.vscode/settings.json b/.vscode/settings.json index afeea814..9147d12c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -181,7 +181,8 @@ "markdown", "json", "jsonc", - "json5" + "json5", + "yaml" ], "tailwindCSS.experimental.classRegex": [ diff --git a/package.json b/package.json index 86cdf91f..d5e8f4e8 100644 --- a/package.json +++ b/package.json @@ -92,5 +92,5 @@ "node": ">=20.19.0", "pnpm": ">=10.0.0" }, - "packageManager": "pnpm@10.28.1" + "packageManager": "pnpm@10.28.2" } diff --git a/packages/@core/ui-kit/form-ui/src/form-render/dependencies.ts b/packages/@core/ui-kit/form-ui/src/form-render/dependencies.ts index cec74818..8a3583bd 100644 --- a/packages/@core/ui-kit/form-ui/src/form-render/dependencies.ts +++ b/packages/@core/ui-kit/form-ui/src/form-render/dependencies.ts @@ -6,12 +6,30 @@ import type { import { computed, ref, watch } from 'vue'; -import { isBoolean, isFunction } from '@vben-core/shared/utils'; +import { get, isBoolean, isFunction } from '@vben-core/shared/utils'; import { useFormValues } from 'vee-validate'; import { injectRenderFormProps } from './context'; +/** + * 解析Nested Objects对应的字段值 + * @param values 表单值 + * @param fieldName 字段名 + */ +function resolveValueByFieldName( + values: Record, + fieldName: string, +) { + // vee-validate:[] 表示禁用嵌套 + if (fieldName.startsWith('[') && fieldName.endsWith(']')) { + const rawKey = fieldName.slice(1, -1); + return values[rawKey]; + } + + return get(values, fieldName); +} + export default function useDependencies( getDependencies: () => FormItemDependencies | undefined, ) { @@ -37,7 +55,7 @@ export default function useDependencies( // 该字段可能会被多个字段触发 const triggerFields = getDependencies()?.triggerFields ?? []; return triggerFields.map((dep) => { - return values.value[dep]; + return resolveValueByFieldName(values.value, dep); }); }); diff --git a/packages/@core/ui-kit/form-ui/src/form-render/form.vue b/packages/@core/ui-kit/form-ui/src/form-render/form.vue index 8a47b508..037c5338 100644 --- a/packages/@core/ui-kit/form-ui/src/form-render/form.vue +++ b/packages/@core/ui-kit/form-ui/src/form-render/form.vue @@ -53,6 +53,7 @@ const wrapperClass = computed(() => { provideFormRenderProps(props); +// @ts-expect-error unused const { isCalculated, keepFormItemIndex, wrapperRef } = useExpandable(props); const shapes = computed(() => { diff --git a/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue b/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue index 8a434346..b5abccb4 100644 --- a/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue +++ b/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue @@ -26,8 +26,8 @@ interface Props { const props = withDefaults(defineProps(), {}); -const { contentElement: _contentElement, overlayStyle } = - useLayoutContentStyle(); +// @ts-expect-error unused +const { contentElement, overlayStyle } = useLayoutContentStyle(); const style = computed((): CSSProperties => { const { @@ -56,11 +56,7 @@ const style = computed((): CSSProperties => {