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() {