Merge pull request #831 from dataease/pr@dev@refactor_panel-text

feat:仪表板视图拖拽阴影跟随
This commit is contained in:
王嘉豪 2021-09-16 18:51:25 +08:00 committed by GitHub
commit 0c5907142c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 60 additions and 4 deletions

View File

@ -52,7 +52,7 @@ import EditBar from '@/components/canvas/components/Editor/EditBar'
export default {
replace: true,
name: 'VueDragResizeRotate',
name: 'Dedrag',
components: { EditBar },
props: {
className: {
@ -1572,6 +1572,10 @@ export default {
addEvent(document.documentElement, 'touchend touchcancel', this.deselect)
//
addEvent(window, 'resize', this.checkParentSize)
// private
this.curComponent.optStatus.resizing = this.resizing
this.curComponent.optStatus.dragging = this.dragging
},
createdFunction() {
// minWidthmaxWidth

View File

@ -0,0 +1,47 @@
<template>
<div style="z-index:-1" :style="style" />
</template>
<script>
import { mapState } from 'vuex'
export default {
replace: true,
name: 'Shadow',
computed: {
style() {
//
let left = this.curComponent.style.left * this.curCanvasScale.scaleWidth / 100
let top = this.curComponent.style.top * this.curCanvasScale.scaleHeight / 100
let width = this.curComponent.style.width * this.curCanvasScale.scaleWidth / 100
let height = this.curComponent.style.height * this.curCanvasScale.scaleHeight / 100
if (this.canvasStyleData.auxiliaryMatrix) {
left = Math.round(left / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
width = Math.round(width / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
top = Math.round(top / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
height = Math.round(height / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
}
const style = {
transform: `translate(${left}px, ${top}px) rotate(0deg)`,
width: width + 'px',
height: height + 'px',
opacity: 0.4,
background: 'gray',
position: 'absolute'
}
console.log('style=>' + JSON.stringify(style))
return style
},
...mapState([
'curComponent',
'editor',
'curCanvasScale',
'canvasStyleData',
'linkageSettingStatus'
])
}
}
</script>
<style scoped>
</style>

View File

@ -104,9 +104,8 @@
:active="item === curComponent"
/>
</de-drag>
<!--拖拽阴影部分-->
<drag-shadow v-if="curComponent&&this.curComponent.optStatus.dragging" />
<!-- 右击菜单 -->
<ContextMenu />
<!-- 标线 (临时去掉标线 吸附等功能)-->
@ -169,9 +168,10 @@ import { deepCopy } from '@/components/canvas/utils/utils'
import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog'
import DeOutWidget from '@/components/dataease/DeOutWidget'
import CanvasOptBar from '@/components/canvas/components/Editor/CanvasOptBar'
import DragShadow from '@/components/DeDrag/shadow'
export default {
components: { Shape, ContextMenu, MarkLine, Area, Grid, DeDrag, UserViewDialog, DeOutWidget, CanvasOptBar },
components: { Shape, ContextMenu, MarkLine, Area, Grid, DeDrag, UserViewDialog, DeOutWidget, CanvasOptBar, DragShadow },
props: {
isEdit: {
type: Boolean,

View File

@ -86,6 +86,11 @@ const data = {
},
setCurComponent(state, { component, index }) {
// 当前视图操作状态置空
component['optStatus'] = {
dragging: false,
resizing: false
}
state.styleChangeTimes = 0
state.curComponent = component
state.curComponentIndex = index