提交 57fe2bc6 authored 作者: wangjiahao's avatar wangjiahao

feat:样式修改

上级 9b036083
...@@ -135,5 +135,6 @@ export default { ...@@ -135,5 +135,6 @@ export default {
overflow: auto; overflow: auto;
position: relative; position: relative;
margin: 0; margin: 0;
background-color: #f7f8fa;
} }
</style> </style>
<template> <template>
<div class="bg"> <div style="width: 100%;height: 100%;background-color: #f7f8fa">
<div id="preview-parent" class="canvas-container"> <span style="line-height: 35px; position: absolute; top:10px;right: 20px;z-index:100000">
<div <el-button size="mini" @click="toDir">
class="canvas" 关闭
:style="{ </el-button>
width: changeStyleWithScale(canvasStyleData.width) + 'px', </span>
height: changeStyleWithScale(canvasStyleData.height) + 'px', <Preview />
}"
>
<ComponentWrapper
v-for="(item, index) in componentData"
:key="index"
:config="item"
/>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { getStyle } from '@/components/canvas/utils/style'
import { mapState } from 'vuex'
import ComponentWrapper from './ComponentWrapper'
import { changeStyleWithScale } from '@/components/canvas/utils/translate'
import { uuid } from 'vue-uuid'
export default { import Preview from './Preview'
components: { ComponentWrapper }, import bus from '@/utils/bus'
model: {
prop: 'show',
event: 'change'
},
props: {
show: {
type: Boolean,
default: false
}
},
computed: mapState([
'componentData',
'canvasStyleData'
]),
mounted() {
// 计算组件当前合适宽度
},
created() {
this.restore()
},
methods: {
changeStyleWithScale,
getStyle,
close() {
this.$emit('change', false)
},
restore() {
// 用保存的数据恢复画布
if (localStorage.getItem('canvasData')) {
this.$store.commit('setComponentData', this.resetID(JSON.parse(localStorage.getItem('canvasData'))))
}
if (localStorage.getItem('canvasStyle')) { export default {
this.$store.commit('setCanvasStyle', JSON.parse(localStorage.getItem('canvasStyle'))) components: { Preview },
}
},
resetID(data) {
data.forEach(item => {
item.id = uuid.v1()
})
return data methods: {
toDir() {
debugger
this.$router.replace('/panel/index')
bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' })
} }
} }
} }
</script> </script>
<style lang="scss" scoped>
.bg {
width: 100%;
height: 100%;
.canvas-container {
width: 100%;
height: 100%;
overflow: auto;
.canvas {
position: relative;
margin: auto;
}
}
}
</style>
...@@ -216,8 +216,8 @@ export default { ...@@ -216,8 +216,8 @@ export default {
}, },
clickPreview() { clickPreview() {
const url = '#/preview' // 编辑时临时保存 当前修改的画布
window.open(url, '_blank') this.$router.replace('/PreviewFullScreen')
} }
} }
} }
......
...@@ -77,6 +77,12 @@ export const constantRoutes = [ ...@@ -77,6 +77,12 @@ export const constantRoutes = [
hidden: true hidden: true
}, },
{
path: '/previewFullScreen',
component: () => import('@/components/canvas/components/Editor/PreviewFullScreen'),
hidden: true
},
{ {
path: '/', path: '/',
component: Layout, component: Layout,
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
:data="defaultData" :data="defaultData"
node-key="id" node-key="id"
:expand-on-click-node="true" :expand-on-click-node="true"
@node-click="panelDefaultClick" @node-click="nodeClick"
> >
<span slot-scope="{ data }" class="custom-tree-node"> <span slot-scope="{ data }" class="custom-tree-node">
<span> <span>
...@@ -419,14 +419,12 @@ export default { ...@@ -419,14 +419,12 @@ export default {
nodeClick(data, node) { nodeClick(data, node) {
if (data.nodeType === 'panel') { if (data.nodeType === 'panel') {
// 加载视图数据 // 加载视图数据
this.$nextTick(() => { get('panel/group/findOne/' + data.id).then(response => {
get('panel/group/findOne/' + data.id).then(response => { this.$store.commit('setComponentData', this.resetID(JSON.parse(response.data.panelData)))
this.$store.commit('setComponentData', this.resetID(JSON.parse(response.data.panelData))) this.$store.commit('setCanvasStyle', JSON.parse(response.data.panelStyle))
this.$store.commit('setCanvasStyle', JSON.parse(response.data.panelStyle)) this.$store.dispatch('panel/setPanelInfo', data)
this.$store.dispatch('panel/setPanelInfo', data) this.currGroup = data
this.currGroup = data eventBus.$emit('componentDataChange', '')
eventBus.$emit('componentDataChange', '')
})
}) })
} }
if (node.expanded) { if (node.expanded) {
......
<template> <template>
<el-row style="height: 100%;width: 100%;"> <el-row v-if="showMain" style="height: 100%;width: 100%;">
<el-col v-if="panelInfo.name.length>0" class="panel-design"> <el-col v-if="panelInfo.name.length>0" class="panel-design">
<el-row class="panel-design-head"> <el-row class="panel-design-head">
<!--TODO 仪表盘头部区域--> <!--TODO 仪表盘头部区域-->
...@@ -25,12 +25,14 @@ ...@@ -25,12 +25,14 @@
<script> <script>
import Preview from '@/components/canvas/components/Editor/Preview' import Preview from '@/components/canvas/components/Editor/Preview'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import eventBus from '@/components/canvas/utils/eventBus'
export default { export default {
name: 'PanelViewShow', name: 'PanelViewShow',
components: { Preview }, components: { Preview },
data() { data() {
return { return {
showMain: false
} }
}, },
...@@ -44,7 +46,14 @@ export default { ...@@ -44,7 +46,14 @@ export default {
]) ])
}, },
mounted() { mounted() {
// 监听数据变动事件 刷新清楚历史样式
eventBus.$on('componentDataChange', () => {
// 刷新
this.showMain = false
this.$nextTick(() => {
this.showMain = true
})
})
}, },
methods: { methods: {
clickPreview() { clickPreview() {
......
<template> <template>
<el-container> <el-container>
<!-- <de-header>Header</de-header> --> <!-- <de-header>Header</de-header> -->
<el-header class="de-header"> <span style="line-height: 35px; position: absolute; top:10px;right: 10px">
<el-row class="panel-design-head"> <el-button size="mini" @click="toDir">
<span style="float: left;line-height: 35px; color: gray"> 关闭
</el-button>
<span>名称:测试仪表板</span> </span>
</span>
<span style="float: right;line-height: 35px;">
<el-tooltip content="返回目录">
<el-button class="el-icon-refresh-left" size="mini" circle @click="toDir" />
</el-tooltip>
</span>
</el-row>
</el-header>
<de-container> <de-container>
<de-main-container class="ms-main-container"> <de-main-container class="ms-main-container">
<!-- <drawing-board :disabled="true" />--> <!-- <drawing-board :disabled="true" />-->
this is test
</de-main-container> </de-main-container>
</de-container> </de-container>
</el-container> </el-container>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论