forked from github/dataease
feat(fix):直连数据集限制预览数目;数据源文字替换
This commit is contained in:
parent
07f520698c
commit
c084ac68cf
@ -68,7 +68,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createSQLPreview(String sql, String orderBy) {
|
||||
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY " + orderBy + " LIMIT 0,1000";
|
||||
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000";
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -102,7 +102,8 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
return stringBuilder.toString();
|
||||
}).toArray(String[]::new);
|
||||
|
||||
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table);
|
||||
// return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table);
|
||||
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -271,8 +271,9 @@ public class DataSetTableService {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
datasourceRequest.setQuery(qp.createQueryCountSQL(table));
|
||||
dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0]));
|
||||
// datasourceRequest.setQuery(qp.createQueryCountSQL(table));
|
||||
// dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0]));
|
||||
dataSetPreviewPage.setTotal(Integer.parseInt(dataSetTableRequest.getRow()));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -294,8 +295,9 @@ public class DataSetTableService {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
datasourceRequest.setQuery(qp.createQueryCountSQLAsTmp(sql));
|
||||
dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0]));
|
||||
// datasourceRequest.setQuery(qp.createQueryCountSQLAsTmp(sql));
|
||||
// dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0]));
|
||||
dataSetPreviewPage.setTotal(Integer.parseInt(dataSetTableRequest.getRow()));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -383,15 +385,16 @@ public class DataSetTableService {
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDatasource(ds);
|
||||
String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql();
|
||||
// 使用输入的sql先预执行一次,并拿到所有字段
|
||||
|
||||
if (StringUtils.isEmpty(sql)) {
|
||||
throw new Exception(Translator.get("i18n_sql_not_empty"));
|
||||
}
|
||||
datasourceRequest.setQuery(sql);
|
||||
List<TableFiled> previewFields = datasourceProvider.fetchResultField(datasourceRequest);
|
||||
// 正式执行
|
||||
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
|
||||
datasourceRequest.setQuery(qp.createSQLPreview(sql, previewFields.get(0).getFieldName()));
|
||||
String sqlAsTable = qp.createSQLPreview(sql, null);
|
||||
// datasourceRequest.setQuery(sqlAsTable);
|
||||
// List<TableFiled> previewFields = datasourceProvider.fetchResultField(datasourceRequest);
|
||||
// 正式执行
|
||||
datasourceRequest.setQuery(sqlAsTable);
|
||||
Map<String, List> result = datasourceProvider.fetchResultAndField(datasourceRequest);
|
||||
List<String[]> data = result.get("dataList");
|
||||
List<TableFiled> fields = result.get("fieldList");
|
||||
@ -545,7 +548,9 @@ public class DataSetTableService {
|
||||
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDatasource(ds);
|
||||
datasourceRequest.setQuery(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql());
|
||||
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
|
||||
String sqlAsTable = qp.createSQLPreview(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql(), null);
|
||||
datasourceRequest.setQuery(sqlAsTable);
|
||||
fields = datasourceProvider.fetchResultField(datasourceRequest);
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) {
|
||||
DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class);
|
||||
|
@ -808,7 +808,7 @@ export default {
|
||||
preview_show: 'Display',
|
||||
preview_item: 'items data',
|
||||
preview_total: 'Total',
|
||||
pls_input_less_9: 'Please input integer less 9',
|
||||
pls_input_less_5: 'Please input integer less 5',
|
||||
field_edit: 'Edit Field',
|
||||
table_already_add_to: 'This table is already add to',
|
||||
uploading: 'Uploading...',
|
||||
|
@ -808,7 +808,7 @@ export default {
|
||||
preview_show: '顯示',
|
||||
preview_item: '條數據',
|
||||
preview_total: '共',
|
||||
pls_input_less_9: '請輸入9位以內的正整數',
|
||||
pls_input_less_5: '請輸入5位以內的正整數',
|
||||
field_edit: '編輯字段',
|
||||
table_already_add_to: '該表已添加至',
|
||||
uploading: '上傳中...',
|
||||
|
@ -808,7 +808,7 @@ export default {
|
||||
preview_show: '显示',
|
||||
preview_item: '条数据',
|
||||
preview_total: '共',
|
||||
pls_input_less_9: '请输入9位以内的正整数',
|
||||
pls_input_less_5: '请输入5位以内的正整数',
|
||||
field_edit: '编辑字段',
|
||||
table_already_add_to: '该表已添加至',
|
||||
uploading: '上传中...',
|
||||
|
@ -6,7 +6,7 @@
|
||||
<el-form-item>
|
||||
<span style="width: 100px;">{{ $t('dataset.showRow') }}</span>
|
||||
<el-input v-model="form.row">
|
||||
<el-button size="mini" slot="append" icon="el-icon-search" @click="reSearch" />
|
||||
<el-button slot="append" size="mini" icon="el-icon-search" @click="reSearch" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -36,7 +36,7 @@
|
||||
</ux-table-column>
|
||||
</ux-grid>
|
||||
<el-row style="margin-top: 4px;">
|
||||
<span class="table-count">
|
||||
<span v-if="table.type === 'excel' || table.type === 'custom'" class="table-count">
|
||||
<span v-if="page.total <= currentPage.show">
|
||||
{{ $t('dataset.preview_total') }}
|
||||
<span class="span-number">{{ page.total }}</span>
|
||||
@ -51,6 +51,11 @@
|
||||
{{ $t('dataset.preview_item') }}
|
||||
</span>
|
||||
</span>
|
||||
<span v-if="table.type === 'db' || table.type === 'sql'" class="table-count">
|
||||
{{ $t('dataset.preview_show') }}
|
||||
<span class="span-number">{{ page.total }}</span>
|
||||
{{ $t('dataset.preview_item') }}
|
||||
</span>
|
||||
<el-pagination
|
||||
:current-page="currentPage.page"
|
||||
:page-sizes="[100]"
|
||||
@ -129,9 +134,9 @@ export default {
|
||||
}, 10)
|
||||
},
|
||||
reSearch() {
|
||||
if (!this.form.row || this.form.row === '' || this.form.row.length > 8 || isNaN(Number(this.form.row)) || String(this.form.row).includes('.')) {
|
||||
if (!this.form.row || this.form.row === '' || this.form.row.length > 4 || isNaN(Number(this.form.row)) || String(this.form.row).includes('.')) {
|
||||
this.$message({
|
||||
message: this.$t('dataset.pls_input_less_9'),
|
||||
message: this.$t('dataset.pls_input_less_5'),
|
||||
type: 'error',
|
||||
showClose: true
|
||||
})
|
||||
|
@ -13,7 +13,7 @@
|
||||
<el-option
|
||||
v-for="item in allTypes"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:label="item.label"
|
||||
:value="item.name"
|
||||
/>
|
||||
</el-select>
|
||||
@ -65,7 +65,8 @@ export default {
|
||||
'configuration.host': [{ required: true, message: this.$t('datasource.please_input_host'), trigger: 'change' }],
|
||||
'configuration.port': [{ required: true, message: this.$t('datasource.please_input_port'), trigger: 'change' }]
|
||||
},
|
||||
allTypes: [{ name: 'mysql', type: 'jdbc' }, { name: 'sqlServer', type: 'jdbc' }]
|
||||
allTypes: [{ name: 'mysql', label: 'MySQL', type: 'jdbc' },
|
||||
{ name: 'sqlServer', label: 'SQL Server', type: 'jdbc' }]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -18,7 +18,12 @@
|
||||
<!-- <el-table-column type="selection" fix /> -->
|
||||
<el-table-column prop="name" :label="$t('commons.name')" />
|
||||
<el-table-column prop="desc" :label="$t('commons.description')" />
|
||||
<el-table-column prop="type" :label="$t('datasource.type')" />
|
||||
<el-table-column prop="type" :label="$t('datasource.type')">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.type ==='mysql'">MySQL</span>
|
||||
<span v-if="scope.row.type ==='sqlserver'">SQL Server</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
|
||||
|
||||
</complex-table>
|
||||
|
Loading…
Reference in New Issue
Block a user