From 07c49bee4e3daafc0c05b87249c294f133a94aab Mon Sep 17 00:00:00 2001 From: roymondchen Date: Thu, 10 Aug 2023 16:04:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor,data-source):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E6=96=B9=E6=B3=95=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/data-source/src/DataSourceManager.ts | 16 + .../editor/src/components/CodeBlockEditor.vue | 26 +- .../editor/src/fields/DataSourceFields.vue | 14 +- .../editor/src/fields/DataSourceMethods.vue | 9 +- packages/editor/src/theme/code-block.scss | 10 + packages/form/src/containers/Table.vue | 308 +++++++++--------- 6 files changed, 216 insertions(+), 167 deletions(-) diff --git a/packages/data-source/src/DataSourceManager.ts b/packages/data-source/src/DataSourceManager.ts index 03dfa39d..d5f2ec12 100644 --- a/packages/data-source/src/DataSourceManager.ts +++ b/packages/data-source/src/DataSourceManager.ts @@ -81,8 +81,24 @@ class DataSourceManager extends EventEmitter { this.data[ds.id] = ds.data; + ds.getMethods().forEach((method) => { + if (method.timing === 'beforeInit') { + if (typeof method.content === 'function') { + method.content({ params: {}, dataSource: ds }); + } + } + }); + ds.init().then(() => { this.data[ds.id] = ds.data; + + ds.getMethods().forEach((method) => { + if (method.timing === 'afterInit') { + if (typeof method.content === 'function') { + method.content({ params: {}, dataSource: ds }); + } + } + }); }); ds.on('change', () => { diff --git a/packages/editor/src/components/CodeBlockEditor.vue b/packages/editor/src/components/CodeBlockEditor.vue index c789efcf..c894ae2c 100644 --- a/packages/editor/src/components/CodeBlockEditor.vue +++ b/packages/editor/src/components/CodeBlockEditor.vue @@ -1,5 +1,6 @@ @@ -22,7 +23,7 @@ import { ref } from 'vue'; import { TMagicButton, tMagicMessageBox } from '@tmagic/design'; -import { FieldProps, FormConfig, FormState, MFormDialog } from '@tmagic/form'; +import { FieldProps, FormConfig, FormState, MFormDrawer } from '@tmagic/form'; import { MagicTable } from '@tmagic/table'; defineOptions({ @@ -42,7 +43,7 @@ const props = withDefaults( const emit = defineEmits(['change']); -const addDialog = ref>(); +const addDialog = ref>(); const fieldValues = ref>({}); const filedTitle = ref(''); @@ -77,6 +78,10 @@ const fieldColumns = [ label: '属性描述', prop: 'desc', }, + { + label: '默认值', + prop: 'defaultValue', + }, { label: '操作', fixed: 'right', @@ -154,6 +159,7 @@ const dataSourceFieldsConfig: FormConfig = [ { name: 'description', text: '描述', + type: 'textarea', }, { name: 'defaultValue', diff --git a/packages/editor/src/fields/DataSourceMethods.vue b/packages/editor/src/fields/DataSourceMethods.vue index cb3cdbc5..5c697b42 100644 --- a/packages/editor/src/fields/DataSourceMethods.vue +++ b/packages/editor/src/fields/DataSourceMethods.vue @@ -9,10 +9,11 @@ @@ -53,9 +54,13 @@ const methodColumns = [ prop: 'name', }, { - label: '注释', + label: '描述', prop: 'desc', }, + { + label: '执行时机', + prop: 'timing', + }, { label: '参数', prop: 'params', diff --git a/packages/editor/src/theme/code-block.scss b/packages/editor/src/theme/code-block.scss index bc289187..1e8b52db 100644 --- a/packages/editor/src/theme/code-block.scss +++ b/packages/editor/src/theme/code-block.scss @@ -24,3 +24,13 @@ display: none; } } + +.m-editor-code-block-editor { + .tmagic-design-table { + height: 180px; + } + + .el-drawer__body { + padding: 10px 20px; + } +} diff --git a/packages/form/src/containers/Table.vue b/packages/form/src/containers/Table.vue index c115dd0c..02c92e0d 100644 --- a/packages/form/src/containers/Table.vue +++ b/packages/form/src/containers/Table.vue @@ -1,162 +1,160 @@