Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/layout #575

Merged
merged 6 commits into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 6 additions & 26 deletions designer-demo/registry.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ import {
Props,
Events,
Styles,
CanvasBreadcrumb,
CanvasContainer
Layout,
Canvas
} from '@opentiny/tiny-engine'

export default {
Expand All @@ -52,7 +52,7 @@ export default {
scripts: [],
styles: []
},
layout: { id: 'engine.layout' },
layout: Layout,
themes: [
{
id: 'engine.theme.light'
Expand All @@ -77,28 +77,8 @@ export default {
Setting,
Lang
],
plugins: [
Materials,
Tree,
Page,
Block,
Datasource,
Bridge,
I18n,
Script,
Data,
Schema,
Help,
Robot
],
plugins: [Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, Data, Schema, Help, Robot],
dsls: [{ id: 'engine.dsls.dslvue' }],
settings: [
Props,
Styles,
Events
],
canvas: [
CanvasContainer,
CanvasBreadcrumb
]
settings: [Props, Styles, Events],
canvas: Canvas
}
7 changes: 7 additions & 0 deletions packages/canvas/DesignCanvas/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import DesignCanvas from './src/DesignCanvas.vue'
import metaData from './meta'

export default {
...metaData,
component: DesignCanvas
}
3 changes: 3 additions & 0 deletions packages/canvas/DesignCanvas/meta.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default {
id: 'engine.canvas'
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ const componentType = {

export default {
setup() {
const CanvasContainer = getMergeRegistry('canvas')[0]
const CanvasBreadcrumb = getMergeRegistry('canvas')[1]
const CanvasContainer = getMergeRegistry('canvas').metas[0]
const CanvasBreadcrumb = getMergeRegistry('canvas').metas[1]
lichunn marked this conversation as resolved.
Show resolved Hide resolved
const footData = ref([])
const showMask = ref(true)
const canvasRef = ref(null)
Expand Down
6 changes: 5 additions & 1 deletion packages/canvas/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,9 @@ export { CanvasDragItem } from './drag-drop'
// meta app
import CanvasBreadcrumb from './breadcrumb'
import CanvasContainer from './container'
import DesignCanvas from './DesignCanvas'

export { CanvasBreadcrumb, CanvasContainer }
export default {
...DesignCanvas,
metas: [CanvasContainer, CanvasBreadcrumb]
}
1 change: 0 additions & 1 deletion packages/controller/src/hooks/mountHooks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import './useLayout'
import './useApp'
import './useResource'
import './useHistory'
Expand Down
4 changes: 2 additions & 2 deletions packages/design-core/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ export { default as Robot } from '@opentiny/tiny-engine-plugin-robot'
export { default as Props } from '@opentiny/tiny-engine-setting-props'
export { default as Events } from '@opentiny/tiny-engine-setting-events'
export { default as Styles } from '@opentiny/tiny-engine-setting-styles'
export { CanvasBreadcrumb, CanvasContainer } from '@opentiny/tiny-engine-canvas'

export { default as Layout } from '@opentiny/tiny-engine-layout'
export { default as Canvas } from '@opentiny/tiny-engine-canvas'
export { initPreview } from './src/preview/src/main'

export { default as defaultRegistry } from './registry'
16 changes: 16 additions & 0 deletions packages/design-core/src/App.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<template>
<component :is="registry.layout.component" :registry="registry"></component>
</template>

<script>
import { getMergeRegistry } from '@opentiny/tiny-engine-entry'

export default {
setup() {
const registry = getMergeRegistry()
return {
registry
}
}
lichunn marked this conversation as resolved.
Show resolved Hide resolved
}
</script>
2 changes: 1 addition & 1 deletion packages/design-core/src/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { initHttp } from '@opentiny/tiny-engine-http'
import TinyThemeTool from '@opentiny/vue-theme/theme-tool'
import { tinySmbTheme } from '@opentiny/vue-theme/theme' // SMB 主题
import { defineEntry, mergeRegistry } from '@opentiny/tiny-engine-entry'
import App from './layout/App.vue'
import App from './App.vue'
import defaultRegistry from '../registry.js'
import { registerConfigurators } from './registerConfigurators'

Expand Down
Binary file added packages/layout/assets/AI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion packages/layout/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import component from './src/index.vue'
import component from './src/Main.vue'
import metaData from './meta'
import './src/hooks/useLayout'

export default {
...metaData,
Expand Down
7 changes: 6 additions & 1 deletion packages/layout/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@
],
"dependencies": {
"@opentiny/tiny-engine-entry": "workspace:*",
"vue": "3.2.45"
"vue": "3.2.45",
"@opentiny/vue": "~3.14.0",
"@opentiny/vue-icon": "~3.14.0",
"@opentiny/vue-design-smb": "~3.14.0",
"@opentiny/vue-renderless": "~3.14.0",
"@opentiny/vue-theme": "~3.14.0"
},
"devDependencies": {
"@opentiny/tiny-engine-vite-plugin-meta-comments": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
>
<div>
<span class="item-icon">
<img class="chatgpt-icon" src="../../assets/AI.png" />
<img class="chatgpt-icon" src="../assets/AI.png" />
</span>
</div>
</li>
Expand Down Expand Up @@ -96,7 +96,6 @@
import { reactive, ref, watch } from 'vue'
import { Popover, Tooltip } from '@opentiny/vue'
import { useLayout, usePage } from '@opentiny/tiny-engine-controller'
import { getMergeRegistry } from '@opentiny/tiny-engine-entry'
import { PublicIcon } from '@opentiny/tiny-engine-common'

export default {
Expand All @@ -108,11 +107,14 @@ export default {
props: {
renderPanel: {
type: String
},
plugins: {
type: Array,
default: () => []
}
},
emits: ['click', 'node-click'],
setup(props, { emit }) {
const plugins = getMergeRegistry('plugins')
const components = {}
const iconComponents = {}
const pluginRef = ref(null)
Expand All @@ -127,7 +129,7 @@ export default {
layoutState: { plugins: pluginsState }
} = useLayout()

plugins.forEach(({ id, component, api, icon }) => {
props.plugins.forEach(({ id, component, api, icon }) => {
components[id] = component
iconComponents[id] = icon
if (api) {
Expand All @@ -141,9 +143,9 @@ export default {

const state = reactive({
prevIdex: -2,
topNavLists: plugins.filter((item) => item.align === 'top'),
bottomNavLists: plugins.filter((item) => item.align === 'bottom'),
independence: plugins.find((item) => item.align === 'independence')
topNavLists: props.plugins.filter((item) => item.align === 'top'),
bottomNavLists: props.plugins.filter((item) => item.align === 'bottom'),
independence: props.plugins.find((item) => item.align === 'independence')
})

const doCompleted = () => {
Expand All @@ -158,7 +160,7 @@ export default {
state.prevIdex = index

// 切换插件与关闭插件时确认
const lastPlugin = plugins.find((item) => item.id === props.renderPanel)
const lastPlugin = props.plugins.find((item) => item.id === props.renderPanel)
if (props.renderPanel && lastPlugin?.confirm) {
const confirmCallback = (result) =>
result &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,25 @@
import { computed, ref } from 'vue'
import { Tabs, TabItem } from '@opentiny/vue'
import { useLayout } from '@opentiny/tiny-engine-controller'
import { getMergeRegistry } from '@opentiny/tiny-engine-entry'

export default {
components: {
TinyTabs: Tabs,
TinyTabItem: TabItem
},

props: {
settings: {
type: Array,
default: () => []
}
},
setup() {
const { layoutState } = useLayout()
const settings = getMergeRegistry('settings')
const activating = computed(() => layoutState.settings.activating)
const showMask = ref(true)

return {
showMask,
settings,
activating,
layoutState
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,26 @@
import { reactive, nextTick } from 'vue'
import { useLayout } from '@opentiny/tiny-engine-controller'
import { ProgressBar } from '@opentiny/tiny-engine-common'
import { getMergeRegistry } from '@opentiny/tiny-engine-entry'

export default {
components: {
ProgressBar
},
setup() {
props: {
toolbars: {
type: Array,
default: () => []
}
},
setup(props) {
const leftBar = []
const rightBar = []
const centerBar = []
const state = reactive({
showDeployBlock: false
})

getMergeRegistry('toolbars').forEach((item) => {
props.toolbars.forEach((item) => {
if (item.align === 'right') {
rightBar.push(item)
} else if (item.align === 'center') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
<template>
<tiny-config-provider :design="designSmbConfig">
<div id="tiny-engine">
<design-toolbars></design-toolbars>
<design-toolbars :toolbars="registry.toolbars"></design-toolbars>
<div class="tiny-engine-main">
<div class="tiny-engine-left-wrap">
<div class="tiny-engine-content-wrap">
<design-plugins :render-panel="plugins.render" @click="toggleNav"></design-plugins>
<design-canvas></design-canvas>
<design-plugins
:plugins="registry.plugins"
:render-panel="plugins.render"
@click="toggleNav"
></design-plugins>
<component :is="registry.canvas.component"></component>
</div>
</div>
<div class="tiny-engine-right-wrap">
<design-settings v-show="layoutState.settings.showDesignSettings" ref="right"></design-settings>
<design-settings
:settings="registry.settings"
v-show="layoutState.settings.showDesignSettings"
ref="right"
></design-settings>
</div>
</div>
</div>
Expand All @@ -34,7 +42,6 @@ import AppManage from '@opentiny/tiny-engine-plugin-page'
import { isVsCodeEnv } from '@opentiny/tiny-engine-controller/js/environments'
import DesignToolbars from './DesignToolbars.vue'
import DesignPlugins from './DesignPlugins.vue'
import DesignCanvas from './DesignCanvas.vue'
import DesignSettings from './DesignSettings.vue'
import blockPlugin from '@opentiny/tiny-engine-plugin-block'
import materials from '@opentiny/tiny-engine-plugin-materials'
Expand All @@ -51,7 +58,6 @@ export default {
components: {
DesignToolbars,
DesignPlugins,
DesignCanvas,
DesignSettings,
TinyConfigProvider
},
Expand All @@ -60,7 +66,11 @@ export default {
editor: this
}
},

props: {
registry: {
type: Object
}
},
setup() {
const state = reactive({
globalClass: '',
Expand Down
Loading