diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewFieldController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewFieldController.java
index 0f9ae8c9d0..73fdfd3f4d 100644
--- a/backend/src/main/java/io/dataease/controller/chart/ChartViewFieldController.java
+++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewFieldController.java
@@ -53,6 +53,13 @@ public class ChartViewFieldController {
return chartViewFieldService.save(chartViewField);
}
+ @DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANEL_LEVEL_MANAGE)
+ @ApiOperation("保存不校验表达式")
+ @PostMapping("/saveNotCheck/{panelId}")
+ public ChartViewField saveNotCheck(@PathVariable String panelId, @RequestBody ChartViewField chartViewField) {
+ return chartViewFieldService.save(chartViewField);
+ }
+
@DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANEL_LEVEL_MANAGE, paramIndex = 1)
@ApiOperation("删除")
@PostMapping("/delete/{id}/{panelId}")
diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java
index 21d2dc6b19..5f030fb51b 100644
--- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java
+++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java
@@ -172,6 +172,21 @@ public class DataSetTableFieldController {
return dataSetTableFieldsService.save(datasetTableField);
}
+ @DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
+ @ApiOperation("保存不校验表达式")
+ @PostMapping("saveNotCheck")
+ public DatasetTableField saveNotCheck(@RequestBody DatasetTableField datasetTableField) throws Exception {
+ dataSetTableFieldsService.checkFieldName(datasetTableField);
+ // 非直连数据集需先完成数据同步
+ DatasetTable datasetTable = dataSetTableService.get(datasetTableField.getTableId());
+ if (datasetTable.getMode() == 1) {
+ if (!dataSetTableService.checkEngineTableIsExists(datasetTableField.getTableId())) {
+ throw new RuntimeException(Translator.get("i18n_data_not_sync"));
+ }
+ }
+ return dataSetTableFieldsService.save(datasetTableField);
+ }
+
@DePermissions(value = {
@DePermission(type = DePermissionType.DATASET, level = ResourceAuthLevel.DATASET_LEVEL_MANAGE, paramIndex = 1)
})
diff --git a/frontend/src/views/chart/view/ChartFieldEdit.vue b/frontend/src/views/chart/view/ChartFieldEdit.vue
index 08241334af..e67398fea6 100644
--- a/frontend/src/views/chart/view/ChartFieldEdit.vue
+++ b/frontend/src/views/chart/view/ChartFieldEdit.vue
@@ -48,8 +48,8 @@
@@ -284,8 +284,8 @@
@@ -604,13 +604,18 @@ export default {
this.filterField(this.searchField)
})
},
- saveEdit(item) {
+ saveEdit(item, checkExp = true) {
if (item.name && item.name.length > 50) {
this.$message.error(this.$t('dataset.field_name_less_50'))
return
}
-
- post('/chart/field/save/' + this.panelInfo.id, item).then(response => {
+ let url
+ if (checkExp) {
+ url = '/chart/field/save/'
+ } else {
+ url = '/chart/field/saveNotCheck/'
+ }
+ post(url + this.panelInfo.id, item).then(response => {
this.initField()
}).catch(res => {
this.initField()
@@ -623,7 +628,7 @@ export default {
} else if (val === 'q') {
item.groupType = 'd'
}
- this.saveEdit(item)
+ this.saveEdit(item, false)
},
addCalcField() {
diff --git a/frontend/src/views/dataset/data/FieldEdit.vue b/frontend/src/views/dataset/data/FieldEdit.vue
index 5ebbb78064..e7f0500671 100644
--- a/frontend/src/views/dataset/data/FieldEdit.vue
+++ b/frontend/src/views/dataset/data/FieldEdit.vue
@@ -88,8 +88,8 @@
v-model="scope.row.name"
size="mini"
:disabled="!hasDataPermission('manage', param.privileges)"
- @blur="saveEdit(scope.row)"
- @keyup.enter.native="saveEdit(scope.row)"
+ @blur="saveEdit(scope.row,false)"
+ @keyup.enter.native="saveEdit(scope.row,false)"
/>
@@ -427,8 +427,8 @@
v-model="scope.row.name"
size="mini"
:disabled="!hasDataPermission('manage', param.privileges)"
- @blur="saveEdit(scope.row)"
- @keyup.enter.native="saveEdit(scope.row)"
+ @blur="saveEdit(scope.row,false)"
+ @keyup.enter.native="saveEdit(scope.row,false)"
/>
@@ -850,7 +850,7 @@ export default {
]
}
},
- saveEdit(item) {
+ saveEdit(item, checkExp = true) {
if (item.name && item.name.length > 50) {
this.$message.error(this.$t('dataset.field_name_less_50'))
return
@@ -868,7 +868,13 @@ export default {
if (item.dateFormatType === 'custom' && !item.dateFormat) {
return
}
- post('/dataset/field/save', item)
+ let url
+ if (checkExp) {
+ url = '/dataset/field/save'
+ } else {
+ url = '/dataset/field/saveNotCheck'
+ }
+ post(url, item)
.then((response) => {
this.initField()
localStorage.setItem('reloadDsData', 'true')
@@ -885,7 +891,7 @@ export default {
} else if (val === 'q') {
item.groupType = 'd'
}
- this.saveEdit(item)
+ this.saveEdit(item, false)
},
addCalcField() {