From 66eb1c2b3d004270135510a5b76ee09958b873ba Mon Sep 17 00:00:00 2001
From: wangjiahao <1522128093@qq.com>
Date: Mon, 21 Jun 2021 15:33:10 +0800
Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E6=8B=96=E6=8B=BD=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=E5=9B=9E=E9=80=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/src/components/DeDrag/index.vue | 4 +-
.../canvas/custom-component/component-list.js | 14 ++-
frontend/src/store/index.js | 1 -
.../src/views/panel/AssistComponent/index.vue | 2 +-
frontend/src/views/panel/edit/index.vue | 85 +++++++++++++++++--
5 files changed, 92 insertions(+), 14 deletions(-)
diff --git a/frontend/src/components/DeDrag/index.vue b/frontend/src/components/DeDrag/index.vue
index ff5a1743bc..ddde75c207 100644
--- a/frontend/src/components/DeDrag/index.vue
+++ b/frontend/src/components/DeDrag/index.vue
@@ -1252,7 +1252,7 @@ export default {
this.top = this.mouseClickPosition.top
this.left = this.mouseClickPosition.left
this.width = this.mouseClickPosition.width
- console.log('width5:' + this.width)
+ // console.log('width5:' + this.width)
this.height = this.mouseClickPosition.height
}
}
@@ -1436,7 +1436,7 @@ export default {
let groupLeft = 0
let groupTop = 0
for (const item of nodes) {
- console.log('===' + typeof item.tagName)
+ // console.log('===' + typeof item.tagName)
// 修复判断条件
// if (item.className !== undefined && item.className.split(' ').includes(this.classNameActive)) {
if (item.tagName !== 'svg' && item.className !== undefined && item.className.split(' ').includes(this.classNameActive)) {
diff --git a/frontend/src/components/canvas/custom-component/component-list.js b/frontend/src/components/canvas/custom-component/component-list.js
index 6203cb51ab..5cc1c686aa 100644
--- a/frontend/src/components/canvas/custom-component/component-list.js
+++ b/frontend/src/components/canvas/custom-component/component-list.js
@@ -33,9 +33,9 @@ export const assistList = [
export const pictureList = [
{
id: '20001',
- component: 'picture',
- type: 'picture',
- label: '点击上传',
+ component: 'picture-add',
+ type: 'picture-add',
+ label: '拖拽上传',
icon: 'iconfont icon-picture',
defaultClass: 'text-filter'
}
@@ -137,6 +137,14 @@ const list = [
height: 300,
borderRadius: ''
}
+ },
+ {
+ id: '20001',
+ component: 'picture-add',
+ type: 'picture-add',
+ label: '拖拽上传',
+ icon: 'iconfont icon-picture',
+ defaultClass: 'text-filter'
}
]
diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js
index e3cebe8c59..0094960db3 100644
--- a/frontend/src/store/index.js
+++ b/frontend/src/store/index.js
@@ -71,7 +71,6 @@ const data = {
},
setCurComponent(state, { component, index }) {
- console.log('curComponent' + JSON.stringify(component))
state.curComponent = component
state.curComponentIndex = index
},
diff --git a/frontend/src/views/panel/AssistComponent/index.vue b/frontend/src/views/panel/AssistComponent/index.vue
index 647953d849..0ce2f97b84 100644
--- a/frontend/src/views/panel/AssistComponent/index.vue
+++ b/frontend/src/views/panel/AssistComponent/index.vue
@@ -37,8 +37,8 @@
:key="index"
:data-id="item.id"
:data-index="index"
+ draggable
:class="'filter-widget '+ (item.defaultClass || '')"
- @click="goFile"
>
diff --git a/frontend/src/views/panel/edit/index.vue b/frontend/src/views/panel/edit/index.vue
index b36ddb3e20..a868021fc3 100644
--- a/frontend/src/views/panel/edit/index.vue
+++ b/frontend/src/views/panel/edit/index.vue
@@ -154,6 +154,8 @@
+
+
@@ -188,6 +190,10 @@ import '@/components/canvas/styles/animate.css'
import { ApplicationContext } from '@/utils/ApplicationContext'
import FilterDialog from '../filter/filterDialog'
+import toast from '@/components/canvas/utils/toast'
+import { commonStyle, commonAttr } from '@/components/canvas/custom-component/component-list'
+import generateID from '@/components/canvas/utils/generateID'
+
export default {
name: 'PanelEdit',
components: {
@@ -238,7 +244,8 @@ export default {
height: null
},
beforeDialogValue: [],
- styleDialogVisible: false
+ styleDialogVisible: false,
+ currentDropElement: null
}
},
@@ -248,6 +255,7 @@ export default {
},
...mapState([
'curComponent',
+ 'curCanvasScale',
'isClickComponent',
'canvasStyleData',
'curComponentIndex',
@@ -384,13 +392,12 @@ export default {
return data
},
handleDrop(e) {
+ this.currentDropElement = e
e.preventDefault()
e.stopPropagation()
let component
const newComponentId = uuid.v1()
-
const componentInfo = JSON.parse(e.dataTransfer.getData('componentInfo'))
-
if (componentInfo.type === 'assist') {
// 辅助设计组件
componentList.forEach(componentTemp => {
@@ -398,6 +405,12 @@ export default {
component = deepCopy(componentTemp)
}
})
+
+ if (component.type === 'picture-add') {
+ this.goFile()
+ this.clearCurrentInfo()
+ return
+ }
} else if (componentInfo.type === 'view') {
// 用户视图设置 复制一个模板
componentList.forEach(componentTemp => {
@@ -415,8 +428,8 @@ export default {
this.currentWidget = ApplicationContext.getService(componentInfo.id)
this.currentFilterCom = this.currentWidget.getDrawPanel()
- this.currentFilterCom.style.top = e.offsetY
- this.currentFilterCom.style.left = e.offsetX
+ this.currentFilterCom.style.top = this.getPositionY(e.layerY)
+ this.currentFilterCom.style.left = this.getPositionX(e.layerX)
this.currentFilterCom.id = newComponentId
if (this.currentWidget.filterDialog) {
this.show = false
@@ -427,8 +440,8 @@ export default {
}
// position = absolution 或导致有偏移 这里中和一下偏移量
- component.style.top = e.offsetY
- component.style.left = e.offsetX
+ component.style.top = this.getPositionY(e.layerY)
+ component.style.left = this.getPositionX(e.layerX)
component.id = newComponentId
this.$store.commit('addComponent', { component })
this.$store.commit('recordSnapshot')
@@ -525,6 +538,64 @@ export default {
},
closeStyleDialog() {
this.styleDialogVisible = false
+ },
+ goFile() {
+ this.$refs.files.click()
+ },
+ handleFileChange(e) {
+ const file = e.target.files[0]
+ if (!file.type.includes('image')) {
+ toast('只能插入图片')
+ return
+ }
+ const reader = new FileReader()
+ reader.onload = (res) => {
+ const fileResult = res.target.result
+ const img = new Image()
+ img.onload = () => {
+ const scaleWith = img.width / 400
+ const scaleHeight = img.height / 200
+ let scale = scaleWith > scaleHeight ? scaleWith : scaleHeight
+ scale = scale > 1 ? scale : 1
+ this.$store.commit('addComponent', {
+ component: {
+ ...commonAttr,
+ id: generateID(),
+ component: 'Picture',
+ label: '图片',
+ icon: '',
+ propValue: fileResult,
+ style: {
+ ...commonStyle,
+ top: this.getPositionY(this.currentDropElement.layerY),
+ left: this.getPositionX(this.currentDropElement.layerX),
+ width: img.width / scale,
+ height: img.height / scale
+ }
+ }
+ })
+
+ this.$store.commit('recordSnapshot')
+ }
+
+ img.src = fileResult
+ }
+
+ reader.readAsDataURL(file)
+ },
+ getPositionX(x) {
+ if (this.canvasStyleData.selfAdaption) {
+ return x * 100 / this.curCanvasScale.scaleWidth
+ } else {
+ return x
+ }
+ },
+ getPositionY(y) {
+ if (this.canvasStyleData.selfAdaption) {
+ return y * 100 / this.curCanvasScale.scaleHeight
+ } else {
+ return y
+ }
}
}
}
From 55f4e2244aa17634ce3e95e2065a1b87f445cc3d Mon Sep 17 00:00:00 2001
From: wangjiahao <1522128093@qq.com>
Date: Mon, 21 Jun 2021 15:33:52 +0800
Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E6=8B=96=E6=8B=BD=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=E5=9B=9E=E9=80=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/src/components/canvas/custom-component/UserView.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue
index 3fc2d9ae67..f120c6dffe 100644
--- a/frontend/src/components/canvas/custom-component/UserView.vue
+++ b/frontend/src/components/canvas/custom-component/UserView.vue
@@ -175,7 +175,7 @@ export default {
this.requestStatus = 'success'
} else {
this.requestStatus = 'error'
- this.message = response.massage
+ this.message = response.message
}
return true
}).catch(err => {
From 1b934dec57847adb55cc7cd0384b49e48e833e61 Mon Sep 17 00:00:00 2001
From: maninhill <41712985+maninhill@users.noreply.github.com>
Date: Mon, 21 Jun 2021 15:55:06 +0800
Subject: [PATCH 3/4] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3abb3919a0..f2153f8caa 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
# DataEase - 人人可用的开源数据可视化分析工具
-DataEase 是开源的数据可视化分析工具,帮助用户分析数据、改善业务。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。
+DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。
- 图表展示: 支持 PC 端、移动端及大屏;
- 图表制作: 支持丰富的图表类型(基于 Apache ECharts 实现)、支持拖拉拽方式快速制作仪表板;
From c536ab766617282c386c10858635e87dadc4c700 Mon Sep 17 00:00:00 2001
From: junjie
Date: Mon, 21 Jun 2021 15:59:32 +0800
Subject: [PATCH 4/4] =?UTF-8?q?feat(fix):=E5=AE=9A=E6=97=B6=E4=BB=BB?=
=?UTF-8?q?=E5=8A=A1=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dataset/DataSetTableTaskService.java | 36 +++++++++++--------
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java
index 78509a801b..851daee0dd 100644
--- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java
+++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java
@@ -1,13 +1,15 @@
package io.dataease.service.dataset;
-import io.dataease.base.domain.*;
+import io.dataease.base.domain.DatasetTable;
+import io.dataease.base.domain.DatasetTableTask;
+import io.dataease.base.domain.DatasetTableTaskExample;
+import io.dataease.base.domain.DatasetTableTaskLog;
import io.dataease.base.mapper.DatasetTableTaskMapper;
import io.dataease.commons.constants.JobStatus;
import io.dataease.commons.constants.ScheduleType;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
import io.dataease.i18n.Translator;
import io.dataease.service.ScheduleService;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.CronExpression;
@@ -44,25 +46,29 @@ public class DataSetTableTaskService {
dataSetTableService.saveIncrementalConfig(dataSetTaskRequest.getDatasetTableIncrementalConfig());
// check
- if (StringUtils.isNotEmpty(datasetTableTask.getCron())) {
- if (!CronExpression.isValidExpression(datasetTableTask.getCron())) {
- throw new RuntimeException(Translator.get("i18n_cron_expression_error"));
+ if (StringUtils.equalsIgnoreCase(datasetTableTask.getRate(),"CRON")){
+ if (StringUtils.isNotEmpty(datasetTableTask.getCron())) {
+ if (!CronExpression.isValidExpression(datasetTableTask.getCron())) {
+ throw new RuntimeException(Translator.get("i18n_cron_expression_error"));
+ }
+ }
+ // check start time and end time
+ if (StringUtils.equalsIgnoreCase(datasetTableTask.getEnd(), "1")
+ && ObjectUtils.isNotEmpty(datasetTableTask.getStartTime())
+ && ObjectUtils.isNotEmpty(datasetTableTask.getEndTime())
+ && datasetTableTask.getStartTime() != 0
+ && datasetTableTask.getEndTime() != 0
+ && datasetTableTask.getStartTime() > datasetTableTask.getEndTime()) {
+ throw new RuntimeException(Translator.get("i18n_cron_time_error"));
}
}
- // check start time and end time
- if (ObjectUtils.isNotEmpty(datasetTableTask.getStartTime())
- && ObjectUtils.isNotEmpty(datasetTableTask.getEndTime())
- && datasetTableTask.getStartTime() != 0
- && datasetTableTask.getEndTime() != 0
- && datasetTableTask.getStartTime() > datasetTableTask.getEndTime()) {
- throw new RuntimeException(Translator.get("i18n_cron_time_error"));
- }
+
if (StringUtils.isEmpty(datasetTableTask.getId())) {
datasetTableTask.setId(UUID.randomUUID().toString());
datasetTableTask.setCreateTime(System.currentTimeMillis());
// SIMPLE 类型,提前占位
if (datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())) {
- if(datasetTableTask.getType().equalsIgnoreCase("add_scope")){
+ if (datasetTableTask.getType().equalsIgnoreCase("add_scope")) {
DatasetTable datasetTable = dataSetTableService.get(datasetTableTask.getTableId());
if (datasetTable.getLastUpdateTime() == 0 || datasetTable.getLastUpdateTime() == null) {
throw new Exception(Translator.get("i18n_not_exec_add_sync"));
@@ -70,7 +76,7 @@ public class DataSetTableTaskService {
}
if (extractDataService.updateSyncStatusIsNone(dataSetTableService.get(datasetTableTask.getTableId()))) {
throw new Exception(Translator.get("i18n_sync_job_exists"));
- }else {
+ } else {
//write log
DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog();
datasetTableTaskLog.setTableId(datasetTableTask.getTableId());