From 3dbaef12ad70263829d4c3a98b9ad0fd46297bc3 Mon Sep 17 00:00:00 2001 From: dataeaseShu <106045316+dataeaseShu@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:55:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E9=9B=86=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE=E6=BA=90=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=20=20=20=E6=95=B0=E6=8D=AE=E9=9B=86=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=B1=95=E7=A4=BAUI=E8=B0=83=E6=95=B4=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E5=B1=95=E7=A4=BA=E7=9A=84=E8=A1=A8=E4=B8=8E=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=94=AF=E6=8C=81=E7=AD=9B=E9=80=89=E6=A1=86=E6=90=9C?= =?UTF-8?q?=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package.json | 1 + .../src/components/dataease/DeOutWidget.vue | 8 +++- frontend/src/views/dataset/add/AddApi.vue | 3 +- frontend/src/views/dataset/add/AddDB.vue | 4 +- frontend/src/views/dataset/add/AddSQL.vue | 44 ++++++++++++++++--- frontend/src/views/dataset/add/util.js | 12 +++++ .../views/dataset/common/DatasetDetail.vue | 2 +- .../views/system/datasource/DsFormContent.vue | 3 +- 8 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 frontend/src/views/dataset/add/util.js diff --git a/frontend/package.json b/frontend/package.json index c8ad77b95d..1393673312 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -51,6 +51,7 @@ "jquery": "^3.1.1", "js-base64": "^3.7.2", "js-cookie": "2.2.0", + "js-pinyin": "^0.1.9", "jsencrypt": "^3.0.0-rc.1", "jspdf": "^2.3.1", "jszip": "^3.10.1", diff --git a/frontend/src/components/dataease/DeOutWidget.vue b/frontend/src/components/dataease/DeOutWidget.vue index cd7e6134b6..049cb7878f 100644 --- a/frontend/src/components/dataease/DeOutWidget.vue +++ b/frontend/src/components/dataease/DeOutWidget.vue @@ -182,8 +182,10 @@ export default { textAlign: horizontal } this.outsideStyle = { - flexWrap: 'wrap' + flexDirection: 'column' } + + if (vertical !== 'top' && this.element.component !== 'de-select-grid') { this.titleStyle = null this.outsideStyle = { @@ -192,6 +194,10 @@ export default { } } + if (this.element.component === 'de-select-grid') { + this.$set(this.outsideStyle, 'flexDirection', 'column') + } + if (vertical !== 'top' && this.element.component === 'de-number-range') { if (!this.titleStyle) { this.titleStyle = {} diff --git a/frontend/src/views/dataset/add/AddApi.vue b/frontend/src/views/dataset/add/AddApi.vue index 459e0efcfd..1224414b3c 100644 --- a/frontend/src/views/dataset/add/AddApi.vue +++ b/frontend/src/views/dataset/add/AddApi.vue @@ -218,6 +218,7 @@ import { listApiDatasource, post, isKettleRunning } from '@/api/dataset/dataset' import { dbPreview, engineMode } from '@/api/system/engine' import cancelMix from './cancelMix' import msgCfm from '@/components/msgCfm/index' +import { pySort } from './util' export default { name: 'AddApi', @@ -398,7 +399,7 @@ export default { }, initDataSource() { listApiDatasource().then((response) => { - this.options = response.data + this.options = pySort(response.data) }) }, kettleState() { diff --git a/frontend/src/views/dataset/add/AddDB.vue b/frontend/src/views/dataset/add/AddDB.vue index 071fb3774d..e7774cbc41 100644 --- a/frontend/src/views/dataset/add/AddDB.vue +++ b/frontend/src/views/dataset/add/AddDB.vue @@ -225,6 +225,8 @@ import { listDatasource, post, isKettleRunning } from '@/api/dataset/dataset' import { engineMode, dbPreview } from '@/api/system/engine' import msgCfm from '@/components/msgCfm/index' import cancelMix from './cancelMix' + +import { pySort } from './util' export default { name: 'AddDB', mixins: [msgCfm, cancelMix], @@ -415,7 +417,7 @@ export default { }, initDataSource() { listDatasource().then((response) => { - this.options = response.data.filter((item) => item.type !== 'api') + this.options = pySort(response.data.filter((item) => item.type !== 'api')) }) }, kettleState() { diff --git a/frontend/src/views/dataset/add/AddSQL.vue b/frontend/src/views/dataset/add/AddSQL.vue index 6f747ac1c7..2aadd10f1c 100644 --- a/frontend/src/views/dataset/add/AddSQL.vue +++ b/frontend/src/views/dataset/add/AddSQL.vue @@ -109,6 +109,7 @@ @click=" showTable = false dataTable = '' + ;keywords = '' " > {{ $t('chart.back') }} {{ $t('deDataset.data_reference') }} @@ -147,13 +148,15 @@ >{{ $t('deDataset.to_start_using') }} -
+ +
@@ -193,6 +197,8 @@ />
+ +
ele.name.includes(val)) + } + + if (this.dataSource && this.dataTable) { + this.fieldDataCopy = this.fieldData.filter(ele => ele.fieldName.includes(val)) + } } }, beforeDestroy() { @@ -729,16 +754,22 @@ export default { this.listSqlLog() }, getField(name) { + this.tableLoading = true post('/dataset/table/getFields', { dataSourceId: this.dataSource, info: JSON.stringify({ table: name }) }).then((res) => { this.fieldData = res.data + this.fieldDataCopy = [...this.fieldData] }) + .finally(() => { + this.tableLoading = false + }) }, typeSwitch({ name }) { this.showTable = true this.dataTable = name + this.keywords = '' this.getField(name) }, mousedownDrag() { @@ -787,6 +818,7 @@ export default { post('/datasource/getTables/' + this.dataSource, {}) .then((response) => { this.tableData = response.data + this.tableDataCopy = [...this.tableData] }) .finally(() => { this.tableLoading = false @@ -799,7 +831,7 @@ export default { }, 200), initDataSource() { return listDatasource().then((response) => { - this.options = response.data.filter((item) => item.type !== 'api') + this.options = pySort(response.data.filter((item) => item.type !== 'api')) }) }, @@ -1119,7 +1151,7 @@ export default { .item-list { padding: 16px 8px; - height: calc(100vh - 200px); + height: calc(100vh - 242px); overflow: auto; .table-or-field { height: 40px; diff --git a/frontend/src/views/dataset/add/util.js b/frontend/src/views/dataset/add/util.js new file mode 100644 index 0000000000..cf5444af53 --- /dev/null +++ b/frontend/src/views/dataset/add/util.js @@ -0,0 +1,12 @@ +import pyjs from 'js-pinyin' + +export function zh2py(str) { + return pyjs.getFullChars(str).toLowerCase().charCodeAt() +} + +export function pySort(arr = []) { + arr.sort((a, b) => { + return zh2py(a.name[0]) - zh2py(b.name[0]) + }) + return arr +} \ No newline at end of file diff --git a/frontend/src/views/dataset/common/DatasetDetail.vue b/frontend/src/views/dataset/common/DatasetDetail.vue index 84ef6e07ca..fe9d322974 100644 --- a/frontend/src/views/dataset/common/DatasetDetail.vue +++ b/frontend/src/views/dataset/common/DatasetDetail.vue @@ -263,7 +263,7 @@ export default { .info-item { font-family: PingFang SC; font-weight: 400; - margin: 6px 0; + margin: 6px 0 12px 0; } .info-title { margin: 0!important; diff --git a/frontend/src/views/system/datasource/DsFormContent.vue b/frontend/src/views/system/datasource/DsFormContent.vue index 04945fdf61..a98d6f7dd5 100644 --- a/frontend/src/views/system/datasource/DsFormContent.vue +++ b/frontend/src/views/system/datasource/DsFormContent.vue @@ -662,7 +662,7 @@ export default { this.$emit('setParams', { ...this.params }) this.$nextTick(() => { this.disabled = appMarketCheck ? !this.appMarketEdit : (Boolean(id) && showModel === 'show' && !this.canEdit) - if (this.configFromTabs.editor === 'editor') { + if (this.configFromTabs?.editor === 'editor') { this.$emit('editeTodisable', true) } }) @@ -1113,6 +1113,7 @@ export default { } }) } + this.$refs.dsForm.validate() if (!status) { return }