ele.name.includes(val))
+ }
+
+ if (this.dataSource && this.dataTable) {
+ this.fieldDataCopy = this.fieldData.filter(ele => ele.fieldName.includes(val))
+ }
}
},
beforeDestroy() {
@@ -729,16 +754,22 @@ export default {
this.listSqlLog()
},
getField(name) {
+ this.tableLoading = true
post('/dataset/table/getFields', {
dataSourceId: this.dataSource,
info: JSON.stringify({ table: name })
}).then((res) => {
this.fieldData = res.data
+ this.fieldDataCopy = [...this.fieldData]
})
+ .finally(() => {
+ this.tableLoading = false
+ })
},
typeSwitch({ name }) {
this.showTable = true
this.dataTable = name
+ this.keywords = ''
this.getField(name)
},
mousedownDrag() {
@@ -787,6 +818,7 @@ export default {
post('/datasource/getTables/' + this.dataSource, {})
.then((response) => {
this.tableData = response.data
+ this.tableDataCopy = [...this.tableData]
})
.finally(() => {
this.tableLoading = false
@@ -799,7 +831,7 @@ export default {
}, 200),
initDataSource() {
return listDatasource().then((response) => {
- this.options = response.data.filter((item) => item.type !== 'api')
+ this.options = pySort(response.data.filter((item) => item.type !== 'api'))
})
},
@@ -1119,7 +1151,7 @@ export default {
.item-list {
padding: 16px 8px;
- height: calc(100vh - 200px);
+ height: calc(100vh - 242px);
overflow: auto;
.table-or-field {
height: 40px;
diff --git a/frontend/src/views/dataset/add/util.js b/frontend/src/views/dataset/add/util.js
new file mode 100644
index 0000000000..cf5444af53
--- /dev/null
+++ b/frontend/src/views/dataset/add/util.js
@@ -0,0 +1,12 @@
+import pyjs from 'js-pinyin'
+
+export function zh2py(str) {
+ return pyjs.getFullChars(str).toLowerCase().charCodeAt()
+}
+
+export function pySort(arr = []) {
+ arr.sort((a, b) => {
+ return zh2py(a.name[0]) - zh2py(b.name[0])
+ })
+ return arr
+}
\ No newline at end of file
diff --git a/frontend/src/views/dataset/common/DatasetDetail.vue b/frontend/src/views/dataset/common/DatasetDetail.vue
index 84ef6e07ca..fe9d322974 100644
--- a/frontend/src/views/dataset/common/DatasetDetail.vue
+++ b/frontend/src/views/dataset/common/DatasetDetail.vue
@@ -263,7 +263,7 @@ export default {
.info-item {
font-family: PingFang SC;
font-weight: 400;
- margin: 6px 0;
+ margin: 6px 0 12px 0;
}
.info-title {
margin: 0!important;
diff --git a/frontend/src/views/system/datasource/DsFormContent.vue b/frontend/src/views/system/datasource/DsFormContent.vue
index 04945fdf61..a98d6f7dd5 100644
--- a/frontend/src/views/system/datasource/DsFormContent.vue
+++ b/frontend/src/views/system/datasource/DsFormContent.vue
@@ -662,7 +662,7 @@ export default {
this.$emit('setParams', { ...this.params })
this.$nextTick(() => {
this.disabled = appMarketCheck ? !this.appMarketEdit : (Boolean(id) && showModel === 'show' && !this.canEdit)
- if (this.configFromTabs.editor === 'editor') {
+ if (this.configFromTabs?.editor === 'editor') {
this.$emit('editeTodisable', true)
}
})
@@ -1113,6 +1113,7 @@ export default {
}
})
}
+ this.$refs.dsForm.validate()
if (!status) {
return
}
From ef9db3c5c6b5b590448717a39fb5ff359c7e401e Mon Sep 17 00:00:00 2001
From: taojinlong
Date: Mon, 9 Jan 2023 16:24:17 +0800
Subject: [PATCH 15/26] =?UTF-8?q?fix:=20=E5=A4=A7=E5=B0=8F=E5=86=99?=
=?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=8C=87=E6=A0=87=E5=92=8C=E7=BB=B4=E5=BA=A6?=
=?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=87=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/db/migration/V48__1.18.1.sql | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/backend/src/main/resources/db/migration/V48__1.18.1.sql b/backend/src/main/resources/db/migration/V48__1.18.1.sql
index e8297a6852..502f6845b3 100644
--- a/backend/src/main/resources/db/migration/V48__1.18.1.sql
+++ b/backend/src/main/resources/db/migration/V48__1.18.1.sql
@@ -1,3 +1,12 @@
UPDATE `my_plugin`
SET `version` = '1.18.1'
-where `plugin_id` > 0 and `store` = 'default' and `version` = '1.18.0';
\ No newline at end of file
+where `plugin_id` > 0 and `store` = 'default' and `version` = '1.18.0';
+
+ALTER TABLE `dataset_table_field`
+ CHANGE COLUMN `origin_name` `origin_name` LONGTEXT BINARY NOT NULL COMMENT '原始字段名' ;
+
+ALTER TABLE `dataset_table_field`
+ CHANGE COLUMN `name` `name` LONGTEXT BINARY NOT NULL COMMENT '字段名名' ;
+
+ALTER TABLE `datasource`
+ CHANGE COLUMN `name` `name` VARCHAR(50) BINARY NOT NULL COMMENT '数据源名称' ;
From a969aa875e9e30c17c9c9641f7cf4655c6191517 Mon Sep 17 00:00:00 2001
From: fit2cloud-chenyw
Date: Mon, 9 Jan 2023 16:30:38 +0800
Subject: [PATCH 16/26] =?UTF-8?q?feat(=E8=BF=87=E6=BB=A4=E5=99=A8):=20?=
=?UTF-8?q?=E6=8E=A7=E5=88=B6=E8=8C=83=E5=9B=B4=E6=98=BE=E7=A4=BA=E4=BC=98?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/src/views/panel/filter/FilterDialog.vue | 2 +-
.../src/views/panel/filter/filterMain/FilterControl.vue | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/frontend/src/views/panel/filter/FilterDialog.vue b/frontend/src/views/panel/filter/FilterDialog.vue
index 1e201bb583..56a17f654a 100644
--- a/frontend/src/views/panel/filter/FilterDialog.vue
+++ b/frontend/src/views/panel/filter/FilterDialog.vue
@@ -275,7 +275,7 @@
:control-attrs="myAttrs"
:child-views="childViews"
:dataset-params="datasetParams"
- :activeName="activeName"
+ :active-name="activeName"
/>
diff --git a/frontend/src/views/panel/filter/filterMain/FilterControl.vue b/frontend/src/views/panel/filter/filterMain/FilterControl.vue
index 846602157d..ac77d2d6ab 100644
--- a/frontend/src/views/panel/filter/filterMain/FilterControl.vue
+++ b/frontend/src/views/panel/filter/filterMain/FilterControl.vue
@@ -117,7 +117,7 @@
@change="checkedViewsChange"
>
item.tableId) || []
+
+ const views = this.childViews.viewInfos.filter(view => tableIdList.includes(view.tableId))
+ return views
}
},
watch: {
From c1bd98eccbd6c913f7e358cb7c18b5bbfe749013 Mon Sep 17 00:00:00 2001
From: taojinlong
Date: Mon, 9 Jan 2023 16:33:52 +0800
Subject: [PATCH 17/26] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?=
=?UTF-8?q?=E5=88=9B=E5=BB=BAjoin=E8=AF=AD=E5=8F=A5=E5=8F=82=E6=95=B0?=
=?UTF-8?q?=E5=8C=96=E6=97=A0=E6=B3=95=E4=BF=9D=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../io/dataease/service/dataset/DataSetTableService.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
index 01fe847d0a..c7244f0ed6 100644
--- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
+++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
@@ -1119,12 +1119,13 @@ public class DataSetTableService {
if (fromItem.getAlias() == null) {
throw new Exception("Failed to parse sql, Every derived table must have its own alias!");
}
- subSelect.setAlias(new Alias(fromItem.getAlias().toString()));
+ subSelect.setAlias(new Alias(fromItem.getAlias().toString(), false));
}
plainSelect.setFromItem(subSelect);
}
List joins = plainSelect.getJoins();
if (joins != null) {
+ List joinsList = new ArrayList<>();
for (Join join : joins) {
FromItem rightItem = join.getRightItem();
if (rightItem instanceof SubSelect) {
@@ -1139,14 +1140,13 @@ public class DataSetTableService {
if (rightItem.getAlias() == null) {
throw new Exception("Failed to parse sql, Every derived table must have its own alias!");
}
- subSelect.setAlias(new Alias(rightItem.getAlias().toString()));
+ subSelect.setAlias(new Alias(rightItem.getAlias().toString(), false));
}
- List joinsList = new ArrayList<>();
join.setRightItem(subSelect);
joinsList.add(join);
- plainSelect.setJoins(joinsList);
}
}
+ plainSelect.setJoins(joinsList);
}
Expression expr = plainSelect.getWhere();
if (expr == null) {
From 2297ef767675e88fc99d509accc10f54a4234282 Mon Sep 17 00:00:00 2001
From: wangjiahao <1522128093@qq.com>
Date: Mon, 9 Jan 2023 16:44:39 +0800
Subject: [PATCH 18/26] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20Echarts=20?=
=?UTF-8?q?=E8=A7=86=E5=9B=BE=E7=82=B9=E5=87=BB=E6=BF=80=E6=B4=BB=E8=A2=AB?=
=?UTF-8?q?=E9=80=89=E6=8B=A9=E5=90=8E=E6=89=8D=E8=83=BD=E8=BF=9B=E8=A1=8C?=
=?UTF-8?q?=E6=BB=9A=E8=BD=AE=E7=BC=A9=E6=94=BE=E6=93=8D=E4=BD=9C=EF=BC=8C?=
=?UTF-8?q?=E9=9D=9E=E6=BF=80=E6=B4=BB=E7=8A=B6=E6=80=81=E7=A6=81=E6=AD=A2?=
=?UTF-8?q?=E6=BB=9A=E8=BD=AE=E7=BC=A9=E6=94=BE=20#3031?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../canvas/customComponent/UserView.vue | 2 +
frontend/src/views/chart/chart/chart.js | 24 +++++----
.../views/chart/components/ChartComponent.vue | 49 ++++++++++++++++++-
3 files changed, 64 insertions(+), 11 deletions(-)
diff --git a/frontend/src/components/canvas/customComponent/UserView.vue b/frontend/src/components/canvas/customComponent/UserView.vue
index 477e9f87ff..996d30c218 100644
--- a/frontend/src/components/canvas/customComponent/UserView.vue
+++ b/frontend/src/components/canvas/customComponent/UserView.vue
@@ -66,6 +66,7 @@
:terminal-type="scaleCoefficientType"
:scale="scale"
:theme-style="element.commonBackground"
+ :active="this.active"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
@@ -1272,6 +1273,7 @@ export default {
width: 100%;
height: 100%;
overflow: hidden;
+ position: relative;
}
.chart-class {
diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js
index afece4b1fe..1a2bb44af6 100644
--- a/frontend/src/views/chart/chart/chart.js
+++ b/frontend/src/views/chart/chart/chart.js
@@ -507,12 +507,14 @@ export const BASE_BAR = {
},
{
type: 'inside',
+ disabled: true,
xAxisIndex: [0],
start: 0,
end: 100
},
{
type: 'inside',
+ disabled: true,
yAxisIndex: [0],
start: 0,
end: 100
@@ -563,12 +565,14 @@ export const HORIZONTAL_BAR = {
},
{
type: 'inside',
+ disabled: true,
xAxisIndex: [0],
start: 0,
end: 100
},
{
type: 'inside',
+ disabled: true,
yAxisIndex: [0],
start: 0,
end: 100
@@ -621,12 +625,14 @@ export const BASE_LINE = {
},
{
type: 'inside',
+ disabled: true,
xAxisIndex: [0],
start: 0,
end: 100
},
{
type: 'inside',
+ disabled: true,
yAxisIndex: [0],
start: 0,
end: 100
@@ -903,14 +909,10 @@ export const BASE_MAP = {
},
geo: {
map: 'MAP',
- roam: true,
- nameMap: {
-
- },
+ roam: false,
+ nameMap: {},
itemStyle: {
- normal: {
-
- },
+ normal: {},
emphasis: {
label: {
show: false
@@ -926,9 +928,7 @@ export const BASE_MAP = {
roam: true,
data: [],
itemStyle: {
- normal: {
-
- },
+ normal: {},
emphasis: {
label: {
show: false
@@ -984,12 +984,14 @@ export const BASE_SCATTER = {
},
{
type: 'inside',
+ disabled: true,
xAxisIndex: [0],
start: 0,
end: 100
},
{
type: 'inside',
+ disabled: true,
yAxisIndex: [0],
start: 0,
end: 100
@@ -1079,12 +1081,14 @@ export const BASE_MIX = {
},
{
type: 'inside',
+ disabled: true,
xAxisIndex: [0],
start: 0,
end: 100
},
{
type: 'inside',
+ disabled: true,
yAxisIndex: [0],
start: 0,
end: 100
diff --git a/frontend/src/views/chart/components/ChartComponent.vue b/frontend/src/views/chart/components/ChartComponent.vue
index 46c9c1ec02..fbabbf5240 100644
--- a/frontend/src/views/chart/components/ChartComponent.vue
+++ b/frontend/src/views/chart/components/ChartComponent.vue
@@ -65,6 +65,11 @@ export default {
MapController
},
props: {
+ active: {
+ type: Boolean,
+ required: false,
+ default: false
+ },
chart: {
type: Object,
required: true
@@ -121,7 +126,18 @@ export default {
buttonTextColor: null,
loading: true,
showSuspension: true,
- currentSeriesId: null
+ currentSeriesId: null,
+ haveScrollType: [
+ 'map',
+ 'chart-mix',
+ 'bar',
+ 'bar-stack',
+ 'bar-horizontal',
+ 'bar-stack-horizontal',
+ 'line',
+ 'line-stack',
+ 'scatter'
+ ]
}
},
@@ -134,6 +150,11 @@ export default {
])
},
watch: {
+ active: {
+ handler(newVal, oldVla) {
+ this.scrollStatusChange(newVal)
+ }
+ },
currentSeriesId(value, old) {
if (value !== old) {
this.preDraw()
@@ -173,6 +194,31 @@ export default {
this.loadThemeStyle()
},
methods: {
+ scrollStatusChange() {
+ if (this.haveScrollType.includes(this.chart.type)) {
+ const opt = this.myChart.getOption()
+ this.adaptorOpt(opt)
+ this.myChart.setOption(opt)
+ }
+ },
+ adaptorOpt(opt) {
+ const disabledStatus = !this.active
+ if (opt.dataZoom) {
+ opt.dataZoom.forEach(function(s) {
+ if (s.type === 'inside') {
+ s.disabled = disabledStatus
+ }
+ })
+ }
+ //地图
+ if (opt.geo) {
+ if (opt.geo instanceof Array) {
+ opt.geo[0].roam = this.active
+ } else {
+ opt.geo.roam = this.active
+ }
+ }
+ },
changeSeriesId(param) {
const { id, seriesId } = param
if (id !== this.chart.id) {
@@ -391,6 +437,7 @@ export default {
}
},
myEcharts(option) {
+ this.adaptorOpt(option)
// 指定图表的配置项和数据
const chart = this.myChart
this.setBackGroundBorder()
From 70073bba39619fe223648777a9404b02cdf81d7c Mon Sep 17 00:00:00 2001
From: taojinlong
Date: Mon, 9 Jan 2023 17:42:23 +0800
Subject: [PATCH 19/26] =?UTF-8?q?fix:=20=E5=90=AF=E5=8A=A8=E6=97=B6?=
=?UTF-8?q?=EF=BC=8C=E6=B8=85=E7=90=86=E5=BC=95=E6=93=8E=E7=BC=93=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/io/dataease/listener/DataSourceInitStartListener.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java
index bc53c1b879..fed96e7708 100644
--- a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java
+++ b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java
@@ -1,5 +1,6 @@
package io.dataease.listener;
+import io.dataease.listener.util.CacheUtils;
import io.dataease.service.datasource.DatasourceService;
import io.dataease.service.dataset.DataSetTableService;
import io.dataease.service.engine.EngineService;
@@ -25,7 +26,7 @@ public class DataSourceInitStartListener implements ApplicationListener
Date: Mon, 9 Jan 2023 18:05:27 +0800
Subject: [PATCH 20/26] =?UTF-8?q?feat(lic):=20=E5=8D=87=E7=BA=A7=E8=AE=B8?=
=?UTF-8?q?=E5=8F=AF=E9=AA=8C=E8=AF=81=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dataease/commons/license/F2CLicense.java | 62 ++-----------------
frontend/src/lang/en.js | 4 +-
frontend/src/lang/tw.js | 4 +-
frontend/src/lang/zh.js | 4 +-
frontend/src/views/system/about/index.vue | 16 ++++-
5 files changed, 29 insertions(+), 61 deletions(-)
diff --git a/backend/src/main/java/io/dataease/commons/license/F2CLicense.java b/backend/src/main/java/io/dataease/commons/license/F2CLicense.java
index c2d7b5cb39..5b145233c8 100644
--- a/backend/src/main/java/io/dataease/commons/license/F2CLicense.java
+++ b/backend/src/main/java/io/dataease/commons/license/F2CLicense.java
@@ -1,5 +1,8 @@
package io.dataease.commons.license;
+import lombok.Data;
+
+@Data
public class F2CLicense {
private String corporation;
@@ -10,61 +13,6 @@ public class F2CLicense {
private String edition;
private Long count;
- public String getCorporation() {
- return corporation;
- }
-
- public void setCorporation(String corporation) {
- this.corporation = corporation;
- }
-
- public String getExpired() {
- return expired;
- }
-
- public void setExpired(String expired) {
- this.expired = expired;
- }
-
- public String getLicenseVersion() {
- return licenseVersion;
- }
-
- public void setLicenseVersion(String licenseVersion) {
- this.licenseVersion = licenseVersion;
- }
-
- public String getProduct() {
- return product;
- }
-
- public void setProduct(String product) {
- this.product = product;
- }
-
- public Long getGenerateTime() {
- return generateTime;
- }
-
- public void setGenerateTime(Long generateTime) {
- this.generateTime = generateTime;
- }
-
- public String getEdition() {
- return edition;
- }
-
- public void setEdition(String edition) {
- this.edition = edition;
- }
-
- public Long getCount() {
- return count;
- }
-
- public void setCount(Long count) {
- this.count = count;
- }
-
-
+ private String serialNo;
+ private String remark;
}
\ No newline at end of file
diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js
index 3f80dc42c8..0be62dda0c 100644
--- a/frontend/src/lang/en.js
+++ b/frontend/src/lang/en.js
@@ -2426,7 +2426,9 @@ export default {
standard: 'Standard',
enterprise: 'Enterprise',
support: 'Get technical support',
- update_success: 'Update Success'
+ update_success: 'Update Success',
+ serial_no: 'Serial Number',
+ remark: 'Remark'
},
template: {
exit_same_template_check: 'The Same Name Exists In Now Class. Do You Want To Override It?',
diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js
index 3b8b0dc4d0..934ee002fd 100644
--- a/frontend/src/lang/tw.js
+++ b/frontend/src/lang/tw.js
@@ -2420,7 +2420,9 @@ export default {
standard: '標準版',
enterprise: '企業版',
support: '獲取技術支持',
- update_success: '更新成功'
+ update_success: '更新成功',
+ serial_no: '序列號',
+ remark: '備註'
},
template: {
exit_same_template_check: '當前分類存在相同名稱模闆,是否覆蓋?',
diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js
index fc943a5cd9..e82257b21a 100644
--- a/frontend/src/lang/zh.js
+++ b/frontend/src/lang/zh.js
@@ -2420,7 +2420,9 @@ export default {
standard: '标准版',
enterprise: '企业版',
support: '获取技术支持',
- update_success: '更新成功'
+ update_success: '更新成功',
+ serial_no: '序列号',
+ remark: '备注'
},
template: {
exit_same_template_check: '当前分类存在相同名称模板,是否覆盖?',
diff --git a/frontend/src/views/system/about/index.vue b/frontend/src/views/system/about/index.vue
index 68cca784c8..2afacfda47 100644
--- a/frontend/src/views/system/about/index.vue
+++ b/frontend/src/views/system/about/index.vue
@@ -48,6 +48,18 @@
{{ build }}
+
+ | {{ $t('about.serial_no') }} |
+
+ {{ license.serialNo }}
+ |
+
+
+ | {{ $t('about.remark') }} |
+
+ {{ license.remark }}
+ |
+
@@ -137,7 +149,9 @@ export default {
expired: result.license ? result.license.expired : '',
count: result.license ? result.license.count : '',
version: result.license ? result.license.version : '',
- edition: result.license ? result.license.edition : ''
+ edition: result.license ? result.license.edition : '',
+ serialNo: result.license ? result.license.serialNo : '',
+ remark: result.license ? result.license.remark : ''
}
},
importLic(file) {
From 4e42deec05a25b5415a6a0b686244793641a75f6 Mon Sep 17 00:00:00 2001
From: fit2cloud-chenyw