提交 02bcadae authored 作者: wangjiahao's avatar wangjiahao

refactor: 过滤组件样式边界优化

上级 079f24d7
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
:style="mainSlotStyle" :style="mainSlotStyle"
> >
<edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" /> <edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" />
<mobile-check-bar v-if="mobileCheckBarShow" :element="element" @amRemoveItem="amRemoveItem" /> <mobile-check-bar v-if="mobileCheckBarShow" :element="element" @amRemoveItem="amRemoveItem" />
<div v-if="resizing" style="transform: translateZ(11px);position: absolute; z-index: 3" :style="resizeShadowStyle" /> <div v-if="resizing" style="transform: translateZ(11px);position: absolute; z-index: 3" :style="resizeShadowStyle" />
<div <div
v-for="(handlei, indexi) in actualHandles" v-for="(handlei, indexi) in actualHandles"
...@@ -536,7 +536,7 @@ export default { ...@@ -536,7 +536,7 @@ export default {
return this.$store.state.curComponent return this.$store.state.curComponent
}, },
curGap() { curGap() {
return this.canvasStyleData.panel.gap === 'yes' && this.element.auxiliaryMatrix ? this.componentGap : 0 return this.element.auxiliaryMatrix && this.element.type !== 'custom' ? this.componentGap : 0
}, },
...mapState([ ...mapState([
'editor', 'editor',
......
...@@ -69,7 +69,7 @@ export default { ...@@ -69,7 +69,7 @@ export default {
return this.curComponent && this.config === this.curComponent return this.curComponent && this.config === this.curComponent
}, },
curGap() { curGap() {
return this.canvasStyleData.panel.gap === 'yes' && this.config.auxiliaryMatrix ? this.componentGap : 0 return this.config.auxiliaryMatrix ? this.componentGap : 0
}, },
...mapState([ ...mapState([
'mobileLayoutStatus', 'mobileLayoutStatus',
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
> >
<component <component
:is="item.component" :is="item.component"
v-if="item.type==='v-text'" v-if="renderOk&&item.type==='v-text'"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild" ref="wrapperChild"
class="component" class="component"
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
@input="handleInput" @input="handleInput"
/> />
<de-out-widget <de-out-widget
v-else-if="item.type==='custom'" v-else-if="renderOk&&item.type==='custom'"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild" ref="wrapperChild"
class="component" class="component"
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
/> />
<component <component
:is="item.component" :is="item.component"
v-else-if="item.type==='other'" v-else-if="renderOk&&item.type==='other'"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild" ref="wrapperChild"
class="component" class="component"
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
/> />
<component <component
:is="item.component" :is="item.component"
v-else v-else-if="renderOk"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild" ref="wrapperChild"
class="component" class="component"
...@@ -327,6 +327,7 @@ function init() { ...@@ -327,6 +327,7 @@ function init() {
const vm = this const vm = this
recalcCellWidth.call(this) recalcCellWidth.call(this)
resetPositionBox.call(this) resetPositionBox.call(this)
// initPosition(this)
let i = 0 let i = 0
const timeid = setInterval(function() { const timeid = setInterval(function() {
if (i >= vm.yourList.length) { if (i >= vm.yourList.length) {
...@@ -470,6 +471,15 @@ function removeItem(index) { ...@@ -470,6 +471,15 @@ function removeItem(index) {
this.yourList.splice(index, 1, {}) this.yourList.splice(index, 1, {})
} }
function initPosition(_this) {
_this.yourList.forEach(item => {
checkItemPosition.call(_this, item, {
x: item.x,
y: item.y
})
})
}
function addItem(item, index) { function addItem(item, index) {
// console.log('addItem') // console.log('addItem')
if (index < 0) { if (index < 0) {
...@@ -807,7 +817,7 @@ export default { ...@@ -807,7 +817,7 @@ export default {
}, },
data() { data() {
return { return {
psDebug: false, // 定位调试模式 psDebug: true, // 定位调试模式
editorX: 0, editorX: 0,
editorY: 0, editorY: 0,
start: { // 选中区域的起点 start: { // 选中区域的起点
...@@ -995,41 +1005,6 @@ export default { ...@@ -995,41 +1005,6 @@ export default {
e.preventDefault() e.preventDefault()
} }
this.hideArea() this.hideArea()
// 获取编辑器的位移信息,每次点击时都需要获取一次。主要是为了方便开发时调试用。
const rectInfo = this.editor.getBoundingClientRect()
this.editorX = rectInfo.x
this.editorY = rectInfo.y
const startX = e.clientX
const startY = e.clientY
this.start.x = startX - this.editorX
this.start.y = startY - this.editorY
// 展示选中区域
this.isShowArea = true
const move = (moveEvent) => {
this.width = Math.abs(moveEvent.clientX - startX)
this.height = Math.abs(moveEvent.clientY - startY)
if (moveEvent.clientX < startX) {
this.start.x = moveEvent.clientX - this.editorX
}
if (moveEvent.clientY < startY) {
this.start.y = moveEvent.clientY - this.editorY
}
}
const up = (e) => {
document.removeEventListener('mousemove', move)
document.removeEventListener('mouseup', up)
if (e.clientX === startX && e.clientY === startY) {
this.hideArea()
return
}
this.createGroup()
}
document.addEventListener('mousemove', move)
document.addEventListener('mouseup', up)
// 挤占式画布设计 // 挤占式画布设计
this.containerMouseDown(e) this.containerMouseDown(e)
}, },
......
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
return (this.element.optStatus.dragging || this.element.optStatus.resizing) return (this.element.optStatus.dragging || this.element.optStatus.resizing)
}, },
curGap() { curGap() {
return this.canvasStyleData.panel.gap === 'yes' && this.element.auxiliaryMatrix ? this.componentGap : 0 return this.element.auxiliaryMatrix ? this.componentGap : 0
}, },
player() { player() {
return this.$refs.videoPlayer.player return this.$refs.videoPlayer.player
......
<template> <template>
<div class="outside-container"> <div ref="myContainer" class="my-container">
<div ref="myContainer" class="my-container"> <div ref="conditionMain" class="condition-main" :class="mainClass">
<div ref="conditionMain" class="condition-main" :class="mainClass"> <div v-if="element.options.attrs.title" ref="deTitleContainer" class="condition-title">
<div v-if="element.options.attrs.title" ref="deTitleContainer" class="condition-title"> <div class="condition-title-absolute">
<div class="condition-title-absolute"> <div class="first-title">
<div class="first-title"> <div class="span-container">
<div class="span-container"> <span ref="deTitle">{{ element.options.attrs.title }}</span>
<span ref="deTitle">{{ element.options.attrs.title }}</span>
</div>
</div> </div>
</div> </div>
</div> </div>
<div ref="deContentContainer" class="condition-content" :class="element.options.attrs.title ? '' : 'condition-content-default'"> </div>
<div class="condition-content-container"> <div ref="deContentContainer" class="condition-content" :class="element.options.attrs.title ? '' : 'condition-content-default'">
<div class="first-element"> <div class="condition-content-container">
<div :class="element.component === 'de-select-grid' ? 'first-element-grid-contaner': ''" class="first-element-contaner"> <div class="first-element">
<component <div :class="element.component === 'de-select-grid' ? 'first-element-grid-contaner': ''" class="first-element-contaner">
:is="element.component" <component
v-if="element.type==='custom'" :is="element.component"
:id="'component' + element.id" v-if="element.type==='custom'"
class="component-custom" :id="'component' + element.id"
:out-style="element.style" class="component-custom"
:element="element" :out-style="element.style"
:in-draw="inDraw" :element="element"
:in-screen="inScreen" :in-draw="inDraw"
/> :in-screen="inScreen"
</div> />
</div> </div>
</div> </div>
</div> </div>
...@@ -99,16 +97,12 @@ export default { ...@@ -99,16 +97,12 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.outside-container {
width: 100%;
height: 100%;
}
.my-container { .my-container {
position: absolute; position: absolute;
overflow: auto; overflow: auto;
inset: 0px; inset: 0px;
} }
.condition-main { .ccondition-main {
position: absolute; position: absolute;
overflow: auto; overflow: auto;
inset: 0px; inset: 0px;
...@@ -162,11 +156,11 @@ export default { ...@@ -162,11 +156,11 @@ export default {
height: 100%; height: 100%;
} }
.first-element-contaner { .first-element-contaner {
width: 100%; width: calc(100% - 10px);
background: initial; background: initial;
position:absolute; position:absolute;
bottom: 0px; bottom: 5px;
margin: 0 0px; margin: 0 4px;
div { div {
width: 100%; width: 100%;
} }
...@@ -174,7 +168,7 @@ export default { ...@@ -174,7 +168,7 @@ export default {
.first-element-grid-contaner { .first-element-grid-contaner {
background: #fff; background: #fff;
border: 1px solid #d7dae2; border: 1px solid #d7dae2;
top: 0px; top: 5px;
} }
.condition-main-line { .condition-main-line {
height: 40px !important; height: 40px !important;
......
...@@ -447,9 +447,9 @@ export default { ...@@ -447,9 +447,9 @@ export default {
mounted() { mounted() {
if (this.mountedInit) { if (this.mountedInit) {
this.treeNode(true) this.treeNode(true)
this.refresh()
this.getChartGroupTree()
} }
this.refresh()
this.getChartGroupTree()
}, },
methods: { methods: {
clickAdd(param) { clickAdd(param) {
......
...@@ -523,7 +523,7 @@ export default { ...@@ -523,7 +523,7 @@ export default {
const xuanfuanniu = evt.target.closest('.icon-xuanfuanniu') const xuanfuanniu = evt.target.closest('.icon-xuanfuanniu')
const shujujuzhen = evt.target.closest('.icon-shujujuzhen') const shujujuzhen = evt.target.closest('.icon-shujujuzhen')
const suffix = evt.target.closest('.el-input__suffix') const suffix = evt.target.closest('.el-input__suffix')
if (!parent && !self && !stick && !xuanfuanniu && !shujujuzhen&&!suffix) { if (!parent && !self && !stick && !xuanfuanniu && !shujujuzhen && !suffix) {
this.show = false this.show = false
window.removeEventListener('click', this.closeSidebar) window.removeEventListener('click', this.closeSidebar)
this.showIndex = -1 this.showIndex = -1
...@@ -649,21 +649,22 @@ export default { ...@@ -649,21 +649,22 @@ export default {
this.beforeDialogValue = [] this.beforeDialogValue = []
this.filterVisible = true this.filterVisible = true
}, },
cancelFilter() { closeFilter() {
this.beforeDialogValue = [] this.beforeDialogValue = []
this.filterVisible = false this.filterVisible = false
this.currentWidget = null this.currentWidget = null
this.clearCurrentInfo() this.clearCurrentInfo()
},
cancelFilter() {
this.closeFilter()
bus.$emit('onRemoveLastItem') bus.$emit('onRemoveLastItem')
}, },
sureFilter() { sureFilter() {
this.currentFilterCom.options.value = [] this.currentFilterCom.options.value = []
const component = deepCopy(this.currentFilterCom) const component = deepCopy(this.currentFilterCom)
// this.$store.commit('addComponent', { component })
this.$store.commit('setComponentWithId', component) this.$store.commit('setComponentWithId', component)
this.$store.commit('recordSnapshot', 'sureFilter') this.$store.commit('recordSnapshot', 'sureFilter')
this.cancelFilter() this.closeFilter()
}, },
reFreshComponent(component) { reFreshComponent(component) {
this.currentFilterCom = component this.currentFilterCom = component
......
...@@ -663,6 +663,7 @@ export default { ...@@ -663,6 +663,7 @@ export default {
showTitleChange(value) { showTitleChange(value) {
if (!value) { if (!value) {
this.componentInfo.options.attrs.title = '' this.componentInfo.options.attrs.title = ''
this.componentInfo.style.backgroundColor = ''
} }
this.$emit('re-fresh-component', this.componentInfo) this.$emit('re-fresh-component', this.componentInfo)
} }
......
...@@ -304,7 +304,7 @@ export default { ...@@ -304,7 +304,7 @@ export default {
} }
}, },
changePdfTemplate() { changePdfTemplate() {
this.pdfTemplateContent = this.pdfTemplateAll[this.pdfTemplateSelectedIndex].templateContent this.pdfTemplateContent = this.pdfTemplateAll[this.pdfTemplateSelectedIndex] ? this.pdfTemplateAll[this.pdfTemplateSelectedIndex].templateContent : ''
}, },
closePreExport() { closePreExport() {
this.pdfExportShow = false this.pdfExportShow = false
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论