提交 6e9cee5a authored 作者: wangjiahao's avatar wangjiahao

Merge remote-tracking branch 'origin/dev' into dev

...@@ -2,6 +2,8 @@ package io.dataease.controller.panel.api; ...@@ -2,6 +2,8 @@ package io.dataease.controller.panel.api;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.chart.ChartExtRequest;
import io.dataease.controller.request.panel.link.*; import io.dataease.controller.request.panel.link.*;
import io.dataease.dto.panel.link.GenerateDto; import io.dataease.dto.panel.link.GenerateDto;
...@@ -18,26 +20,32 @@ import java.util.Map; ...@@ -18,26 +20,32 @@ import java.util.Map;
public interface LinkApi { public interface LinkApi {
@DePermission(type = DePermissionType.PANEL, value = "resourceId")
@ApiOperation("重置密码") @ApiOperation("重置密码")
@PostMapping("/resetPwd") @PostMapping("/resetPwd")
void replacePwd(PasswordRequest request); void replacePwd(PasswordRequest request);
@DePermission(type = DePermissionType.PANEL, value = "resourceId")
@ApiOperation("启用密码") @ApiOperation("启用密码")
@PostMapping("/enablePwd") @PostMapping("/enablePwd")
void enablePwd(EnablePwdRequest request); void enablePwd(EnablePwdRequest request);
@DePermission(type = DePermissionType.PANEL, value = "resourceId")
@ApiOperation("过期时间") @ApiOperation("过期时间")
@PostMapping("/resetOverTime") @PostMapping("/resetOverTime")
void resetOverTime(OverTimeRequest request); void resetOverTime(OverTimeRequest request);
@DePermission(type = DePermissionType.PANEL, value = "resourceId")
@ApiOperation("启用/禁用链接分享") @ApiOperation("启用/禁用链接分享")
@PostMapping("/switchLink") @PostMapping("/switchLink")
void switchLink(LinkRequest request); void switchLink(LinkRequest request);
@DePermission(type = DePermissionType.PANEL)
@ApiOperation("当前链接信息") @ApiOperation("当前链接信息")
@PostMapping("/currentGenerate/{resourceId}") @PostMapping("/currentGenerate/{resourceId}")
GenerateDto currentGenerate(String resourceId); GenerateDto currentGenerate(String resourceId);
@ApiOperation("验证访问") @ApiOperation("验证访问")
@PostMapping("/validate") @PostMapping("/validate")
ValidateDto validate(LinkValidateRequest request) throws Exception; ValidateDto validate(LinkValidateRequest request) throws Exception;
......
package io.dataease.controller.panel.api; package io.dataease.controller.panel.api;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.base.domain.PanelShare; import io.dataease.base.domain.PanelShare;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.controller.request.panel.PanelShareFineDto; import io.dataease.controller.request.panel.PanelShareFineDto;
import io.dataease.controller.request.panel.PanelShareRemoveRequest; import io.dataease.controller.request.panel.PanelShareRemoveRequest;
import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.base.BaseGridRequest;
...@@ -47,6 +49,7 @@ public interface ShareApi { ...@@ -47,6 +49,7 @@ public interface ShareApi {
List<PanelShareOutDTO> queryTargets(@PathVariable("panelId") String panelId); List<PanelShareOutDTO> queryTargets(@PathVariable("panelId") String panelId);
@DePermission(type = DePermissionType.PANEL, value = "resourceId")
@ApiOperation("创建分享") @ApiOperation("创建分享")
@PostMapping("/fineSave") @PostMapping("/fineSave")
void fineSave(PanelShareFineDto panelShareFineDto); void fineSave(PanelShareFineDto panelShareFineDto);
......
package io.dataease.controller.panel.api; package io.dataease.controller.panel.api;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.dto.panel.PanelStoreDto; import io.dataease.dto.panel.PanelStoreDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -21,6 +23,7 @@ import java.util.List; ...@@ -21,6 +23,7 @@ import java.util.List;
@RequestMapping("/api/store") @RequestMapping("/api/store")
public interface StoreApi { public interface StoreApi {
@DePermission(type = DePermissionType.PANEL)
@ApiOperation("创建收藏") @ApiOperation("创建收藏")
@PostMapping("/{id}") @PostMapping("/{id}")
void store(@PathVariable("id") String id); void store(@PathVariable("id") String id);
......
...@@ -185,7 +185,7 @@ public class ApiProvider extends DatasourceProvider{ ...@@ -185,7 +185,7 @@ public class ApiProvider extends DatasourceProvider{
int i = 0; int i = 0;
while (it.hasNext()){ while (it.hasNext()){
Map.Entry entry = (Map.Entry)it.next(); Map.Entry entry = (Map.Entry)it.next();
row[i] = Optional.ofNullable(entry.getValue()).orElse("").toString(); row[i] = Optional.ofNullable(entry.getValue()).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " ");
i++; i++;
} }
dataList.add(row); dataList.add(row);
......
...@@ -367,7 +367,6 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -367,7 +367,6 @@ public class JdbcProvider extends DatasourceProvider {
try (Connection con = getConnection(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr)) { try (Connection con = getConnection(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr)) {
return "Success"; return "Success";
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
DataEaseException.throwException(e.getMessage()); DataEaseException.throwException(e.getMessage());
} }
return "Error"; return "Error";
......
package io.dataease.service.dataset; package io.dataease.service.dataset;
import com.google.gson.Gson; import com.google.gson.Gson;
import io.dataease.auth.annotation.DeCleaner;
import io.dataease.base.domain.*; import io.dataease.base.domain.*;
import io.dataease.base.mapper.*; import io.dataease.base.mapper.*;
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper; import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
...@@ -103,6 +104,7 @@ public class DataSetTableService { ...@@ -103,6 +104,7 @@ public class DataSetTableService {
private static Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class); private static Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class);
@DeCleaner(value = DePermissionType.DATASET)
public void batchInsert(List<DataSetTableRequest> datasetTable) throws Exception { public void batchInsert(List<DataSetTableRequest> datasetTable) throws Exception {
for (DataSetTableRequest table : datasetTable) { for (DataSetTableRequest table : datasetTable) {
save(table); save(table);
...@@ -126,6 +128,7 @@ public class DataSetTableService { ...@@ -126,6 +128,7 @@ public class DataSetTableService {
} }
} }
@DeCleaner(value = DePermissionType.DATASET)
public void saveExcel(DataSetTableRequest datasetTable) throws Exception { public void saveExcel(DataSetTableRequest datasetTable) throws Exception {
List<String> datasetIdList = new ArrayList<>(); List<String> datasetIdList = new ArrayList<>();
...@@ -233,6 +236,7 @@ public class DataSetTableService { ...@@ -233,6 +236,7 @@ public class DataSetTableService {
} }
} }
@DeCleaner(value = DePermissionType.DATASET)
public DatasetTable save(DataSetTableRequest datasetTable) throws Exception { public DatasetTable save(DataSetTableRequest datasetTable) throws Exception {
checkName(datasetTable); checkName(datasetTable);
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) { if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) {
...@@ -1795,6 +1799,7 @@ public class DataSetTableService { ...@@ -1795,6 +1799,7 @@ public class DataSetTableService {
return dataSetDetail; return dataSetDetail;
} }
@DeCleaner(value = DePermissionType.DATASET)
public ExcelFileData excelSaveAndParse(MultipartFile file, String tableId, Integer editType) throws Exception { public ExcelFileData excelSaveAndParse(MultipartFile file, String tableId, Integer editType) throws Exception {
String filename = file.getOriginalFilename(); String filename = file.getOriginalFilename();
// parse file // parse file
......
...@@ -467,6 +467,10 @@ public class ExtractDataService { ...@@ -467,6 +467,10 @@ public class ExtractDataService {
while ((line = input.readLine()) != null) { while ((line = input.readLine()) != null) {
errMsg = errMsg + line + System.getProperty("line.separator"); errMsg = errMsg + line + System.getProperty("line.separator");
} }
input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = input.readLine()) != null) {
errMsg = errMsg + line + System.getProperty("line.separator");
}
throw new Exception(errMsg); throw new Exception(errMsg);
} }
}catch (Exception e){ }catch (Exception e){
......
...@@ -161,7 +161,16 @@ public class DatasourceService { ...@@ -161,7 +161,16 @@ public class DatasourceService {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource); datasourceRequest.setDatasource(datasource);
datasourceProvider.checkStatus(datasourceRequest); String status = datasourceProvider.checkStatus(datasourceRequest);
if (status.equalsIgnoreCase("Success")) {
return ResultHolder.success("Success");
}
if (status.equalsIgnoreCase("Warning")) {
return ResultHolder.error("Datasource has invalid items");
}
if (status.equalsIgnoreCase("Error")) {
return ResultHolder.error("Datasource is invalid");
}
return ResultHolder.success("Success"); return ResultHolder.success("Success");
}catch (Exception e){ }catch (Exception e){
return ResultHolder.error("Datasource is invalid: " + e.getMessage()); return ResultHolder.error("Datasource is invalid: " + e.getMessage());
...@@ -178,8 +187,17 @@ public class DatasourceService { ...@@ -178,8 +187,17 @@ public class DatasourceService {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource); datasourceRequest.setDatasource(datasource);
datasourceProvider.checkStatus(datasourceRequest); String status = datasourceProvider.checkStatus(datasourceRequest);
datasource.setStatus("Success"); datasource.setStatus(status);
if (status.equalsIgnoreCase("Success")) {
return ResultHolder.success("Success");
}
if (status.equalsIgnoreCase("Warning")) {
return ResultHolder.error("Datasource has invalid items");
}
if (status.equalsIgnoreCase("Error")) {
return ResultHolder.error("Datasource is invalid");
}
return ResultHolder.success("Success"); return ResultHolder.success("Success");
}catch (Exception e){ }catch (Exception e){
datasource.setStatus("Error"); datasource.setStatus("Error");
...@@ -206,7 +224,8 @@ public class DatasourceService { ...@@ -206,7 +224,8 @@ public class DatasourceService {
// 获取当前数据源下的db类型数据集 // 获取当前数据源下的db类型数据集
DatasetTableExample datasetTableExample = new DatasetTableExample(); DatasetTableExample datasetTableExample = new DatasetTableExample();
datasetTableExample.createCriteria().andTypeEqualTo("db").andDataSourceIdEqualTo(datasource.getId());
datasetTableExample.createCriteria().andTypeIn(Arrays.asList("db","api")).andDataSourceIdEqualTo(datasource.getId());
List<DatasetTable> datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample); List<DatasetTable> datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample);
List<DBTableDTO> list = new ArrayList<>(); List<DBTableDTO> list = new ArrayList<>();
for (TableDesc tableDesc : tables) { for (TableDesc tableDesc : tables) {
...@@ -256,6 +275,7 @@ public class DatasourceService { ...@@ -256,6 +275,7 @@ public class DatasourceService {
DatasourceExample example = new DatasourceExample(); DatasourceExample example = new DatasourceExample();
DatasourceExample.Criteria criteria = example.createCriteria(); DatasourceExample.Criteria criteria = example.createCriteria();
criteria.andNameEqualTo(datasource.getName()); criteria.andNameEqualTo(datasource.getName());
criteria.andTypeEqualTo(datasource.getType());
if (StringUtils.isNotEmpty(datasource.getId())) { if (StringUtils.isNotEmpty(datasource.getId())) {
criteria.andIdNotEqualTo(datasource.getId()); criteria.andIdNotEqualTo(datasource.getId());
} }
...@@ -271,8 +291,16 @@ public class DatasourceService { ...@@ -271,8 +291,16 @@ public class DatasourceService {
public ApiDefinition checkApiDatasource(ApiDefinition apiDefinition) throws Exception { public ApiDefinition checkApiDatasource(ApiDefinition apiDefinition) throws Exception {
String response = ApiProvider.execHttpRequest(apiDefinition); String response = ApiProvider.execHttpRequest(apiDefinition);
if(StringUtils.isEmpty(response)){
throw new Exception("该请求返回数据为空");
}
List<LinkedHashMap> datas = new ArrayList<>();
try {
datas = JsonPath.read(response,apiDefinition.getDataPath());
}catch (Exception e){
throw new Exception("jsonPath 路径错误:" + e.getMessage());
}
List<LinkedHashMap> datas = JsonPath.read(response,apiDefinition.getDataPath());
List<JSONObject> dataList = new ArrayList<>(); List<JSONObject> dataList = new ArrayList<>();
List<DatasetTableField> fields = new ArrayList<>(); List<DatasetTableField> fields = new ArrayList<>();
Boolean getFileds = true; Boolean getFileds = true;
...@@ -282,7 +310,7 @@ public class DatasourceService { ...@@ -282,7 +310,7 @@ public class DatasourceService {
Iterator it = data.entrySet().iterator(); Iterator it = data.entrySet().iterator();
while (it.hasNext()){ while (it.hasNext()){
Map.Entry entry = (Map.Entry)it.next(); Map.Entry entry = (Map.Entry)it.next();
jsonObject.put((String) entry.getKey(), entry.getValue()); jsonObject.put((String) entry.getKey(), Optional.ofNullable(entry.getValue()).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " "));
if(getFileds) { if(getFileds) {
DatasetTableField tableField = new DatasetTableField(); DatasetTableField tableField = new DatasetTableField();
tableField.setOriginName((String) entry.getKey()); tableField.setOriginName((String) entry.getKey());
......
...@@ -1310,7 +1310,7 @@ export default { ...@@ -1310,7 +1310,7 @@ export default {
port_no_less_then_0: 'Port cannot be less than zero', port_no_less_then_0: 'Port cannot be less than zero',
priority: 'Advanced setting', priority: 'Advanced setting',
extra_params: 'Extra JDBC connection string', extra_params: 'Extra JDBC connection string',
please_input_dataPath: '请输入 JsonPath 数据路径', please_input_dataPath: 'Please enter the JsonPath data path',
warning: 'Contains invalid datasets', warning: 'Contains invalid datasets',
data_table: 'Dataset Table', data_table: 'Dataset Table',
data_table_name: 'Dataset Table name', data_table_name: 'Dataset Table name',
......
...@@ -1584,6 +1584,10 @@ export default { ...@@ -1584,6 +1584,10 @@ export default {
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {} this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {} this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {} this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
// 将视图传入echart组件
this.chart = response.data
this.data = response.data.data
}).catch(err => { }).catch(err => {
this.httpRequest.status = err.response.data.success this.httpRequest.status = err.response.data.success
this.httpRequest.msg = err.response.data.message this.httpRequest.msg = err.response.data.message
......
...@@ -125,7 +125,7 @@ export default { ...@@ -125,7 +125,7 @@ export default {
methods: { methods: {
initDataSource() { initDataSource() {
listDatasource().then(response => { listDatasource().then(response => {
this.options = response.data this.options = response.data.filter(item => item.type !== 'api')
}) })
}, },
kettleState() { kettleState() {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-row> <el-row>
<el-row style="height: 26px;" class="title-text"> <el-row style="height: 26px;" class="title-text">
<span style="line-height: 26px;"> <span style="line-height: 26px;">
{{ param.tableId?$t('dataset.edit_sql'):$t('dataset.add_sql_table') }} {{ param.tableId ? $t('dataset.edit_sql') : $t('dataset.add_sql_table') }}
</span> </span>
<el-row style="float: right"> <el-row style="float: right">
<el-button size="mini" @click="cancel"> <el-button size="mini" @click="cancel">
...@@ -14,11 +14,12 @@ ...@@ -14,11 +14,12 @@
</el-button> </el-button>
</el-row> </el-row>
</el-row> </el-row>
<el-divider /> <el-divider/>
<el-row> <el-row>
<el-form :inline="true"> <el-form :inline="true">
<el-form-item class="form-item"> <el-form-item class="form-item">
<el-select v-model="dataSource" filterable :placeholder="$t('dataset.pls_slc_data_source')" size="mini" @change="changeDatasource()"> <el-select v-model="dataSource" filterable :placeholder="$t('dataset.pls_slc_data_source')" size="mini"
@change="changeDatasource()">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.id" :key="item.id"
...@@ -28,19 +29,20 @@ ...@@ -28,19 +29,20 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="form-item"> <el-form-item class="form-item">
<el-input v-model="name" size="mini" :placeholder="$t('commons.name')" /> <el-input v-model="name" size="mini" :placeholder="$t('commons.name')"/>
</el-form-item> </el-form-item>
<el-form-item v-if="!param.tableId" class="form-item"> <el-form-item v-if="!param.tableId" class="form-item">
<el-select v-model="mode" filterable :placeholder="$t('dataset.connect_mode')" size="mini"> <el-select v-model="mode" filterable :placeholder="$t('dataset.connect_mode')" size="mini">
<el-option :label="$t('dataset.direct_connect')" value="0" /> <el-option :label="$t('dataset.direct_connect')" value="0"/>
<el-option :label="$t('dataset.sync_data')" value="1" :disabled="!kettleRunning || selectedDatasource.type==='es' || selectedDatasource.type==='ck'|| selectedDatasource.type==='mongo'|| selectedDatasource.type==='redshift' || selectedDatasource.type==='hive'" /> <el-option :label="$t('dataset.sync_data')" value="1"
:disabled="!kettleRunning || selectedDatasource.type==='es' || selectedDatasource.type==='ck'|| selectedDatasource.type==='mongo'|| selectedDatasource.type==='redshift' || selectedDatasource.type==='hive'"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="mode === '1'" class="form-item"> <el-form-item v-if="mode === '1'" class="form-item">
<el-select v-model="syncType" filterable :placeholder="$t('dataset.connect_mode')" size="mini"> <el-select v-model="syncType" filterable :placeholder="$t('dataset.connect_mode')" size="mini">
<el-option :label="$t('dataset.sync_now')" value="sync_now" /> <el-option :label="$t('dataset.sync_now')" value="sync_now"/>
<el-option :label="$t('dataset.sync_latter')" value="sync_latter" /> <el-option :label="$t('dataset.sync_latter')" value="sync_latter"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -62,7 +64,9 @@ ...@@ -62,7 +64,9 @@
<el-card class="box-card dataPreview" shadow="never"> <el-card class="box-card dataPreview" shadow="never">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>{{ $t('dataset.data_preview') }}</span> <span>{{ $t('dataset.data_preview') }}</span>
<el-button style="float: right; padding: 3px 0" type="text" size="mini" @click="getSQLPreview">{{ $t('dataset.preview') }}</el-button> <el-button style="float: right; padding: 3px 0" type="text" size="mini" @click="getSQLPreview">
{{ $t('dataset.preview') }}
</el-button>
</div> </div>
<div class="text item"> <div class="text item">
<ux-grid <ux-grid
...@@ -95,9 +99,9 @@ ...@@ -95,9 +99,9 @@
</template> </template>
<script> <script>
import { post, listDatasource, isKettleRunning } from '@/api/dataset/dataset' import {post, listDatasource, isKettleRunning} from '@/api/dataset/dataset'
import { codemirror } from 'vue-codemirror' import {codemirror} from 'vue-codemirror'
import { getTable } from '@/api/dataset/dataset' import {getTable} from '@/api/dataset/dataset'
// 核心样式 // 核心样式
import 'codemirror/lib/codemirror.css' import 'codemirror/lib/codemirror.css'
// 引入主题后还需要在 options 中指定主题才会生效 // 引入主题后还需要在 options 中指定主题才会生效
...@@ -123,7 +127,7 @@ import 'codemirror/addon/hint/show-hint' ...@@ -123,7 +127,7 @@ import 'codemirror/addon/hint/show-hint'
export default { export default {
name: 'AddSQL', name: 'AddSQL',
components: { codemirror }, components: {codemirror},
props: { props: {
param: { param: {
type: Object, type: Object,
...@@ -163,7 +167,7 @@ export default { ...@@ -163,7 +167,7 @@ export default {
}, },
watch: { watch: {
'param.tableId': { 'param.tableId': {
handler: function() { handler: function () {
this.resetComponent() this.resetComponent()
this.initTableInfo() this.initTableInfo()
} }
...@@ -199,14 +203,14 @@ export default { ...@@ -199,14 +203,14 @@ export default {
}, },
calHeight() { calHeight() {
const that = this const that = this
setTimeout(function() { setTimeout(function () {
const currentHeight = document.documentElement.clientHeight const currentHeight = document.documentElement.clientHeight
that.height = currentHeight - 56 - 30 - 26 - 25 - 43 - 160 - 10 - 37 - 20 - 10 - 16 that.height = currentHeight - 56 - 30 - 26 - 25 - 43 - 160 - 10 - 37 - 20 - 10 - 16
}, 10) }, 10)
}, },
initDataSource() { initDataSource() {
listDatasource().then(response => { listDatasource().then(response => {
this.options = response.data this.options = response.data.filter(item => item.type !== 'api')
}) })
}, },
...@@ -237,7 +241,7 @@ export default { ...@@ -237,7 +241,7 @@ export default {
dataSourceId: this.dataSource, dataSourceId: this.dataSource,
type: 'sql', type: 'sql',
// info: '{"sql":"' + this.sql + '"}', // info: '{"sql":"' + this.sql + '"}',
info: JSON.stringify({ sql: this.sql.trim() }) info: JSON.stringify({sql: this.sql.trim()})
}).then(response => { }).then(response => {
this.fields = response.data.fields this.fields = response.data.fields
this.data = response.data.data this.data = response.data.data
...@@ -280,7 +284,7 @@ export default { ...@@ -280,7 +284,7 @@ export default {
syncType: this.syncType, syncType: this.syncType,
mode: parseInt(this.mode), mode: parseInt(this.mode),
// info: '{"sql":"' + this.sql + '"}', // info: '{"sql":"' + this.sql + '"}',
info: JSON.stringify({ sql: this.sql.trim() }) info: JSON.stringify({sql: this.sql.trim()})
} }
post('/dataset/table/update', table).then(response => { post('/dataset/table/update', table).then(response => {
// this.$store.dispatch('dataset/setSceneData', new Date().getTime()) // this.$store.dispatch('dataset/setSceneData', new Date().getTime())
...@@ -292,9 +296,9 @@ export default { ...@@ -292,9 +296,9 @@ export default {
cancel() { cancel() {
// this.dataReset() // this.dataReset()
if (this.param.tableId) { if (this.param.tableId) {
this.$emit('switchComponent', { name: 'ViewTable', param: this.param.table }) this.$emit('switchComponent', {name: 'ViewTable', param: this.param.table})
} else { } else {
this.$emit('switchComponent', { name: '' }) this.$emit('switchComponent', {name: ''})
} }
}, },
...@@ -327,48 +331,51 @@ export default { ...@@ -327,48 +331,51 @@ export default {
</script> </script>
<style scoped> <style scoped>
.el-divider--horizontal { .el-divider--horizontal {
margin: 12px 0; margin: 12px 0;
} }
.form-item { .form-item {
margin-bottom: 6px; margin-bottom: 6px;
} }
.el-checkbox { .el-checkbox {
margin-bottom: 14px; margin-bottom: 14px;
margin-left: 0; margin-left: 0;
margin-right: 14px; margin-right: 14px;
} }
.el-checkbox.is-bordered + .el-checkbox.is-bordered { .el-checkbox.is-bordered + .el-checkbox.is-bordered {
margin-left: 0; margin-left: 0;
} }
.codemirror { .codemirror {
height: 160px; height: 160px;
overflow-y: auto; overflow-y: auto;
} }
.codemirror >>> .CodeMirror-scroll {
.codemirror >>> .CodeMirror-scroll {
height: 160px; height: 160px;
overflow-y: auto; overflow-y: auto;
} }
.dataPreview>>>.el-card__header{ .dataPreview >>> .el-card__header {
padding: 6px 8px; padding: 6px 8px;
} }
.dataPreview>>>.el-card__body{ .dataPreview >>> .el-card__body {
padding:10px; padding: 10px;
} }
span{ span {
font-size: 14px; font-size: 14px;
} }
.span-number{
.span-number {
color: #0a7be0; color: #0a7be0;
} }
.table-count{
.table-count {
color: #606266; color: #606266;
} }
</style> </style>
...@@ -369,14 +369,14 @@ export default { ...@@ -369,14 +369,14 @@ export default {
<style scoped> <style scoped>
.ms-query { .ms-query {
background: #783887; background: #409EFF;
color: white; color: white;
height: 18px; height: 18px;
border-radius: 42%; border-radius: 42%;
} }
.ms-header { .ms-header {
background: #783887; background: #409EFF;
color: white; color: white;
height: 18px; height: 18px;
border-radius: 42%; border-radius: 42%;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<div class="kv-row item" v-for="(item, index) in items" :key="index"> <div class="kv-row item" v-for="(item, index) in items" :key="index">
<el-row type="flex" :gutter="20" justify="space-between" align="middle"> <el-row type="flex" :gutter="20" justify="space-between" align="middle">
<span style="margin-left: 10px"></span>
<i class="el-icon-top" style="cursor:pointer" @click="moveTop(index)"/> <i class="el-icon-top" style="cursor:pointer" @click="moveTop(index)"/>
<i class="el-icon-bottom" style="cursor:pointer;" @click="moveBottom(index)"/> <i class="el-icon-bottom" style="cursor:pointer;" @click="moveBottom(index)"/>
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
:default-expanded-keys="expandedArray" :default-expanded-keys="expandedArray"
:data="tData" :data="tData"
node-key="id" node-key="id"
default-expand-all
:expand-on-click-node="true" :expand-on-click-node="true"
:filter-node-method="filterNode" :filter-node-method="filterNode"
@node-click="nodeClick" @node-click="nodeClick"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论