Skip to content

Commit c27e843

Browse files
fix(app-preview-importMap): Fix ImportMap Issues, Optimize Popover Trigger, and Improve Variable Binding in Preview (opentiny#1676)
1、修复内置importMap导致没有element-plus组件库的问题,采用和页面预览相同的动态获取依赖集合的方法 2、优化点击预览图标时trigger为click点击后不会自动关闭的问题,改为使用hover方式打开poper 3、解决打开绑定变量弹窗,绑定的变量不会回显的问题,由于object,keys(modelvalue).length === 2,如果是双向绑定这个条件不成立,因此不能回显,修改为<=3
1 parent 2c74b9b commit c27e843

4 files changed

Lines changed: 6 additions & 12 deletions

File tree

packages/common/component/toolbar-built-in/ToolbarBaseIcon.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<tiny-popover
33
:trigger="trigger"
4-
:open-delay="1000"
4+
:open-delay="500"
55
popper-class="toolbar-right-popover"
66
append-to-body
77
:content="content"

packages/configurator/src/variable-configurator/VariableConfigurator.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ export default {
460460
if (
461461
props.modelValue?.value &&
462462
props.modelValue?.type === EXPRESSION_TYPE.JS_EXPRESSION &&
463-
Object.keys(props.modelValue || {}).length === 2
463+
Object.keys(props.modelValue || {}).length <= 3
464464
) {
465465
return String(props.modelValue?.value)
466466
}

packages/design-core/src/preview/src/preview/usePreviewData.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -360,10 +360,9 @@ export const usePreviewData = ({ setFiles, store, setImportMap }: IUsePreviewDat
360360
}) => {
361361
const searchParams = new URLSearchParams(location.search)
362362
const previewType = searchParams.get('previewType')
363+
const { appData, metaData, importMapData } = await getBasicData(basicFiles, params.scripts)
363364

364365
if (previewType === 'page') {
365-
const { appData, metaData, importMapData } = await getBasicData(basicFiles, params.scripts)
366-
367366
previewState.currentPage = params.currentPage
368367
previewState.ancestors = params.ancestors
369368

@@ -415,7 +414,6 @@ export const usePreviewData = ({ setFiles, store, setImportMap }: IUsePreviewDat
415414
} else if (previewType === 'app') {
416415
const appId = searchParams.get('id')
417416
const { getAllNestedBlocksSchema, generateAppCode } = getMetaApi('engine.service.generateCode')
418-
const importMap = await getImportMap(JSON.parse(searchParams.get('scripts') || '{}'))
419417

420418
let appSchema
421419

@@ -611,14 +609,10 @@ export const usePreviewData = ({ setFiles, store, setImportMap }: IUsePreviewDat
611609
prev[fileName] = formatCode(item.fileContent, fileName)
612610
return prev
613611
}, {})
614-
srcFiles['import-map.json'] = JSON.stringify(importMap)
612+
srcFiles['import-map.json'] = JSON.stringify(importMapData)
615613
const newFiles = store.getFiles()
616614
const enableTailwindCSS = getMergeMeta('engine.config')?.enableTailwindCSS
617-
const appJsCode = processAppJsCode(
618-
newFiles['app.js'],
619-
JSON.parse(searchParams.get('styles') || '[]'),
620-
enableTailwindCSS
621-
)
615+
const appJsCode = processAppJsCode(newFiles['app.js'] || '', params.styles, enableTailwindCSS)
622616
srcFiles['app.js'] = appJsCode
623617
srcFiles['main.js'] = `import app from './app.js' \n ${srcFiles['src/main.js']}`
624618
srcFiles['main.js'] = srcFiles['main.js'].replace("import 'element-plus/dist/index.css'", '')

packages/toolbars/preview/src/Main.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<div class="toolbar-save toolbar-helpGuid">
3-
<toolbar-base content="预览页面" :icon="options.icon?.default || options?.icon" :options="options" trigger="click">
3+
<toolbar-base content="预览页面" :icon="options.icon?.default || options?.icon" :options="options" trigger="hover">
44
<template #button>
55
<div class="toolbar-preview-item">
66
<span @click="preview('page')">页面预览</span>

0 commit comments

Comments
 (0)