mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 09:36:01 +00:00
load field values logic moved to backend
This commit is contained in:
@@ -34,64 +34,16 @@
|
||||
let checkedKeys = [];
|
||||
|
||||
async function reload() {
|
||||
const dmp = driver.createDumper();
|
||||
const select = {
|
||||
commandType: 'select',
|
||||
distinct: true,
|
||||
topRecords: 100,
|
||||
|
||||
from: {
|
||||
name: {
|
||||
schemaName,
|
||||
pureName,
|
||||
},
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
exprType: 'column',
|
||||
columnName,
|
||||
},
|
||||
],
|
||||
orderBy: [
|
||||
{
|
||||
exprType: 'column',
|
||||
columnName,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
if (search) {
|
||||
const tokens = _.compact(search.split(' ').map(x => x.trim()));
|
||||
if (tokens.length > 0) {
|
||||
// @ts-ignore
|
||||
select.where = {
|
||||
conditionType: 'and',
|
||||
conditions: tokens.map(token => ({
|
||||
conditionType: 'like',
|
||||
left: {
|
||||
exprType: 'column',
|
||||
columnName,
|
||||
},
|
||||
right: {
|
||||
exprType: 'value',
|
||||
value: `%${token}%`,
|
||||
},
|
||||
})),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
dumpSqlSelect(dmp, select);
|
||||
|
||||
isLoading = true;
|
||||
const response = await apiCall('database-connections/query-data', {
|
||||
rows = await apiCall('database-connections/load-field-values', {
|
||||
conid,
|
||||
database,
|
||||
sql: dmp.s,
|
||||
search,
|
||||
schemaName,
|
||||
pureName,
|
||||
field: columnName,
|
||||
});
|
||||
|
||||
rows = response.rows;
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
@@ -124,7 +76,7 @@
|
||||
{rows}
|
||||
clickable
|
||||
on:clickrow={e => {
|
||||
const value = e.detail[columnName];
|
||||
const { value } = e.detail;
|
||||
if (multiselect) {
|
||||
if (checkedKeys.includes(value)) checkedKeys = checkedKeys.filter(x => x != value);
|
||||
else checkedKeys = [...checkedKeys, value];
|
||||
@@ -143,7 +95,7 @@
|
||||
{
|
||||
fieldName: 'value',
|
||||
header: 'Value',
|
||||
formatter: row => (row[columnName] == null ? '(NULL)' : row[columnName]),
|
||||
formatter: row => (row.value == null ? '(NULL)' : row.value),
|
||||
},
|
||||
]}
|
||||
>
|
||||
@@ -151,9 +103,9 @@
|
||||
type="checkbox"
|
||||
let:row
|
||||
slot="1"
|
||||
checked={checkedKeys.includes(row[columnName])}
|
||||
checked={checkedKeys.includes(row['value'])}
|
||||
on:change={e => {
|
||||
const value = row[columnName];
|
||||
const value = row['value'];
|
||||
if (e.target.checked) {
|
||||
if (!checkedKeys.includes(value)) checkedKeys = [...checkedKeys, value];
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user