Просмотр исходного кода

fix(@vben/common-ui): 修复 JsonViewer 在 Vite 下因 CJS 默认导出未解包导致的渲染失败 (#7728)

* fix: lint

* fix(@vben/common-ui): 修复 JsonViewer 在 Vite 下因 CJS 默认导出未解包导致的渲染失败
过冬 2 месяцев назад
Родитель
Сommit
7fbdf3d914

+ 7 - 7
packages/@core/ui-kit/form-ui/src/form-render/form-field.vue

@@ -177,15 +177,15 @@ const computedProps = computed(() => {
 
 // 自定义帮助信息
 const computedHelp = computed(() => {
-  return help ? onHelpFunc : undefined;
-});
-
-const onHelpFunc = () => {
-  if (!help) {
+  const helpContent = help;
+  if (!helpContent) {
     return undefined;
   }
-  return isFunction(help) ? help(values.value, formApi!) : help;
-};
+  return () =>
+    isFunction(helpContent)
+      ? helpContent(values.value, getFormApi())
+      : helpContent;
+});
 
 watch(
   () => computedProps.value?.autofocus,

+ 6 - 1
packages/effects/common-ui/src/components/json-viewer/index.vue

@@ -12,7 +12,7 @@ import type {
 
 import { computed, useAttrs } from 'vue';
 // @ts-expect-error - vue-json-viewer does not expose compatible typings for this import path
-import VueJsonViewer from 'vue-json-viewer';
+import VueJsonViewerImport from 'vue-json-viewer';
 
 import { $t } from '@vben/locales';
 
@@ -42,6 +42,11 @@ const emit = defineEmits<{
   valueClick: [value: JsonViewerValue];
 }>();
 
+/** CJS/UMD 在 Vite 下解析为 { default: Component },需解包否则会出现 missing template or render */
+const VueJsonViewer =
+  (VueJsonViewerImport as { default?: typeof VueJsonViewerImport }).default ??
+  VueJsonViewerImport;
+
 const attrs: SetupContext['attrs'] = useAttrs();
 
 function handleClick(event: MouseEvent) {

+ 3 - 1
playground/src/views/examples/form/basic.vue

@@ -287,7 +287,9 @@ const [BaseForm, baseFormApi] = useVbenForm({
       component: 'DatePicker',
       fieldName: 'datePicker',
       help: (values) =>
-        [`这是一个可输出其他字段值的帮助信息${values?.rate}`].map((v) => h('p', v)),
+        [`这是一个可输出其他字段值的帮助信息${values?.rate}`].map((v) =>
+          h('p', v),
+        ),
       label: '日期选择框',
     },
     {

+ 0 - 1
pnpm-workspace.yaml

@@ -187,4 +187,3 @@ catalog:
   yaml-eslint-parser: ^2.0.0
   zod: ^3.25.76
   zod-defaults: 0.1.3
-