From d9697212dfd525efd36a4ba518cbff1e5f99588a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=A5=E6=96=AF?= <9068149@qq.com> Date: Fri, 25 Feb 2022 11:12:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20=E5=9B=BA=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=9A=84=E7=BB=84=E4=BB=B6(=E5=A6=82:=20?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E5=AF=BC=E8=88=AA=E3=80=81=E6=82=AC=E6=B5=AE?= =?UTF-8?q?)=E4=B8=8D=E8=83=BD=E6=94=BE=E5=9C=A8=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/home/index.vue | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/layout/home/index.vue b/src/layout/home/index.vue index a020e09..f48c77e 100644 --- a/src/layout/home/index.vue +++ b/src/layout/home/index.vue @@ -179,7 +179,7 @@ export default { pageComponents: [], //页面组件 offsetY: 0, //记录上一次距离父元素高度 pointer: { show: false }, //穿透 - onlyOne: ['1-5','1-16'], // 只能存在一个的组件(组件的type) + onlyOne: ['1-5', '1-16'], // 只能存在一个的组件(组件的type) } }, @@ -396,6 +396,21 @@ export default { componentProperties.get(event.dataTransfer.getData('componentName')) ) + /* 查询是否只能存在一个的组件且在第一个 */ + let someOne = this.pageComponents.some((item, index) => { + return ( + item.component === 'placementarea' && + index === 0 && + this.onlyOne.includes(data.type) + ) + }) + if (someOne) { + this.$message.info('固定位置的组件(如: 底部导航、悬浮)不能放在第一个!') + /* 删除提示组件 */ + this.dragleaves() + return + } + /* 查询是否只能存在一个的组件 */ let someResult = this.pageComponents.some((item) => { return ( @@ -406,9 +421,7 @@ export default { if (someResult) { this.$message.info('当前组件只能添加一个!') /* 删除提示组件 */ - this.pageComponents = this.pageComponents.filter( - (res) => res.component !== 'placementarea' - ) + this.dragleaves() return } @@ -420,11 +433,6 @@ export default { this.index = index if (res.component === 'placementarea') this.$set(this.pageComponents, index, data) - - if (this.pageComponents.length === index + 1) - this.pageComponents = this.pageComponents.filter( - (res) => res.component !== 'placementarea' - ) }) /* 切换组件 */