@@ -114,7 +121,13 @@
>search-outline
- add-outline
+ add-outline
@@ -165,7 +178,8 @@
onStop
}"
:key="tb.id"
- class="tb-item grabbable flex align-center px-2 user-select-none rounded-2"
+ class="tb-item flex align-center px-2 user-select-none rounded-2"
+ :class="{ grabbable: !stateIsReadonly }"
>
{item.message}
+ return {item.message}
})
: !logLoading.value &&
Date: Mon, 16 Jan 2023 15:04:15 +0800
Subject: [PATCH 057/124] feat(@dag): add StageButtonLaebl
---
packages/component/src/StageButton.vue | 24 ++++++++++++-----
packages/dag/src/components/form/index.js | 1 +
.../form/stage-button-label/index.js | 27 +++++++++++++++++++
packages/dag/src/nodes/Table.js | 11 +++++---
4 files changed, 53 insertions(+), 10 deletions(-)
create mode 100644 packages/dag/src/components/form/stage-button-label/index.js
diff --git a/packages/component/src/StageButton.vue b/packages/component/src/StageButton.vue
index 8d25ba8a4d..c809e99eb9 100644
--- a/packages/component/src/StageButton.vue
+++ b/packages/component/src/StageButton.vue
@@ -1,5 +1,5 @@
-
+
{{ progress }}
@@ -9,9 +9,6 @@
icon_table_selector_load
-
-
-
@@ -34,13 +31,26 @@ export default {
},
mounted() {
- this.getProgress()
+ this.getProgress(true)
},
methods: {
- getProgress() {
+ loadSchema() {
+ connectionsApi
+ .updateById(this.connectionId, {
+ loadCount: 0,
+ loadFieldsStatus: 'loading'
+ })
+ .then(() => {
+ this.getProgress()
+ })
+ },
+
+ getProgress(check = false) {
if (!this.connectionId) return
- this.loading = true
+ if (!check) {
+ this.loading = true
+ }
this.progress = '0'
connectionsApi.getNoSchema(this.connectionId).then(res => {
if (res.loadFieldsStatus !== 'finished') {
diff --git a/packages/dag/src/components/form/index.js b/packages/dag/src/components/form/index.js
index d64a911fcf..cb2b983f2c 100644
--- a/packages/dag/src/components/form/index.js
+++ b/packages/dag/src/components/form/index.js
@@ -19,3 +19,4 @@ export * from './pdk-properties'
export * from './js-declare'
export * from './load-schema-tree'
export * from './field-inference'
+export * from './stage-button-label'
diff --git a/packages/dag/src/components/form/stage-button-label/index.js b/packages/dag/src/components/form/stage-button-label/index.js
new file mode 100644
index 0000000000..d20a1058e1
--- /dev/null
+++ b/packages/dag/src/components/form/stage-button-label/index.js
@@ -0,0 +1,27 @@
+import { defineComponent } from '@vue/composition-api'
+import { observer } from '@formily/reactive-vue'
+
+import StageButton from '@tap/component/src/StageButton'
+import { FormItem } from '@tap/form'
+
+export const StageButtonLabel = observer(
+ defineComponent({
+ props: ['value', 'disabled', 'connectionId', 'title'],
+ setup(props, { emit, root, attrs, refs, slots }) {
+ return () => {
+ const label = (
+
+ {slots.default?.()}
+
+ )
+ }
+ }
+ })
+)
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index 978ab04b79..8cb0a92873 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -97,10 +97,12 @@ export class Table extends NodeType {
tableNameWrap: {
type: 'void',
title: '表',
- 'x-decorator': 'FormItem',
+ 'x-decorator': 'StageButtonLabel',
'x-decorator-props': {
asterisk: true,
- feedbackLayout: 'none'
+ feedbackLayout: 'none',
+ connectionId: '',
+ title: '表'
},
'x-component': 'FormFlex',
'x-component-props': {
@@ -108,10 +110,13 @@ export class Table extends NodeType {
align: 'start'
},
'x-reactions': {
- dependencies: ['databaseType'],
+ dependencies: ['databaseType', '.connectionId'],
fulfill: {
state: {
display: '{{ !["CSV","EXCEL","JSON","XML"].includes($deps[0]) ? "visible":"hidden"}}'
+ },
+ schema: {
+ 'x-decorator-props.connectionId': `{{$deps[1]}}`
}
}
},
From 2f53e365fef37da95917e65a0136d2d982662c4d Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 16 Jan 2023 15:44:21 +0800
Subject: [PATCH 058/124] refactor(@tap/dag): update Database node
tableExpression
---
packages/dag/src/nodes/Database.js | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/packages/dag/src/nodes/Database.js b/packages/dag/src/nodes/Database.js
index 8856e97833..4ab75b30a9 100644
--- a/packages/dag/src/nodes/Database.js
+++ b/packages/dag/src/nodes/Database.js
@@ -137,6 +137,9 @@ export class Database extends NodeType {
type: 'string',
default: 'custom',
'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ tooltip: '表达式匹配模式下,数据库新增的符合表达的表会被自动同步到目标'
+ },
'x-component': 'Radio.Group',
enum: [
{
@@ -178,14 +181,12 @@ export class Database extends NodeType {
tableExpression: {
type: 'string',
- default: '*',
+ default: '.*',
+ description: '使用正则表达式匹配 .*代表任意长度任意字符',
'x-decorator': 'FormItem',
- 'x-decorator-props': {
- extra: '表达式匹配模式下,数据库新增的符合表达的表会被自动同步到目标'
- },
'x-component': 'Input.TextArea',
'x-component-props': {
- placeholder: '逗号分割的正则表达式列表,使用*代表任意长度任意字符'
+ rows: 1
},
'x-reactions': {
dependencies: ['migrateTableSelectType'],
From 72116bc2d99512011011cf9a26a132d78c7ce5e8 Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 16 Jan 2023 17:12:35 +0800
Subject: [PATCH 059/124] feat(@tap/dag): JsProcessor Node show api docs
---
.../src/components/form/js-processor/index.js | 37 ++++++++++---------
packages/dag/src/locale/lang/en.js | 3 +-
packages/dag/src/locale/lang/zh-CN.js | 3 +-
packages/dag/src/locale/lang/zh-TW.js | 3 +-
4 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/packages/dag/src/components/form/js-processor/index.js b/packages/dag/src/components/form/js-processor/index.js
index 2463eed6cc..abcd1079f3 100644
--- a/packages/dag/src/components/form/js-processor/index.js
+++ b/packages/dag/src/components/form/js-processor/index.js
@@ -1,4 +1,4 @@
-import { defineComponent, ref, reactive, onUnmounted } from '@vue/composition-api'
+import { defineComponent, ref, reactive, onUnmounted, watch } from '@vue/composition-api'
import { useForm } from '@tap/form'
import { observer } from '@formily/reactive-vue'
import { observe } from '@formily/reactive'
@@ -197,7 +197,7 @@ export const JsProcessor = observer(
showDoc.value = !showDoc.value
}
- let functionGroup = reactive([])
+ let functionGroup = ref({})
const classDescMap = {
DateUtil: '日期处理',
idGen: 'ID生成器',
@@ -208,15 +208,17 @@ export const JsProcessor = observer(
filter: JSON.stringify({
limit: 1000,
where: {
- type: 'system'
+ type: 'system',
+ category: {
+ $in: ['enhanced', 'standard']
+ }
}
})
})
const group = groupBy(data.items, 'className')
const noClassFunction = group['']
delete group['']
- functionGroup = group
- // console.log('loadFunction', groupBy(data.items, 'className')) // eslint-disable-line
+ functionGroup.value = group
}
loadFunction()
@@ -246,9 +248,9 @@ export const JsProcessor = observer(
+ {props.title}
+
+
+ )
+
+ return (
+
*
{i18n.t('packages_form_js_processor_index_jiaoben')}
- {/*
- API文档
- */}
+
+ {i18n.t('packages_dag_api_docs')}
+
fangda
{i18n.t('packages_form_js_editor_fullscreen')}
@@ -345,7 +347,8 @@ export const JsProcessor = observer(
{
@@ -355,19 +358,19 @@ export const JsProcessor = observer(
}}
>
- {Object.keys(functionGroup).map(className => {
+ {Object.keys(functionGroup.value).map(className => {
return [
+
]
})
]
@@ -385,9 +388,9 @@ export const JsProcessor = observer(
{className}
, classDescMap[className] &&{classDescMap[className]}
,方法
, - functionGroup[className].map(item => { + functionGroup.value[className].map(item => { return [{item.methodName}
,-
-
- 作用 -
- 用法 +
- 作用:{item.desc} +
- 用法:
{fullscreen && runTool}
Date: Thu, 2 Feb 2023 10:57:45 +0800
Subject: [PATCH 098/124] refactor: Added log query when the log is empty
#132713
---
.../dag/src/components/form/js-processor/index.js | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/packages/dag/src/components/form/js-processor/index.js b/packages/dag/src/components/form/js-processor/index.js
index c4794c8371..b5e0b591c7 100644
--- a/packages/dag/src/components/form/js-processor/index.js
+++ b/packages/dag/src/components/form/js-processor/index.js
@@ -76,6 +76,7 @@ export const JsProcessor = observer(
let timer
let outTimer
+ let logTimer
let version
let logList = ref([])
let logLoading = ref(false)
@@ -123,6 +124,7 @@ export const JsProcessor = observer(
runningText.value = ''
logLoading.value = false
clearTimeout(timer)
+ clearTimeout(logTimer)
clearTimeout(outTimer)
}
@@ -146,10 +148,15 @@ export const JsProcessor = observer(
handleAutoQuery()
}, 500)
} else {
+ // 没有拿到日志数据,继续定时轮询
if (!logList.value.length) {
- outTimer = setTimeout(async () => {
- await queryLog()
- resetQuery()
+ outTimer = setTimeout(() => {
+ logTimer = setInterval(async () => {
+ await queryLog()
+ if (logList.value.length) {
+ resetQuery()
+ }
+ }, 500)
}, 1000)
} else {
resetQuery()
From b6ea463d533086283b310f11cc2f5dc42a3251aa Mon Sep 17 00:00:00 2001
From: xufei
Date: Thu, 2 Feb 2023 10:57:56 +0800
Subject: [PATCH 099/124] refactor: js editor prevent caption undefined
---
packages/component/src/JsEditor.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/component/src/JsEditor.vue b/packages/component/src/JsEditor.vue
index 61e9eb5acb..841b9d6bd8 100644
--- a/packages/component/src/JsEditor.vue
+++ b/packages/component/src/JsEditor.vue
@@ -111,8 +111,8 @@ export default {
jar: 1,
system: 2
}
- let aName = a.caption.toLowerCase()
- let bName = b.caption.toLowerCase()
+ let aName = a.caption?.toLowerCase()
+ let bName = b.caption?.toLowerCase()
if (a.originType && b.originType && a.originType !== b.originType) {
return scoreMap[a.originType] - scoreMap[b.originType]
} else {
From 10ee865027e912fa4cacd5081ad37a4544540e80 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Thu, 2 Feb 2023 11:02:23 +0800
Subject: [PATCH 100/124] fix(taskSetting): add popClass and add hide style
#133558
---
.../dag/src/components/migration/SettingPanel.vue | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/packages/dag/src/components/migration/SettingPanel.vue b/packages/dag/src/components/migration/SettingPanel.vue
index b8b394d2e8..9105c629ca 100644
--- a/packages/dag/src/components/migration/SettingPanel.vue
+++ b/packages/dag/src/components/migration/SettingPanel.vue
@@ -265,7 +265,8 @@ export default observer({
'x-component-props': {
type: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss',
- valueFormat: 'timestamp'
+ valueFormat: 'timestamp',
+ popperClass: 'setting-panel__dateTimePicker'
},
'x-reactions': [
{
@@ -664,3 +665,12 @@ export default observer({
}
}
+
From b22af56d3cdc5663f762e65a0a1b6b8047721b86 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Thu, 2 Feb 2023 11:31:01 +0800
Subject: [PATCH 101/124] fix(dag/dataflow): run logicSchema when progress is
finished
---
packages/api/src/MetadataInstances.js | 3 +++
packages/component/src/StageButton.vue | 17 +++++++++++++----
.../components/form/stage-button-label/index.js | 3 ++-
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/packages/api/src/MetadataInstances.js b/packages/api/src/MetadataInstances.js
index de8ec0205e..f56a78ff2a 100644
--- a/packages/api/src/MetadataInstances.js
+++ b/packages/api/src/MetadataInstances.js
@@ -128,5 +128,8 @@ export default class MetadataInstances extends Http {
checkTableExist(params) {
return this.axios.get(this.url + '/check/table/exist', { params })
}
+ logicSchema(taskId, params) {
+ return this.axios.delete(this.url + '/logic/schema/' + taskId, { params })
+ }
}
export { MetadataInstances }
diff --git a/packages/component/src/StageButton.vue b/packages/component/src/StageButton.vue
index 01c180f7bc..fef31cc7ea 100644
--- a/packages/component/src/StageButton.vue
+++ b/packages/component/src/StageButton.vue
@@ -13,13 +13,15 @@
diff --git a/packages/dag/src/components/form/stage-button-label/index.js b/packages/dag/src/components/form/stage-button-label/index.js
index d20a1058e1..e02767b249 100644
--- a/packages/dag/src/components/form/stage-button-label/index.js
+++ b/packages/dag/src/components/form/stage-button-label/index.js
@@ -8,11 +8,12 @@ export const StageButtonLabel = observer(
defineComponent({
props: ['value', 'disabled', 'connectionId', 'title'],
setup(props, { emit, root, attrs, refs, slots }) {
+ const { taskId, activeNodeId } = root.$store.state?.dataflow || {}
return () => {
const label = (
- {/*
- API文档
- */}
+
+ {i18n.t('packages_dag_api_docs')}
+
suoxiao {i18n.t('packages_form_js_editor_exit_fullscreen')}
diff --git a/packages/dag/src/locale/lang/en.js b/packages/dag/src/locale/lang/en.js
index 2770fb7bba..2b35577b1e 100644
--- a/packages/dag/src/locale/lang/en.js
+++ b/packages/dag/src/locale/lang/en.js
@@ -544,5 +544,6 @@ export default {
packages_dag_monitor_node_popover_cdcTimeTitle_processor: 'Process incremental time',
packages_dag_monitor_node_popover_targetWriteTime_title: 'Avg time per write',
packages_dag_monitor_topheader_renwuxintiaoshi: 'Task heartbeat time',
- packages_dag_monitor_node_per_deal_need_time: 'Single processing time'
+ packages_dag_monitor_node_per_deal_need_time: 'Single processing time',
+ packages_dag_api_docs: 'Docs'
}
diff --git a/packages/dag/src/locale/lang/zh-CN.js b/packages/dag/src/locale/lang/zh-CN.js
index e17ff6a983..d974338856 100644
--- a/packages/dag/src/locale/lang/zh-CN.js
+++ b/packages/dag/src/locale/lang/zh-CN.js
@@ -518,5 +518,6 @@ export default {
packages_dag_monitor_node_popover_cdcTimeTitle_processor: '处理增量时间点',
packages_dag_monitor_node_popover_targetWriteTime_title: '平均每条写入耗时',
packages_dag_monitor_topheader_renwuxintiaoshi: '任务心跳时间',
- packages_dag_monitor_node_per_deal_need_time: '单条处理耗时'
+ packages_dag_monitor_node_per_deal_need_time: '单条处理耗时',
+ packages_dag_api_docs: 'API文档'
}
diff --git a/packages/dag/src/locale/lang/zh-TW.js b/packages/dag/src/locale/lang/zh-TW.js
index 2b4033279e..c2140fef42 100644
--- a/packages/dag/src/locale/lang/zh-TW.js
+++ b/packages/dag/src/locale/lang/zh-TW.js
@@ -515,5 +515,6 @@ export default {
packages_dag_monitor_node_popover_cdcTimeTitle_processor: '處理增量時間點',
packages_dag_monitor_node_popover_targetWriteTime_title: '平均每條寫入耗時',
packages_dag_monitor_topheader_renwuxintiaoshi: '任務心跳時間',
- packages_dag_monitor_node_per_deal_need_time: '單條處理耗時'
+ packages_dag_monitor_node_per_deal_need_time: '單條處理耗時',
+ packages_dag_api_docs: 'API文檔'
}
From 59b5b8cdbb91727992d58db201760d9d2fec6c7e Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 16 Jan 2023 18:09:04 +0800
Subject: [PATCH 060/124] feat(targetNode): add writeStrategy
---
packages/dag/src/nodes/Database.js | 40 ++++++++
packages/dag/src/nodes/Table.js | 159 +++++++++++++++++++++++++----
2 files changed, 177 insertions(+), 22 deletions(-)
diff --git a/packages/dag/src/nodes/Database.js b/packages/dag/src/nodes/Database.js
index 8856e97833..5c0edc37a9 100644
--- a/packages/dag/src/nodes/Database.js
+++ b/packages/dag/src/nodes/Database.js
@@ -352,6 +352,38 @@ export class Database extends NodeType {
}
}
},
+ writeStrategyObject: {
+ // title: '数据写入模式',
+ type: 'void',
+ 'x-component-props': {
+ layout: 'horizontal',
+ colon: false,
+ feedbackLayout: 'none'
+ },
+ properties: {
+ writeStrategy: {
+ title: '数据写入模式',
+ type: 'string',
+ default: 'updateOrInsert',
+ 'x-decorator': 'FormItem',
+ 'x-component': 'Radio.Group',
+ 'x-component-props': {
+ tooltip:
+ '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ },
+ enum: [
+ {
+ label: '按事件类型处理',
+ value: 'updateOrInsert'
+ },
+ {
+ label: '统计追加写入',
+ value: 'appendWrite'
+ }
+ ]
+ }
+ }
+ },
dmlPolicy: {
title: '数据写入策略',
type: 'object',
@@ -423,6 +455,14 @@ export class Database extends NodeType {
effect: 'light'
}
}
+ },
+ 'x-reactions': {
+ dependencies: ['writeStrategy'],
+ fulfill: {
+ state: {
+ display: '{{$deps[0] === "appendWrite" ? "hidden":"visible"}}'
+ }
+ }
}
},
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index 978ab04b79..e7ca93a9ce 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -628,35 +628,150 @@ export class Table extends NodeType {
}
}
},
- writeStrategy: {
- title: '数据写入模式',
- type: 'string',
- default: 'updateOrInsert',
- enum: [
- {
- label: '追加写入',
- value: 'appendWrite'
- },
- {
- label: '更新已存在或者插入新数据',
- value: 'updateOrInsert'
+ // writeStrategy: {
+ // title: '数据写入模式',
+ // type: 'string',
+ // default: 'updateOrInsert',
+ // enum: [
+ // {
+ // label: '追加写入',
+ // value: 'appendWrite'
+ // },
+ // {
+ // label: '更新已存在或者插入新数据',
+ // value: 'updateOrInsert'
+ // }
+ // ],
+ // 'x-decorator': 'FormItem',
+ // 'x-decorator-props': {
+ // wrapperWidth: 300
+ // },
+ // 'x-component': 'Select',
+ // 'x-reactions': [
+ // {
+ // target: 'updateConditionFields',
+ // fulfill: {
+ // state: {
+ // display: '{{$self.value!=="appendWrite" ? "visible":"hidden"}}'
+ // }
+ // }
+ // }
+ // ]
+ // },
+ writeStrategyObject: {
+ // title: '数据写入模式',
+ type: 'void',
+ 'x-component-props': {
+ layout: 'horizontal',
+ colon: false,
+ feedbackLayout: 'none',
+ tooltip:
+ '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ },
+ properties: {
+ writeStrategy: {
+ title: '数据写入模式',
+ type: 'string',
+ default: 'updateOrInsert',
+ 'x-decorator': 'FormItem',
+ 'x-component': 'Radio.Group',
+ 'x-component-props': {
+ tooltip:
+ '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ },
+ enum: [
+ {
+ label: '按事件类型处理',
+ value: 'updateOrInsert'
+ },
+ {
+ label: '统计追加写入',
+ value: 'appendWrite'
+ }
+ ]
}
- ],
+ }
+ },
+ dmlPolicy: {
+ title: '数据写入策略',
+ type: 'object',
'x-decorator': 'FormItem',
'x-decorator-props': {
- wrapperWidth: 300
+ feedbackLayout: 'none'
},
- 'x-component': 'Select',
- 'x-reactions': [
- {
- target: 'updateConditionFields',
- fulfill: {
- state: {
- display: '{{$self.value!=="appendWrite" ? "visible":"hidden"}}'
+ 'x-component': 'FormLayout',
+ 'x-component-props': {
+ layout: 'horizontal',
+ colon: false,
+ feedbackLayout: 'none'
+ },
+ properties: {
+ insertPolicy: {
+ type: 'string',
+ 'x-component': 'Select',
+ 'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ className: 'font-color-dark mb-2',
+ wrapperWidth: 300,
+ addonBefore: '插入事件'
+ },
+ default: 'update_on_exists',
+ enum: [
+ {
+ label: '目标存在时更新',
+ value: 'update_on_exists'
+ },
+ {
+ label: '目标存在时丢弃',
+ value: 'ignore_on_exists'
}
+ ]
+ },
+ updatePolicy: {
+ type: 'string',
+ 'x-component': 'Select',
+ 'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ className: 'font-color-dark mb-2',
+ wrapperWidth: 300,
+ addonBefore: '更新事件'
+ },
+ default: 'ignore_on_nonexists',
+ enum: [
+ {
+ label: '不存在时丢弃',
+ value: 'ignore_on_nonexists'
+ },
+ {
+ label: '不存在时插入',
+ value: 'insert_on_nonexists'
+ }
+ ]
+ },
+ deletePolicy: {
+ type: 'void',
+ 'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ className: 'font-color-dark',
+ wrapperWidth: 300,
+ addonBefore: '删除事件'
+ },
+ 'x-component': 'Tag',
+ 'x-content': '不存在时丢弃',
+ 'x-component-props': {
+ type: 'info',
+ effect: 'light'
}
}
- ]
+ },
+ 'x-reactions': {
+ dependencies: ['writeStrategy'],
+ fulfill: {
+ state: {
+ display: '{{$deps[0] === "appendWrite" ? "hidden":"visible"}}'
+ }
+ }
+ }
},
updateConditionFields: {
title: '更新条件字段',
From 2241080f33694c600258530d8e430ffd5f011625 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 16 Jan 2023 18:14:26 +0800
Subject: [PATCH 061/124] feat(databaseForm): add tooltip in
connectionSchemaUpdateHour
---
packages/business/src/views/connections/DatabaseForm.vue | 3 +++
1 file changed, 3 insertions(+)
diff --git a/packages/business/src/views/connections/DatabaseForm.vue b/packages/business/src/views/connections/DatabaseForm.vue
index 17e4a6f041..ddf104420d 100644
--- a/packages/business/src/views/connections/DatabaseForm.vue
+++ b/packages/business/src/views/connections/DatabaseForm.vue
@@ -762,6 +762,9 @@ export default {
title: '模型加载频率',
'x-decorator': 'FormItem',
'x-component': 'Select',
+ 'x-decorator-props': {
+ tooltip: '数据源中模型数量大于1万时,会按本参数设置进行模型刷新'
+ },
default: '02:00',
enum: [
'false',
From aae145f158c3730f4ef23b3748a5043f64d8d107 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 16 Jan 2023 18:34:46 +0800
Subject: [PATCH 062/124] feat(targetNode): add writeStrategy
---
packages/dag/src/nodes/Database.js | 7 +++----
packages/dag/src/nodes/Table.js | 11 ++++-------
2 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/packages/dag/src/nodes/Database.js b/packages/dag/src/nodes/Database.js
index e18e078fe5..aa9b4af45a 100644
--- a/packages/dag/src/nodes/Database.js
+++ b/packages/dag/src/nodes/Database.js
@@ -366,11 +366,10 @@ export class Database extends NodeType {
title: '数据写入模式',
type: 'string',
default: 'updateOrInsert',
- 'x-decorator': 'FormItem',
'x-component': 'Radio.Group',
- 'x-component-props': {
- tooltip:
- '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ 'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ tooltip: '统计追加写入: 只处理插入事件,丢弃更新和删除事件'
},
enum: [
{
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index e7ca93a9ce..7addcdac6c 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -664,20 +664,17 @@ export class Table extends NodeType {
'x-component-props': {
layout: 'horizontal',
colon: false,
- feedbackLayout: 'none',
- tooltip:
- '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ feedbackLayout: 'none'
},
properties: {
writeStrategy: {
title: '数据写入模式',
type: 'string',
default: 'updateOrInsert',
- 'x-decorator': 'FormItem',
'x-component': 'Radio.Group',
- 'x-component-props': {
- tooltip:
- '选择该单选框后,隐藏【事件处理策略】配置区,当鼠标移入到提示符“!”时显示如下提示信息:只处理插入事件,丢弃更新和删除事件'
+ 'x-decorator': 'FormItem',
+ 'x-decorator-props': {
+ tooltip: '统计追加写入: 只处理插入事件,丢弃更新和删除事件'
},
enum: [
{
From df24095db96c53166bb053117756fbf4704456e3 Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 16 Jan 2023 19:13:51 +0800
Subject: [PATCH 063/124] style(@tap/dag): JS Node add beta icon
---
apps/daas/src/assets/icons/colorSvg/beta.svg | 10 ++++++++++
apps/dfs/src/assets/icons/colorSvg/beta.svg | 10 ++++++++++
packages/dag/src/Editor.vue | 3 ++-
packages/dag/src/MigrationEditor.vue | 3 ++-
packages/dag/src/components/DFNode.vue | 1 +
packages/dag/src/components/LeftSidebar.vue | 1 +
packages/dag/src/components/form/js-processor/index.js | 10 ++++++----
packages/dag/src/components/migration/LeftSider.vue | 1 +
packages/dag/src/nodes/JavaScript.js | 2 ++
packages/dag/src/nodes/JsProcessor.js | 2 ++
packages/dag/src/nodes/StandardJs.js | 1 +
packages/dag/src/nodes/StandardMigrateJs.js | 1 +
12 files changed, 39 insertions(+), 6 deletions(-)
create mode 100644 apps/daas/src/assets/icons/colorSvg/beta.svg
create mode 100644 apps/dfs/src/assets/icons/colorSvg/beta.svg
diff --git a/apps/daas/src/assets/icons/colorSvg/beta.svg b/apps/daas/src/assets/icons/colorSvg/beta.svg
new file mode 100644
index 0000000000..2c5da953d3
--- /dev/null
+++ b/apps/daas/src/assets/icons/colorSvg/beta.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/dfs/src/assets/icons/colorSvg/beta.svg b/apps/dfs/src/assets/icons/colorSvg/beta.svg
new file mode 100644
index 0000000000..2c5da953d3
--- /dev/null
+++ b/apps/dfs/src/assets/icons/colorSvg/beta.svg
@@ -0,0 +1,10 @@
+
diff --git a/packages/dag/src/Editor.vue b/packages/dag/src/Editor.vue
index 5ce866ede3..3c609a2028 100644
--- a/packages/dag/src/Editor.vue
+++ b/packages/dag/src/Editor.vue
@@ -220,7 +220,8 @@ export default {
},
{
name: i18n.t('packages_dag_src_migrationeditor_jSchuli'),
- type: 'js_processor'
+ type: 'js_processor',
+ beta: true
},
{
name: 'Row Filter',
diff --git a/packages/dag/src/MigrationEditor.vue b/packages/dag/src/MigrationEditor.vue
index cc2d5481ed..e951b6f11a 100644
--- a/packages/dag/src/MigrationEditor.vue
+++ b/packages/dag/src/MigrationEditor.vue
@@ -212,7 +212,8 @@ export default {
},
{
name: i18n.t('packages_dag_src_migrationeditor_jSchuli'),
- type: 'migrate_js_processor'
+ type: 'migrate_js_processor',
+ beta: true
}
])
this.addResourceIns(allResourceIns)
diff --git a/packages/dag/src/components/DFNode.vue b/packages/dag/src/components/DFNode.vue
index 9ded1ed130..da177f291d 100644
--- a/packages/dag/src/components/DFNode.vue
+++ b/packages/dag/src/components/DFNode.vue
@@ -9,6 +9,7 @@
placement="top"
:open-delay="400"
/>
+ beta
+ beta
diff --git a/packages/dag/src/components/form/js-processor/index.js b/packages/dag/src/components/form/js-processor/index.js
index abcd1079f3..c4794c8371 100644
--- a/packages/dag/src/components/form/js-processor/index.js
+++ b/packages/dag/src/components/form/js-processor/index.js
@@ -15,7 +15,7 @@ import './style.scss'
export const JsProcessor = observer(
defineComponent({
- props: ['value', 'disabled'],
+ props: ['value', 'disabled', 'isStandard'],
directives: {
resize
},
@@ -209,9 +209,11 @@ export const JsProcessor = observer(
limit: 1000,
where: {
type: 'system',
- category: {
- $in: ['enhanced', 'standard']
- }
+ category: props.isStandard
+ ? 'standard'
+ : {
+ $in: ['enhanced', 'standard']
+ }
}
})
})
diff --git a/packages/dag/src/components/migration/LeftSider.vue b/packages/dag/src/components/migration/LeftSider.vue
index d84629385a..4a302a461d 100644
--- a/packages/dag/src/components/migration/LeftSider.vue
+++ b/packages/dag/src/components/migration/LeftSider.vue
@@ -141,6 +141,7 @@
placement="top"
:open-delay="400"
/>
+ beta
diff --git a/packages/dag/src/nodes/JavaScript.js b/packages/dag/src/nodes/JavaScript.js
index 143c75fc4d..edb4667750 100644
--- a/packages/dag/src/nodes/JavaScript.js
+++ b/packages/dag/src/nodes/JavaScript.js
@@ -8,6 +8,8 @@ export class JavaScript extends NodeType {
type = 'js_processor'
+ beta = true
+
maxInputs = 1 // 最大输入个数
group = 'processor'
diff --git a/packages/dag/src/nodes/JsProcessor.js b/packages/dag/src/nodes/JsProcessor.js
index bc69367c00..1a23a0b066 100644
--- a/packages/dag/src/nodes/JsProcessor.js
+++ b/packages/dag/src/nodes/JsProcessor.js
@@ -8,6 +8,8 @@ export class JavaScript extends NodeType {
type = 'migrate_js_processor'
+ beta = true
+
maxInputs = 1 // 最大输入个数
maxOutputs = 1 // 最大输出个数
diff --git a/packages/dag/src/nodes/StandardJs.js b/packages/dag/src/nodes/StandardJs.js
index 18f69a9600..2575f30146 100644
--- a/packages/dag/src/nodes/StandardJs.js
+++ b/packages/dag/src/nodes/StandardJs.js
@@ -33,6 +33,7 @@ export class StandardJs extends NodeType {
default: 'function process(record){\n\n\t// Enter you code at here\n\treturn record;\n}',
'x-component': 'JsProcessor',
'x-component-props': {
+ isStandard: true,
height: 500,
options: { showPrintMargin: false, wrap: false },
includeBeforeAndAfter: true,
diff --git a/packages/dag/src/nodes/StandardMigrateJs.js b/packages/dag/src/nodes/StandardMigrateJs.js
index 1274597c2a..488ba372b5 100644
--- a/packages/dag/src/nodes/StandardMigrateJs.js
+++ b/packages/dag/src/nodes/StandardMigrateJs.js
@@ -33,6 +33,7 @@ export class StandardJs extends NodeType {
default: 'function process(record){\n\n\t// Enter you code at here\n\treturn record;\n}',
'x-component': 'JsProcessor',
'x-component-props': {
+ isStandard: true,
height: 500,
options: { showPrintMargin: false, wrap: false },
includeBeforeAndAfter: true,
From f41aa9493a1edf690dcabf27ac99ea0d8dbf9bc1 Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 16 Jan 2023 19:36:04 +0800
Subject: [PATCH 064/124] reformat(daas): Function list add category filter
condition
---
apps/daas/src/views/function/List.vue | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/apps/daas/src/views/function/List.vue b/apps/daas/src/views/function/List.vue
index 1ed0bab418..631b0e8dca 100644
--- a/apps/daas/src/views/function/List.vue
+++ b/apps/daas/src/views/function/List.vue
@@ -105,7 +105,9 @@ export default {
getData({ page }) {
let { type } = this.searchParams
let { current, size } = page
- let where = {}
+ let where = {
+ category: null
+ }
type && (where.type = type)
let filter = {
where,
From d1ab0087c2259d8d84d928fd3a50f5e7dec863b7 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 11:26:16 +0800
Subject: [PATCH 065/124] refactor(StageButton): watch connectionId to run init
function
---
packages/component/src/StageButton.vue | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/packages/component/src/StageButton.vue b/packages/component/src/StageButton.vue
index c809e99eb9..7e9eb1f949 100644
--- a/packages/component/src/StageButton.vue
+++ b/packages/component/src/StageButton.vue
@@ -30,11 +30,22 @@ export default {
}
},
+ watch: {
+ connectionId(v) {
+ v && this.init()
+ }
+ },
+
mounted() {
- this.getProgress(true)
+ this.init()
},
methods: {
+ init() {
+ this.loading = false
+ this.getProgress(true)
+ },
+
loadSchema() {
connectionsApi
.updateById(this.connectionId, {
From af4fc667f99bca3870faac45db48582a15d2d821 Mon Sep 17 00:00:00 2001
From: xufei
Date: Tue, 17 Jan 2023 12:05:58 +0800
Subject: [PATCH 066/124] refactor(@tap/dag): update Database Node
tableExpression description
---
packages/dag/src/nodes/Database.js | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/packages/dag/src/nodes/Database.js b/packages/dag/src/nodes/Database.js
index aa9b4af45a..07744acb84 100644
--- a/packages/dag/src/nodes/Database.js
+++ b/packages/dag/src/nodes/Database.js
@@ -137,9 +137,6 @@ export class Database extends NodeType {
type: 'string',
default: 'custom',
'x-decorator': 'FormItem',
- 'x-decorator-props': {
- tooltip: '表达式匹配模式下,数据库新增的符合表达的表会被自动同步到目标'
- },
'x-component': 'Radio.Group',
enum: [
{
@@ -147,7 +144,7 @@ export class Database extends NodeType {
value: 'custom'
},
{
- label: '按表达式匹配',
+ label: '按正则表达式匹配',
value: 'expression'
}
]
@@ -182,7 +179,7 @@ export class Database extends NodeType {
tableExpression: {
type: 'string',
default: '.*',
- description: '使用正则表达式匹配 .*代表任意长度任意字符',
+ description: '正则表达式匹配模式下,数据库新增的符合表达式的表会被自动同步到目标',
'x-decorator': 'FormItem',
'x-component': 'Input.TextArea',
'x-component-props': {
From 8cd9edbf63a282045ecba3b5a5e6ccf925143517 Mon Sep 17 00:00:00 2001
From: xufei
Date: Tue, 17 Jan 2023 12:10:26 +0800
Subject: [PATCH 067/124] refactor(@tap/dag): Remove useless code
---
packages/dag/src/components/FormPanel.vue | 436 ----------------------
1 file changed, 436 deletions(-)
diff --git a/packages/dag/src/components/FormPanel.vue b/packages/dag/src/components/FormPanel.vue
index 61447053fa..7cfa21155b 100644
--- a/packages/dag/src/components/FormPanel.vue
+++ b/packages/dag/src/components/FormPanel.vue
@@ -183,442 +183,6 @@ export default {
this.$emit('setSchema')
},
- getSettingSchema() {
- return {
- type: 'object',
- properties: {
- layout: {
- type: 'void',
- 'x-component': 'FormLayout',
- 'x-component-props': {
- colon: false,
- layout: 'vertical',
- feedbackLayout: 'terse',
- wrapperWidth: 300
- },
- properties: {
- flowEngineVersion: {
- title: this.$t('packages_dag_dataFlow_flowEngineVersion'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Select',
- default: 'Data_Flow_Engine_V1',
- enum: [
- {
- label: this.$t('packages_dag_dataFlow_flowEngineV1'),
- value: 'Data_Flow_Engine_V1'
- },
- {
- label: this.$t('packages_dag_dataFlow_jetFlowEngineV2'),
- value: 'Jet_Flow_Engine_V2'
- }
- ]
- },
- sync_type: {
- title: i18n.t('packages_dag_task_setting_sync_type'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Radio.Group',
- // default: 'initial_sync+cdc',
- enum: [
- {
- label: i18n.t('packages_dag_components_formpanel_quanliangzengliang'),
- value: 'initial_sync+cdc'
- },
- {
- label: i18n.t('packages_dag_task_setting_initial_sync'),
- value: 'initial_sync'
- },
- {
- label: i18n.t('packages_dag_task_setting_cdc'),
- value: 'cdc'
- }
- ],
- 'x-reactions': {
- target: '*(isSerialMode, cdcFetchSize)',
- fulfill: {
- state: {
- visible: '{{$self.value !== "initial_sync"}}'
- }
- }
- }
- },
- cdcEngineFilter: {
- title: i18n.t('packages_dag_task_setting_cdc_engine_filter'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- },
- stopOnError: {
- title: i18n.t('packages_dag_task_setting_stop_on_error'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- // default: true
- },
- needToCreateIndex: {
- title: i18n.t('packages_dag_task_setting_automatic_index'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- // default: true
- },
- isOpenAutoDDL: {
- title: i18n.t('packages_dag_components_formpanel_zidongchuliD'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- },
- noPrimaryKey: {
- title: i18n.t('packages_dag_components_formpanel_zhichiwuzhujian'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- },
- isSerialMode: {
- title: i18n.t('packages_dag_components_formpanel_zengliangshujuchu'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Select',
- enum: [
- {
- label: i18n.t('packages_dag_components_formpanel_piliang'),
- value: false
- },
- {
- label: i18n.t('packages_dag_components_formpanel_zhutiao'),
- value: true
- }
- ]
- },
- cdcFetchSize: {
- title: i18n.t('packages_dag_components_formpanel_zengliangpicidu'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'InputNumber',
- 'x-component-props': {
- min: 1,
- max: 1000
- }
- // default: 1
- },
- distinctWriteType: {
- title: i18n.t('packages_dag_task_setting_distinct_write_type'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Select',
- enum: [
- {
- label: this.$t('packages_dag_dataFlow_setting_intellect'),
- value: 'intellect'
- },
- {
- label: this.$t('packages_dag_dataFlow_setting_compel'),
- value: 'compel'
- }
- ]
- // default: 'intellect'
- },
- emailWaring: {
- title: i18n.t('packages_dag_components_formpanel_fasongyoujian'),
- type: 'object',
- 'x-decorator': 'FormItem',
- properties: {
- paused: {
- type: 'boolean',
- 'x-component': 'Checkbox',
- 'x-component-props': {
- option: {
- label: i18n.t('packages_dag_components_formpanel_dangrenwutingzhi')
- }
- }
- },
- error: {
- type: 'boolean',
- 'x-component': 'Checkbox',
- 'x-component-props': {
- option: {
- label: i18n.t('packages_dag_components_formpanel_dangrenwuchucuo')
- }
- }
- },
- edited: {
- type: 'boolean',
- 'x-component': 'Checkbox',
- 'x-component-props': {
- option: {
- label: i18n.t('packages_dag_components_formpanel_dangrenwubeibian')
- }
- }
- },
- started: {
- type: 'boolean',
- 'x-component': 'Checkbox',
- 'x-component-props': {
- option: {
- label: i18n.t('packages_dag_components_formpanel_dangrenwukaiqi')
- }
- }
- }
- }
- },
- readShareLogMode: {
- title: i18n.t('packages_dag_task_setting_share_cdc_mode'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Select',
- enum: [
- {
- label: i18n.t('packages_dag_components_formpanel_liushiduqu'),
- value: 'STREAMING'
- },
- {
- label: i18n.t('packages_dag_components_formpanel_lunxunduqu'),
- value: 'POLLING'
- }
- ]
- // default: 'STREAMING'
- },
- increment: {
- title: i18n.t('packages_dag_task_setting_automatic_index'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch',
- 'x-reactions': {
- dependencies: ['sync_type'],
- fulfill: {
- state: {
- display: '{{$deps[0] === "initial_sync"}}'
- }
- }
- }
- },
- isSchedule: {
- title: i18n.t('packages_dag_task_setting_is_schedule'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch',
- 'x-reactions': {
- dependencies: ['sync_type'],
- fulfill: {
- state: {
- display: '{{$deps[0] === "initial_sync" ? "visible" : "hidden"}}'
- }
- }
- }
- // default: false
- },
- cronExpression: {
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Input',
- 'x-component-props': {
- placeholder: i18n.t('packages_dag_task_setting_cron_expression')
- },
- 'x-reactions': {
- dependencies: ['sync_type', 'isSchedule'],
- fulfill: {
- state: {
- display: '{{$deps[0] === "initial_sync" && $deps[1] ? "visible" : "hidden"}}'
- }
- }
- }
- },
- readCdcInterval: {
- title: i18n.t('packages_dag_components_formpanel_zengliangtongbujian'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Input',
- 'x-component-props': {
- append: 'ms'
- }
- },
- readBatchSize: {
- title: i18n.t('packages_dag_components_formpanel_meiciduqushu'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'Input',
- 'x-content': {
- append: 'row'
- }
- // default: 100
- },
- processorConcurrency: {
- title: i18n.t('packages_dag_task_setting_processorThreadNum'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'InputNumber',
- 'x-component-props': {
- min: 1,
- max: 100
- }
- // default: 1
- },
- cdcConcurrency: {
- title: i18n.t('packages_dag_task_setting_cdc_concurrency'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch',
- // default: false,
- 'x-reactions': {
- dependencies: ['sync_type'],
- fulfill: {
- state: {
- display: '{{$deps[0] !== "initial_sync" ? "visible" : "hidden"}}'
- }
- }
- }
- },
- transformerConcurrency: {
- title: i18n.t('packages_dag_task_setting_transformer_concurrency'),
- type: 'string',
- 'x-decorator': 'FormItem',
- 'x-component': 'InputNumber',
- 'x-component-props': {
- min: 1,
- max: 100
- },
- 'x-reactions': {
- dependencies: ['sync_type', 'cdcConcurrency'],
- fulfill: {
- state: {
- visible: '{{$deps[0] !== "cdc" || ($deps[0] === "cdc" && $deps[1])}}'
- }
- }
- }
- // default: 8
- },
- syncPoints: {
- title: i18n.t('packages_dag_task_setting_sync_point'),
- type: 'array',
- 'x-decorator': 'FormItem',
- 'x-component': 'ArrayItems',
- 'x-reactions': {
- dependencies: ['sync_type'],
- fulfill: {
- state: {
- visible: '{{$deps[0] === "cdc"}}'
- }
- }
- },
- items: [
- {
- type: 'object',
- properties: {
- row: {
- type: 'void',
- 'x-component': 'Row',
- 'x-component-props': {
- type: 'flex',
- gap: '10px'
- },
- properties: {
- type: {
- type: 'string',
- 'x-decorator': 'Col',
- 'x-decorator-props': {
- span: 8
- },
- 'x-component': 'Select',
- 'x-component-props': {
- placeholder: i18n.t('packages_dag_components_formpanel_qingxuanze')
- },
- enum: [
- {
- label: this.$t('packages_dag_dataFlow_SyncInfo_localTZType'),
- value: 'localTZ'
- },
- {
- label: this.$t('packages_dag_dataFlow_SyncInfo_connTZType'),
- value: 'connTZ'
- },
- {
- label: this.$t('packages_dag_dataFlow_SyncInfo_currentType'),
- value: 'current'
- }
- ]
- },
- date: {
- type: 'string',
- 'x-decorator': 'Col',
- 'x-decorator-props': {
- span: 14
- },
- 'x-component': 'DatePicker',
- 'x-component-props': {
- type: 'datetime',
- format: 'yyyy-MM-dd HH:mm:ss'
- }
- }
- }
- }
- }
- }
- ]
- /*default: [
- {
- connectionId: '',
- type: 'current', // localTZ: 本地时区; connTZ:连接时区
- time: '',
- date: '',
- name: '',
- timezone: '+08:00' // 当type为localTZ时有该字段
- }
- ]*/
- },
- cdcShareFilterOnServer: {
- title: i18n.t('packages_dag_components_formpanel_gongxiangwajueri'),
- type: 'boolean',
- 'x-decorator': 'FormItem',
- 'x-component': 'Switch'
- },
- maxTransactionLength: {
- title: i18n.t('packages_dag_components_formpanel_shiwuzuidashi'),
- type: 'number',
- 'x-decorator': 'FormItem',
- 'x-component': 'InputNumber'
- },
- lagTime: {
- title: i18n.t('packages_dag_components_formpanel_zengliangzhihoupan'),
- type: 'void',
- 'x-decorator': 'FormItem',
- 'x-component': 'Space',
- 'x-reactions': {
- dependencies: ['sync_type'],
- fulfill: {
- state: {
- visible: '{{$deps[0] !== "initial_sync"}}'
- }
- }
- },
- properties: {
- lagTimeFalg: {
- type: 'boolean',
- 'x-component': 'Switch'
- },
- userSetLagTime: {
- type: 'number',
- 'x-component': 'InputNumber',
- /*'x-component-props': {
- append: '秒'
- },*/
- 'x-reactions': {
- dependencies: ['lagTimeFalg'],
- fulfill: {
- state: {
- visible: '{{$deps[0] === true}}'
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- },
-
updateNodePropsDebounce(form) {
clearTimeout(this.updateTimer)
this.updateTimer = setTimeout(() => {
From 7e3344486652c1401a1ebe5191ad5b9285e8c5e7 Mon Sep 17 00:00:00 2001
From: xufei
Date: Tue, 17 Jan 2023 12:13:04 +0800
Subject: [PATCH 068/124] fix(@tap/dag): Monitor page do not validate the form
#132406
---
packages/dag/src/components/FormPanel.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/dag/src/components/FormPanel.vue b/packages/dag/src/components/FormPanel.vue
index 7cfa21155b..b2c9e37c31 100644
--- a/packages/dag/src/components/FormPanel.vue
+++ b/packages/dag/src/components/FormPanel.vue
@@ -94,7 +94,7 @@ export default {
}
// 校验上一个节点配置
- if (o) {
+ if (o && !this.stateIsReadonly) {
const node = this.nodeById(o)
try {
if (node) {
From 33a332d2519600c79dafcecf90da9a6961dd8cc1 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 15:15:11 +0800
Subject: [PATCH 069/124] refactor(RelationTask/Details): show info when
detailData is not empty
---
packages/business/src/views/task/relation/Details.vue | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/packages/business/src/views/task/relation/Details.vue b/packages/business/src/views/task/relation/Details.vue
index eb748375e1..fbbe0f7fca 100644
--- a/packages/business/src/views/task/relation/Details.vue
+++ b/packages/business/src/views/task/relation/Details.vue
@@ -10,7 +10,11 @@
}}
-
-
+
+
@@ -468,12 +468,14 @@ export default {
pathAccessMethod: 'default',
apiVersion: 'v1',
prefix: '',
- basePath: ''
+ basePath: '',
+ acl: ['admin']
},
tab: 'form',
isEdit: false,
rules: {
name: [{ required: true, message: i18n.t('daas_data_server_drawer_qingshurufuwu'), trigger: 'blur' }],
+ acl: [{ required: true, message: i18n.t('daas_data_server_drawer_selectPermissions'), trigger: 'blur' }],
connectionType: [
{ required: true, message: i18n.t('daas_data_server_drawer_qingxuanzelianjie'), trigger: 'blur' }
],
@@ -603,10 +605,10 @@ export default {
where: path.where || [],
sort: path.sort || [],
path: path.path || '',
- aal: path.acl
+ acl: path.acl
}
this.form.description = this.data.description
- this.form.acl = path.acl
+ this.form.acl = path.acl || ['admin']
let host = this.host
let _path = this.data.path
let baseUrl = host + _path
@@ -659,6 +661,9 @@ export default {
this.isEdit = true
this.form = cloneDeep(this.data)
this.form.status = 'generating'
+ // 若为新建时,则默认值为 ‘默认查询(defaultApi)’ 的值
+ this.form.pathAccessMethod = this.data?.pathAccessMethod || 'default'
+ this.form.acl = this.data?.path?.acl || ['admin']
this.getDatabaseTypes()
let { connectionId, tableName } = this.form
if (connectionId) {
@@ -669,7 +674,7 @@ export default {
}
},
// 保存,新建和修改
- save() {
+ save(type) {
this.$refs.form.validate(async valid => {
if (valid) {
//自定义路径 数据清理
@@ -710,7 +715,7 @@ export default {
return this.$message.error(i18n.t('daas_data_server_drawer_qingshurucanshu'))
}
this.loading = true
- const data = await modulesApi[id ? 'patch' : 'post']({
+ let formData = {
id,
status,
name,
@@ -747,10 +752,13 @@ export default {
fields,
path
}
- ],
-
- fields: this.allFields
- }).finally(() => {
+ ]
+ }
+ if (!type) {
+ //生成按钮 不传fields覆盖数据库已有数据 (open 抽屉this.allFields 就清空了数据)
+ formData.fields = this.allFields
+ }
+ const data = await modulesApi[id ? 'patch' : 'post'](formData).finally(() => {
this.loading = false
})
data.connection = connectionId
@@ -786,7 +794,7 @@ export default {
this.form.status = 'pending'
this.$nextTick(() => {
// save会校验表单项,不加nextTick会导致验证不通过
- this.save()
+ this.save('generate')
})
},
// 获取可选数据源类型
@@ -896,6 +904,9 @@ export default {
this.getFields()
this.$refs?.form?.clearValidate('tableName')
},
+ aclChanged() {
+ this.$refs?.form?.clearValidate('acl')
+ },
fieldsChanged(val) {
this.form.fields = val
},
From 1ba0361b9ffb7d365c93c36d9ae32ba8f71045a8 Mon Sep 17 00:00:00 2001
From: xufei
Date: Wed, 1 Feb 2023 16:20:33 +0800
Subject: [PATCH 097/124] refactor: update task status agent tooltip #133557
---
packages/business/src/components/TaskStatus.vue | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/packages/business/src/components/TaskStatus.vue b/packages/business/src/components/TaskStatus.vue
index 145df67f1d..9c6e304f19 100644
--- a/packages/business/src/components/TaskStatus.vue
+++ b/packages/business/src/components/TaskStatus.vue
@@ -25,8 +25,10 @@
$t('packages_business_task_status_agent_tooltip_time', {
time: pingTime
})
- }},{{ $t('packages_business_task_status_agent_tooltip_agent') }}:
- {{ agentStatus }}
+ }},{{ $t('packages_business_task_status_agent_tooltip_agent') }}:
+ {{ agentStatus }}
@@ -73,7 +75,7 @@ export default {
agentStatus() {
const info = this.agentInfo
- return info ? `${info.name}(${info.status})` : '-'
+ return info ? `${info.name}(${info.status})` : null
},
showCronTip() {
From 35cd5a5c65cd439e8c4bec6a3ec96ad301a5417a Mon Sep 17 00:00:00 2001
From: xufei
+
this.handleRename(node, data)}
- />
- ) : (
+ // v-model={data.field_name}
+ onChange={val => {
+ if (val) {
+ data.field_name = val
+ this.handleRename(node, data)
+ } else {
+ }
+ }}
+ />*/
{data.field_name}
)}
From 974ce1f9fb262ba05a06f667282961fcb408c94f Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 18:44:04 +0800
Subject: [PATCH 073/124] feat(node/selectTable): add checkTableExist function
---
packages/api/src/MetadataInstances.js | 3 +++
packages/dag/src/mixins/formScope.js | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/packages/api/src/MetadataInstances.js b/packages/api/src/MetadataInstances.js
index 7a9279b0d2..de8ec0205e 100644
--- a/packages/api/src/MetadataInstances.js
+++ b/packages/api/src/MetadataInstances.js
@@ -125,5 +125,8 @@ export default class MetadataInstances extends Http {
tapTables(params) {
return this.axios.get(this.url + '/tapTables?filter=' + encodeURIComponent(params.filter))
}
+ checkTableExist(params) {
+ return this.axios.get(this.url + '/check/table/exist', { params })
+ }
}
export { MetadataInstances }
diff --git a/packages/dag/src/mixins/formScope.js b/packages/dag/src/mixins/formScope.js
index 7276a8485d..1dd94d8a8b 100644
--- a/packages/dag/src/mixins/formScope.js
+++ b/packages/dag/src/mixins/formScope.js
@@ -282,14 +282,27 @@ export default {
},
order: ['original_name ASC']
})
+ let existField = ''
if (!filter.where.original_name) {
filter.where.original_name = {
// regexp: '^[^\\s]+$'
neq: ''
}
+ } else {
+ const table = filter.where.original_name?.like
+ const res = await metadataInstancesApi.checkTableExist({
+ connectionId: filter.where['source.id'],
+ tableName: table
+ })
+ if (res?.exist) {
+ existField = table
+ }
}
const data = await metadataInstancesApi.get({ filter: JSON.stringify(filter) }, config)
data.items = data.items.map(item => item.original_name)
+ if (existField) {
+ data.items.unshift(existField)
+ }
return data
},
From e35c8c0274ccd191f197200e7f1356fea5da69b3 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 19:01:12 +0800
Subject: [PATCH 074/124] feat(node/selectTable): add checkTableExist function
---
packages/dag/src/mixins/formScope.js | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/packages/dag/src/mixins/formScope.js b/packages/dag/src/mixins/formScope.js
index 1dd94d8a8b..d8d4afeaf5 100644
--- a/packages/dag/src/mixins/formScope.js
+++ b/packages/dag/src/mixins/formScope.js
@@ -282,27 +282,24 @@ export default {
},
order: ['original_name ASC']
})
- let existField = ''
if (!filter.where.original_name) {
filter.where.original_name = {
// regexp: '^[^\\s]+$'
neq: ''
}
- } else {
- const table = filter.where.original_name?.like
+ }
+ const data = await metadataInstancesApi.get({ filter: JSON.stringify(filter) }, config)
+ data.items = data.items.map(item => item.original_name)
+ const table = filter.where.original_name?.like
+ if (table && !data.items.includes(table)) {
const res = await metadataInstancesApi.checkTableExist({
connectionId: filter.where['source.id'],
tableName: table
})
if (res?.exist) {
- existField = table
+ data.items.unshift(table)
}
}
- const data = await metadataInstancesApi.get({ filter: JSON.stringify(filter) }, config)
- data.items = data.items.map(item => item.original_name)
- if (existField) {
- data.items.unshift(existField)
- }
return data
},
From 5f2f8617de47dc682feecd39a9c48abbcd270611 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 19:33:30 +0800
Subject: [PATCH 075/124] feat(connection/list): add loadSchemaTime columns
---
packages/business/src/views/connections/List.vue | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/packages/business/src/views/connections/List.vue b/packages/business/src/views/connections/List.vue
index 31b381139c..2218086a80 100644
--- a/packages/business/src/views/connections/List.vue
+++ b/packages/business/src/views/connections/List.vue
@@ -103,6 +103,11 @@
+
+
+ {{ scope.row.loadSchemaTime }}
+
+
Date: Tue, 17 Jan 2023 20:05:16 +0800
Subject: [PATCH 076/124] refactor(migrate/editor/setting): change tooltip
#132102
---
packages/dag/src/locale/lang/en.js | 2 +-
packages/dag/src/locale/lang/zh-CN.js | 2 +-
packages/dag/src/locale/lang/zh-TW.js | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/dag/src/locale/lang/en.js b/packages/dag/src/locale/lang/en.js
index 2cb6cc25ec..8c7fc50631 100644
--- a/packages/dag/src/locale/lang/en.js
+++ b/packages/dag/src/locale/lang/en.js
@@ -195,7 +195,7 @@ export default {
packages_dag_migration_configpanel_peizhi: 'Configuration',
packages_dag_migration_consolepanel_quanburizhi: 'All logs',
packages_dag_migration_settingpanel_dangrenwufuhe:
- 'When the task meets the following conditions, the verification will not be performed even if the switch task is turned on\n 1. Added an intermediate processing node\n 2. The source connection does not support verification\n 3. The target connection does not support verification',
+ 'When data verification is enabled, the task will automatically perform full verification and incremental verification for the data replication consistency. The verification results can be viewed on the Task Monitoring page. Note the verification currently does not support following scenarios, when one of the following happens, this feature will have no effect:\n 1. There is a processing node in the pipeline\n 2. The source connection does not support verification\n 3. The target connection does not support verification',
packages_dag_monitor_bottompanel_yunxingjilu: 'Running record',
packages_dag_monitor_bottompanel_rizhi: 'Log',
packages_dag_components_eventchart_qita: 'Other',
diff --git a/packages/dag/src/locale/lang/zh-CN.js b/packages/dag/src/locale/lang/zh-CN.js
index e12308dfb2..cb9884c851 100644
--- a/packages/dag/src/locale/lang/zh-CN.js
+++ b/packages/dag/src/locale/lang/zh-CN.js
@@ -185,7 +185,7 @@ export default {
packages_dag_migration_configpanel_peizhi: '配置',
packages_dag_migration_consolepanel_quanburizhi: '全部日志',
packages_dag_migration_settingpanel_dangrenwufuhe:
- '当任务符合以下情况下,即使开启开关任务也不会进行校验\n 1.添加了中间处理节点\n 2.源连接不支持校验\n 3.目标连接不支持校验',
+ '开启数据校验开关后,任务会自动对同步结果的一致性进行全量校验和增量校验,并会在运行监控页面将校验不一致的数据行数展示出来。需要注意,当任务符合以下情况时,即使开启校验开关任务也不会进行校验\n 1. 添加了中间处理节点\n 2. 源连接不支持校验\n 3. 目标连接不支持校验',
packages_dag_monitor_bottompanel_yunxingjilu: '运行记录',
packages_dag_monitor_bottompanel_rizhi: '日志',
packages_dag_components_eventchart_qita: '其他',
diff --git a/packages/dag/src/locale/lang/zh-TW.js b/packages/dag/src/locale/lang/zh-TW.js
index 2e4d9b2737..db072c8832 100644
--- a/packages/dag/src/locale/lang/zh-TW.js
+++ b/packages/dag/src/locale/lang/zh-TW.js
@@ -185,7 +185,7 @@ export default {
packages_dag_migration_configpanel_peizhi: '配置',
packages_dag_migration_consolepanel_quanburizhi: '全部日誌',
packages_dag_migration_settingpanel_dangrenwufuhe:
- '當任務符合以下情況下,即使開啟開關任務也不會進行校驗\n 1.添加了中間處理節點\n 2.源連接不支持校驗\n 3.目標連接不支持校驗',
+ '開啟數據校驗開關後,任務會自動對同步結果的一致性進行全量校驗和增量校驗,並會在運行監控頁面將校驗不一致的數據行數展示出來。需要注意,當任務符合以下情況時,即使開啟校驗開關任務也不會進行校驗\n 1. 添加了中間處理節點\n 2. 源連接不支持校驗\n 3. 目標連接不支持校驗',
packages_dag_monitor_bottompanel_yunxingjilu: '運行記錄',
packages_dag_monitor_bottompanel_rizhi: '日誌',
packages_dag_components_eventchart_qita: '其他',
From 10a13ced4229416ef5280d30a61dfbd61e7699d1 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Wed, 18 Jan 2023 11:26:04 +0800
Subject: [PATCH 077/124] refactor(StageButton): change setTimeout params
---
packages/component/src/StageButton.vue | 30 ++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/packages/component/src/StageButton.vue b/packages/component/src/StageButton.vue
index 7e9eb1f949..01c180f7bc 100644
--- a/packages/component/src/StageButton.vue
+++ b/packages/component/src/StageButton.vue
@@ -52,8 +52,9 @@ export default {
loadCount: 0,
loadFieldsStatus: 'loading'
})
- .then(() => {
+ .then(data => {
this.getProgress()
+ this.startByConnection(data, true, false)
})
},
@@ -65,16 +66,37 @@ export default {
this.progress = '0'
connectionsApi.getNoSchema(this.connectionId).then(res => {
if (res.loadFieldsStatus !== 'finished') {
- setTimeout(this.getProgress, 2000)
+ setTimeout(this.getProgress, 1000)
} else {
this.progress = 100 + '%'
setTimeout(() => {
this.$emit('complete')
this.loading = false
- }, 1000)
+ }, 200)
}
})
- }
+ },
+
+ startByConnection(connection, updateSchema, editTest) {
+ let msg = {
+ type: 'testConnection',
+ data: connection
+ }
+ msg.data['updateSchema'] = false
+ msg.data['editTest'] = false
+ if (updateSchema) {
+ msg.data['updateSchema'] = updateSchema
+ }
+ if (editTest) {
+ msg.data['editTest'] = editTest
+ }
+ this.$ws.ready(() => {
+ this.$ws.send(msg)
+ this.$ws.once('401', () => {
+ this.$ws.send(msg)
+ })
+ })
+ },
}
}
From 95a4e0f9b8703bd11eb4083d1f9b41e0117154ff Mon Sep 17 00:00:00 2001
From: fannie
Date: Wed, 18 Jan 2023 12:09:40 +0800
Subject: [PATCH 078/124] fix(setting): defaultValue required:true
---
packages/dag/src/nodes/Table.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index 069dfad1ff..0ad96e0f1d 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -380,6 +380,7 @@ export class Table extends NodeType {
},
defaultValue: {
title: '轮询字段默认值',
+ required: true,
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
From aaa2ce4a36abad973957b176bfa7d9fd01cfac6a Mon Sep 17 00:00:00 2001
From: xufei
Date: Sat, 28 Jan 2023 10:33:45 +0800
Subject: [PATCH 079/124] revert: cancel hide item with count
---
packages/component/src/DiscoveryClassification.vue | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/packages/component/src/DiscoveryClassification.vue b/packages/component/src/DiscoveryClassification.vue
index 3045c3a2e6..d3f74de543 100644
--- a/packages/component/src/DiscoveryClassification.vue
+++ b/packages/component/src/DiscoveryClassification.vue
@@ -310,11 +310,9 @@ export default {
//遍历第一次, 先把所有子类按照id分成若干数组
items.forEach(it => {
if (it.parent_id) {
- if (it.objCount) {
- let children = map[it.parent_id] || []
- children.push(it)
- map[it.parent_id] = children
- }
+ let children = map[it.parent_id] || []
+ children.push(it)
+ map[it.parent_id] = children
} else {
//默认目录国际化
if (it?.item_type && it?.item_type.findIndex(t => t === 'default') > -1) {
From ce0e7832a9c9e65909ff617bdcb1dc890530ec2b Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Sat, 28 Jan 2023 15:37:36 +0800
Subject: [PATCH 080/124] refactor(@shared/util): add params in
getPickerOptionsBeforeTime function
---
packages/business/src/shared/util.js | 4 ++--
packages/dag/src/components/migration/SettingPanel.vue | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/packages/business/src/shared/util.js b/packages/business/src/shared/util.js
index 861df563d5..92448682c2 100644
--- a/packages/business/src/shared/util.js
+++ b/packages/business/src/shared/util.js
@@ -58,8 +58,8 @@ export function toThousandsUnit(val) {
}
// datepicker配置,有效时间为 当前时间~以前
-export function getPickerOptionsBeforeTime(val = Time.now(), cb) {
- const now = Time.now()
+export function getPickerOptionsBeforeTime(val = Time.now(), nowTimestamp, cb) {
+ const now = nowTimestamp || Time.now()
const formatMap = {
date: 'YYYY-MM-DD',
time: 'HH:mm:ss',
diff --git a/packages/dag/src/components/migration/SettingPanel.vue b/packages/dag/src/components/migration/SettingPanel.vue
index 452511760c..c466b63a38 100644
--- a/packages/dag/src/components/migration/SettingPanel.vue
+++ b/packages/dag/src/components/migration/SettingPanel.vue
@@ -262,9 +262,10 @@ export default observer({
}
},
{
+ dependencies: ['.pointType'],
fulfill: {
schema: {
- 'x-component-props.pickerOptions': `{{getPickerOptionsBeforeTime($self.value)}}`
+ 'x-component-props.pickerOptions': `{{getPickerOptionsBeforeTime($self.value, $deps[0] === "localTZ" ? Date.now() : "")}}`
}
}
}
From 5ce3b09b8d46671360747be9466d3daa966f1a09 Mon Sep 17 00:00:00 2001
From: xufei
Date: Sun, 29 Jan 2023 15:24:19 +0800
Subject: [PATCH 081/124] fix: fix MigrationMonitorViewer js node config empty
---
packages/dag/src/MigrationMonitorViewer.vue | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/dag/src/MigrationMonitorViewer.vue b/packages/dag/src/MigrationMonitorViewer.vue
index 58bbc97c8b..a878eb419c 100644
--- a/packages/dag/src/MigrationMonitorViewer.vue
+++ b/packages/dag/src/MigrationMonitorViewer.vue
@@ -243,7 +243,7 @@ export default {
},
methods: {
- ...mapMutations('dataflow', ['setPdkPropertiesMap']),
+ ...mapMutations('dataflow', ['setPdkPropertiesMap', 'setTaskInfo']),
init() {
this.timer && clearInterval(this.timer)
@@ -770,6 +770,7 @@ export default {
}
data.dag = data.temp || data.dag // 和后端约定了,如果缓存有数据则获取temp
this.reformDataflow(data)
+ this.setTaskInfo(this.dataflow)
return data
} catch (e) {
console.log(i18n.t('packages_dag_mixins_editor_renwujiazaichu'), e) // eslint-disable-line
From 416f379a71d008c5c5b1d9f54bd502502cabb074 Mon Sep 17 00:00:00 2001
From: fannie
Date: Sun, 29 Jan 2023 16:03:18 +0800
Subject: [PATCH 082/124] fix(setting): fix syncPoints #13332 & #13331
---
.../src/components/migration/SettingPanel.vue | 16 ++++++++++++++++
packages/dag/src/nodes/Table.js | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/packages/dag/src/components/migration/SettingPanel.vue b/packages/dag/src/components/migration/SettingPanel.vue
index 452511760c..5da05f0f81 100644
--- a/packages/dag/src/components/migration/SettingPanel.vue
+++ b/packages/dag/src/components/migration/SettingPanel.vue
@@ -214,6 +214,11 @@ export default observer({
}
}
},
+ hiddenPointType: {
+ 'x-display': 'hidden',
+ type: 'boolean',
+ 'x-component': 'PreviewText.Input'
+ },
connectionName: {
'x-display': 'hidden',
type: 'string',
@@ -240,6 +245,16 @@ export default observer({
label: this.$t('packages_dag_dataFlow_SyncInfo_currentType'),
value: 'current'
}
+ ],
+ 'x-reactions': [
+ {
+ dependencies: ['.hiddenPointType'],
+ fulfill: {
+ state: {
+ disabled: `{{$deps[0]}}`
+ }
+ }
+ }
]
},
dateTime: {
@@ -496,6 +511,7 @@ export default observer({
.map(node => ({
nodeId: node.id,
nodeName: node.name,
+ hiddenPointType: node?.cdcMode === 'polling', //源节点开启了日志轮询则禁用增量采集时刻配置
connectionId: node.connectionId,
connectionName: node.attrs.connectionName
}))
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index 0ad96e0f1d..ea6f864316 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -396,7 +396,7 @@ export class Table extends NodeType {
}
},
cdcPollingInterval: {
- title: '轮询间隔',
+ title: '轮询间隔(ms)',
type: 'object',
default: 500,
'x-decorator': 'FormItem',
From 8b743fcde5473a2a7924c61a6d2099c5e9c0b7dd Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Sat, 28 Jan 2023 19:24:50 +0800
Subject: [PATCH 083/124] refactor(@business): add i18n language
---
packages/business/src/locale/lang/en.js | 3 ++-
packages/business/src/locale/lang/zh-CN.js | 3 ++-
packages/business/src/locale/lang/zh-TW.js | 3 ++-
packages/business/src/views/connections/List.vue | 7 ++++++-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/packages/business/src/locale/lang/en.js b/packages/business/src/locale/lang/en.js
index a753378f8f..31ea8a8fba 100644
--- a/packages/business/src/locale/lang/en.js
+++ b/packages/business/src/locale/lang/en.js
@@ -734,5 +734,6 @@ export default {
packages_business_relation_details_wajuexinxi: 'Mining information',
packages_business_connections_databaseform_shujuyuanzhongmo:
'When the number of models in the data source is greater than 10,000, the model will be refreshed according to this parameter setting',
- packages_business_connections_databaseform_moxingjiazaipin: 'Model Load Frequency'
+ packages_business_connections_databaseform_moxingjiazaipin: 'Model Load Frequency',
+ packages_business_connections_list_biaojiegougengxin: 'Table structure update time'
}
diff --git a/packages/business/src/locale/lang/zh-CN.js b/packages/business/src/locale/lang/zh-CN.js
index 3bf1aef93c..04223c4d66 100644
--- a/packages/business/src/locale/lang/zh-CN.js
+++ b/packages/business/src/locale/lang/zh-CN.js
@@ -710,5 +710,6 @@ export default {
packages_business_relation_details_wajuemingcheng: '挖掘名称',
packages_business_relation_details_wajuexinxi: '挖掘信息',
packages_business_connections_databaseform_shujuyuanzhongmo: '数据源中模型数量大于1万时,会按本参数设置进行模型刷新',
- packages_business_connections_databaseform_moxingjiazaipin: '模型加载频率'
+ packages_business_connections_databaseform_moxingjiazaipin: '模型加载频率',
+ packages_business_connections_list_biaojiegougengxin: '表结构更新时间'
}
diff --git a/packages/business/src/locale/lang/zh-TW.js b/packages/business/src/locale/lang/zh-TW.js
index db3fa71bfc..e6e7bd11f8 100644
--- a/packages/business/src/locale/lang/zh-TW.js
+++ b/packages/business/src/locale/lang/zh-TW.js
@@ -712,5 +712,6 @@ export default {
packages_business_relation_details_wajuemingcheng: '挖掘名稱',
packages_business_relation_details_wajuexinxi: '挖掘信息',
packages_business_connections_databaseform_shujuyuanzhongmo: '數據源中模型數量大於1萬時,會按本參數設置進行模型刷新',
- packages_business_connections_databaseform_moxingjiazaipin: '模型加載頻率'
+ packages_business_connections_databaseform_moxingjiazaipin: '模型加載頻率',
+ packages_business_connections_list_biaojiegougengxin: '表結構更新時間'
}
diff --git a/packages/business/src/views/connections/List.vue b/packages/business/src/views/connections/List.vue
index 2218086a80..c187c41fd2 100644
--- a/packages/business/src/views/connections/List.vue
+++ b/packages/business/src/views/connections/List.vue
@@ -103,7 +103,12 @@
-
+
{{ scope.row.loadSchemaTime }}
From 002b77b0f20b9d09a5ed3110a3d92c97aa61cd4a Mon Sep 17 00:00:00 2001
From: fannie
Date: Mon, 30 Jan 2023 11:37:26 +0800
Subject: [PATCH 084/124] fix(role): fix some bugs #132473 #132472 #132471
---
apps/daas/src/router/routes.js | 4 ++--
apps/daas/src/views/Layout.vue | 6 ++++--
apps/daas/src/views/cluster/Cluster.vue | 6 ++++++
apps/daas/src/views/role/Role.vue | 11 -----------
apps/daas/src/views/user/List.vue | 9 ++++++++-
5 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/apps/daas/src/router/routes.js b/apps/daas/src/router/routes.js
index 82b28b704b..13ee1482a2 100644
--- a/apps/daas/src/router/routes.js
+++ b/apps/daas/src/router/routes.js
@@ -820,7 +820,7 @@ export default [
name: 'role',
component: RoleDetails,
meta: {
- title: 'page_title_role',
+ title: 'role_list_setting_permissions',
code: 'v2_role_creation'
}
},
@@ -829,7 +829,7 @@ export default [
name: 'editRole',
component: RoleDetails,
meta: {
- title: 'page_title_role',
+ title: 'role_list_setting_permissions',
code: 'v2_role_edition'
}
}
diff --git a/apps/daas/src/views/Layout.vue b/apps/daas/src/views/Layout.vue
index 0376a1d0d9..8f3260f5e9 100644
--- a/apps/daas/src/views/Layout.vue
+++ b/apps/daas/src/views/Layout.vue
@@ -114,7 +114,8 @@
'apiMonitor',
'migrateList',
'dataflowList',
- 'connectionsList'
+ 'connectionsList',
+ 'users'
].includes($route.name)
},
{
@@ -124,7 +125,8 @@
'apiMonitor',
'migrateList',
'dataflowList',
- 'connectionsList'
+ 'connectionsList',
+ 'users'
].includes($route.name)
}
]"
diff --git a/apps/daas/src/views/cluster/Cluster.vue b/apps/daas/src/views/cluster/Cluster.vue
index e36e1a4aef..41621d1bbf 100644
--- a/apps/daas/src/views/cluster/Cluster.vue
+++ b/apps/daas/src/views/cluster/Cluster.vue
@@ -332,6 +332,12 @@ export default {
created() {
this.getDataApi()
},
+ watch: {
+ '$route.query'() {
+ this.searchParams = this.$route.query
+ this.getDataApi()
+ }
+ },
methods: {
// 提交
async submitForm() {
diff --git a/apps/daas/src/views/role/Role.vue b/apps/daas/src/views/role/Role.vue
index ae1ada6714..cc7a95bb03 100644
--- a/apps/daas/src/views/role/Role.vue
+++ b/apps/daas/src/views/role/Role.vue
@@ -212,17 +212,6 @@ let pageSort = [
{ name: 'v2_shared_cache_menu' }
]
},
- {
- name: 'data_transmission',
- children: [
- { name: 'v2_data_replication' },
- { name: 'v2_data_flow' },
- { name: 'v2_log_collector_menu' },
- { name: 'v2_function_management_list' },
- { name: 'v2_custom_node_menu' },
- { name: 'v2_shared_cache_menu' }
- ]
- },
{
name: 'data_verify',
children: [
diff --git a/apps/daas/src/views/user/List.vue b/apps/daas/src/views/user/List.vue
index c65ff419f1..5f7c9f9cce 100644
--- a/apps/daas/src/views/user/List.vue
+++ b/apps/daas/src/views/user/List.vue
@@ -252,6 +252,7 @@ export default {
notActivatedCount: 0,
notVerifiedCount: 0,
rejectedCount: 0,
+ filterItems: [],
createForm: {
username: '',
email: '',
@@ -377,6 +378,12 @@ export default {
return this.$refs.table
}
},
+ watch: {
+ '$route.query'() {
+ this.searchParams = this.$route.query
+ this.table.fetch(1)
+ }
+ },
methods: {
// 重置
reset(name) {
@@ -430,7 +437,6 @@ export default {
filter: JSON.stringify(filter)
})
.then(data => {
- this.getCount()
let list = data?.items || []
return {
total: data?.total,
@@ -913,6 +919,7 @@ export default {
From a3ce729eb36f46429ed0175c2a2506715c31120e Mon Sep 17 00:00:00 2001
From: xufei
Date: Tue, 31 Jan 2023 23:18:44 +0800
Subject: [PATCH 094/124] refactor: update task status cron tooltip; show
lastStartDate
---
.../business/src/components/TaskStatus.vue | 22 +++++++++++--------
packages/business/src/locale/lang/en.js | 1 +
packages/business/src/locale/lang/zh-CN.js | 1 +
packages/business/src/locale/lang/zh-TW.js | 1 +
packages/business/src/views/task/List.vue | 9 ++++----
5 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/packages/business/src/components/TaskStatus.vue b/packages/business/src/components/TaskStatus.vue
index efd0fa2f1f..145df67f1d 100644
--- a/packages/business/src/components/TaskStatus.vue
+++ b/packages/business/src/components/TaskStatus.vue
@@ -78,12 +78,18 @@ export default {
showCronTip() {
const task = this.task
- return (
- (task.status === 'wait_start' || task.status === 'complete') &&
- task.type === 'initial_sync' &&
- task.crontabExpressionFlag &&
- task.crontabExpression
- )
+ let ifShow =
+ task.status !== 'edit' && task.type === 'initial_sync' && task.crontabExpressionFlag && task.crontabExpression
+ if (!ifShow) return ifShow
+ try {
+ if (cronParse.parseExpression(this.task.crontabExpression).hasNext()) {
+ return true
+ }
+ } catch (err) {
+ // eslint-disable-next-line no-console
+ console.log('Error: ' + err.message)
+ }
+ return false
}
},
@@ -106,9 +112,8 @@ export default {
},
getNextStartTime() {
- let str = this.$t('packages_dag_task_setting_crontabExpressionFlag')
try {
- if (!this.task.crontabExpression) return str
+ if (!this.task.crontabExpression) return
const interval = cronParse.parseExpression(this.task.crontabExpression)
return this.$t('packages_business_task_status_next_run_time', {
val: dayjs(interval.next()).format('YYYY-MM-DD HH:mm:ss')
@@ -116,7 +121,6 @@ export default {
} catch (err) {
console.log('Error: ' + err.message)
}
- return str
}
}
}
diff --git a/packages/business/src/locale/lang/en.js b/packages/business/src/locale/lang/en.js
index 14cc3c20ad..d2b1aee601 100644
--- a/packages/business/src/locale/lang/en.js
+++ b/packages/business/src/locale/lang/en.js
@@ -319,6 +319,7 @@ export default {
packages_business_button_bulk_import: 'Bulk Import',
packages_business_message_save_fail: 'Save failed',
packages_business_column_create_time: 'Create Time',
+ packages_business_column_last_start_time: 'Start Time',
packages_business_column_event_time: 'Event Time',
packages_business_task_list_transform_running: 'Field mapping running',
packages_business_task_list_transform_done: 'Field mapping completed',
diff --git a/packages/business/src/locale/lang/zh-CN.js b/packages/business/src/locale/lang/zh-CN.js
index 36a77d0c53..aa21441b94 100644
--- a/packages/business/src/locale/lang/zh-CN.js
+++ b/packages/business/src/locale/lang/zh-CN.js
@@ -312,6 +312,7 @@ export default {
packages_business_button_bulk_import: '导入',
packages_business_message_save_fail: '保存失败',
packages_business_column_create_time: '创建时间',
+ packages_business_column_last_start_time: '上次运行时间',
packages_business_column_event_time: '增量时间点',
packages_business_task_list_transform_running: '推演中',
packages_business_task_list_transform_done: '推演完成',
diff --git a/packages/business/src/locale/lang/zh-TW.js b/packages/business/src/locale/lang/zh-TW.js
index 2bb896f325..6c487bebe6 100644
--- a/packages/business/src/locale/lang/zh-TW.js
+++ b/packages/business/src/locale/lang/zh-TW.js
@@ -312,6 +312,7 @@ export default {
packages_business_button_bulk_import: '導入',
packages_business_message_save_fail: '保存失敗',
packages_business_column_create_time: '創建時間',
+ packages_business_column_last_start_time: '上次運行時間',
packages_business_column_event_time: '增量時間點',
packages_business_task_list_transform_done: '推演完成',
packages_business_task_list_transform_error: '推演失敗',
diff --git a/packages/business/src/views/task/List.vue b/packages/business/src/views/task/List.vue
index f5968cd4c9..834f9b0dcd 100644
--- a/packages/business/src/views/task/List.vue
+++ b/packages/business/src/views/task/List.vue
@@ -148,13 +148,13 @@
- {{ formatTime(row.createTime) }}
+ {{ formatTime(row.lastStartDate) }}
@@ -462,7 +462,8 @@ export default {
canForceStopping: true,
currentEventTimestamp: true,
crontabExpressionFlag: true,
- crontabExpression: true
+ crontabExpression: true,
+ lastStartDate: true
}
let where = {
syncType
From 69f3ddf75e6ff4a73c89f854d54199b55395a405 Mon Sep 17 00:00:00 2001
From: xufei
Date: Wed, 1 Feb 2023 11:34:10 +0800
Subject: [PATCH 095/124] style: update task list time column minWidth
---
packages/business/src/views/task/List.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/business/src/views/task/List.vue b/packages/business/src/views/task/List.vue
index 834f9b0dcd..efe25ebc39 100644
--- a/packages/business/src/views/task/List.vue
+++ b/packages/business/src/views/task/List.vue
@@ -141,7 +141,7 @@
sortable
prop="currentEventTimestamp"
:label="$t('packages_business_column_event_time')"
- min-width="160"
+ min-width="164"
>
{{ formatTime(row.currentEventTimestamp) }}
@@ -150,7 +150,7 @@
From 31aec1cf8cedb04170003b43b093404c98cfa172 Mon Sep 17 00:00:00 2001
From: fannie
Date: Wed, 1 Feb 2023 15:27:41 +0800
Subject: [PATCH 096/124] fix(apiServer): Optimize the [Generate] function
#3476 & Adjust style
---
apps/daas/src/i18n/langs/en.js | 1 +
apps/daas/src/i18n/langs/zh-CN.js | 1 +
apps/daas/src/i18n/langs/zh-TW.js | 1 +
.../src/views/data-discovery/Catalogue.tsx | 2 +-
.../src/views/data-discovery/ObjectTable.tsx | 9 ++++-
apps/daas/src/views/data-discovery/index.scss | 3 ++
apps/daas/src/views/data-server/Drawer.vue | 37 ++++++++++++-------
7 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/apps/daas/src/i18n/langs/en.js b/apps/daas/src/i18n/langs/en.js
index cd45fe68e8..96abbebe99 100644
--- a/apps/daas/src/i18n/langs/en.js
+++ b/apps/daas/src/i18n/langs/en.js
@@ -1998,6 +1998,7 @@ export default {
daas_data_server_drawer_qingxuanzeduixiang: 'Please select the object name',
daas_data_server_drawer_qingxuanzelianjie: 'Please Select connection type',
daas_data_server_drawer_qingshurufuwu: 'Please enter service name',
+ daas_data_server_drawer_selectPermissions: 'Please select the scope of authority',
daas_data_server_drawer_shilidaima: 'Sample Code',
daas_data_server_drawer_shilidaima2: 'Sample Code',
daas_data_server_drawer_fanhuijieguo: 'Return Result',
diff --git a/apps/daas/src/i18n/langs/zh-CN.js b/apps/daas/src/i18n/langs/zh-CN.js
index f1e9414997..a0fde8f573 100644
--- a/apps/daas/src/i18n/langs/zh-CN.js
+++ b/apps/daas/src/i18n/langs/zh-CN.js
@@ -1946,6 +1946,7 @@ export default {
daas_data_server_drawer_qingxuanzeduixiang: '请选择对象名称',
daas_data_server_drawer_qingxuanzelianjie: '请选择连接类型',
daas_data_server_drawer_qingshurufuwu: '请输入服务名称',
+ daas_data_server_drawer_selectPermissions: '请选择权限范围',
daas_data_server_drawer_shilidaima: '示例代码',
daas_data_server_drawer_shilidaima2: '示例代码',
daas_data_server_drawer_fanhuijieguo: '返回结果',
diff --git a/apps/daas/src/i18n/langs/zh-TW.js b/apps/daas/src/i18n/langs/zh-TW.js
index 5f7fa345e3..258d0b1117 100644
--- a/apps/daas/src/i18n/langs/zh-TW.js
+++ b/apps/daas/src/i18n/langs/zh-TW.js
@@ -1943,6 +1943,7 @@ export default {
daas_data_server_drawer_qingxuanzeduixiang: '請選擇對象名稱',
daas_data_server_drawer_qingxuanzelianjie: '請選擇連接類型',
daas_data_server_drawer_qingshurufuwu: '請輸入服務名稱',
+ daas_data_server_drawer_selectPermissions: '請選擇權限範圍',
daas_data_server_drawer_shilidaima: '示例代碼',
daas_data_server_drawer_shilidaima2: '示例代碼',
daas_data_server_drawer_fanhuijieguo: '返回結果',
diff --git a/apps/daas/src/views/data-discovery/Catalogue.tsx b/apps/daas/src/views/data-discovery/Catalogue.tsx
index 872f35b835..f915bf3efb 100644
--- a/apps/daas/src/views/data-discovery/Catalogue.tsx
+++ b/apps/daas/src/views/data-discovery/Catalogue.tsx
@@ -238,7 +238,7 @@ export default defineComponent({
+
-
+
)
diff --git a/apps/daas/src/views/data-discovery/index.scss b/apps/daas/src/views/data-discovery/index.scss
index 55ae5c929d..7d095f2d2f 100644
--- a/apps/daas/src/views/data-discovery/index.scss
+++ b/apps/daas/src/views/data-discovery/index.scss
@@ -11,6 +11,9 @@
}
}
}
+.catalogue-drawer-resource-wrap{
+ padding: 0 24px 24px 24px;
+}
.discovery-page-main-box{
display: flex;
-ms-flex: 1;
diff --git a/apps/daas/src/views/data-server/Drawer.vue b/apps/daas/src/views/data-server/Drawer.vue
index bad8caa8c4..34157ad92a 100644
--- a/apps/daas/src/views/data-server/Drawer.vue
+++ b/apps/daas/src/views/data-server/Drawer.vue
@@ -40,7 +40,7 @@
{{
$t('button_cancel')
}}
- {{ $t('button_save') }}
+ {{ $t('button_save') }}
{{ $t('button_edit') }}
@@ -53,8 +53,8 @@
:disabled="!isEdit"
>
-
{{
$t('packages_business_relation_details_wajuexinxi')
From ffc0b43cceaf06db20f18d0e2cfc98035dab601c Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Tue, 17 Jan 2023 15:54:49 +0800
Subject: [PATCH 070/124] refactor(databaseForm): extract language text
---
packages/business/src/locale/lang/en.js | 5 ++++-
packages/business/src/locale/lang/zh-CN.js | 4 +++-
packages/business/src/locale/lang/zh-TW.js | 4 +++-
packages/business/src/views/connections/DatabaseForm.vue | 6 +++---
4 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/packages/business/src/locale/lang/en.js b/packages/business/src/locale/lang/en.js
index c06e725bbe..7331b5b091 100644
--- a/packages/business/src/locale/lang/en.js
+++ b/packages/business/src/locale/lang/en.js
@@ -728,5 +728,8 @@ export default {
packages_business_verification_form_jianyanrenwuyun: 'Verification task running error warning',
packages_business_verification_form_jiaoyangaojing: 'Verification warning',
packages_business_task_status_error_tip:
- "ask_list_error_tip: 'The task has been successfully deleted, but the information of the following PostgreSQL connections failed to be cleared, and you need to manually clear them in the following ways"
+ "ask_list_error_tip: 'The task has been successfully deleted, but the information of the following PostgreSQL connections failed to be cleared, and you need to manually clear them in the following ways",
+ packages_business_connections_databaseform_shujuyuanzhongmo:
+ 'When the number of models in the data source is greater than 10,000, the model will be refreshed according to this parameter setting',
+ packages_business_connections_databaseform_moxingjiazaipin: 'Model Load Frequency'
}
diff --git a/packages/business/src/locale/lang/zh-CN.js b/packages/business/src/locale/lang/zh-CN.js
index 7a100f501d..f0c9255bf6 100644
--- a/packages/business/src/locale/lang/zh-CN.js
+++ b/packages/business/src/locale/lang/zh-CN.js
@@ -705,5 +705,7 @@ export default {
packages_business_verification_form_jianyanrenwuyun: '检验任务运行出错警告',
packages_business_verification_form_jiaoyangaojing: '校验告警',
packages_business_task_status_error_tip:
- '任务删除成功,以下几个 PostgreSQL 连接的信息清除失败,需要您使用以下方式手动清除'
+ '任务删除成功,以下几个 PostgreSQL 连接的信息清除失败,需要您使用以下方式手动清除',
+ packages_business_connections_databaseform_shujuyuanzhongmo: '数据源中模型数量大于1万时,会按本参数设置进行模型刷新',
+ packages_business_connections_databaseform_moxingjiazaipin: '模型加载频率'
}
diff --git a/packages/business/src/locale/lang/zh-TW.js b/packages/business/src/locale/lang/zh-TW.js
index b775b33930..e49d039ea2 100644
--- a/packages/business/src/locale/lang/zh-TW.js
+++ b/packages/business/src/locale/lang/zh-TW.js
@@ -707,5 +707,7 @@ export default {
packages_business_verification_form_jianyanrenwuyun: '檢驗任務運行出錯警告',
packages_business_verification_form_jiaoyangaojing: '校驗告警',
packages_business_task_status_error_tip:
- '任務刪除成功,以下幾個 PostgreSQL 連接的信息清除失敗,需要您使用以下方式手動清除'
+ '任務刪除成功,以下幾個 PostgreSQL 連接的信息清除失敗,需要您使用以下方式手動清除',
+ packages_business_connections_databaseform_shujuyuanzhongmo: '數據源中模型數量大於1萬時,會按本參數設置進行模型刷新',
+ packages_business_connections_databaseform_moxingjiazaipin: '模型加載頻率'
}
diff --git a/packages/business/src/views/connections/DatabaseForm.vue b/packages/business/src/views/connections/DatabaseForm.vue
index ddf104420d..0d5a0e6a88 100644
--- a/packages/business/src/views/connections/DatabaseForm.vue
+++ b/packages/business/src/views/connections/DatabaseForm.vue
@@ -757,13 +757,13 @@ export default {
}}}`
}
- END.properties.__TAPDATA.properties.connectionSchemaUpdateHour = {
+ END.properties.__TAPDATA.properties.schemaUpdateHour = {
type: 'string',
- title: '模型加载频率',
+ title: i18n.t('packages_business_connections_databaseform_moxingjiazaipin'),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-decorator-props': {
- tooltip: '数据源中模型数量大于1万时,会按本参数设置进行模型刷新'
+ tooltip: i18n.t('packages_business_connections_databaseform_shujuyuanzhongmo')
},
default: '02:00',
enum: [
From 402173e745b4556917be80d02b628ca898f80303 Mon Sep 17 00:00:00 2001
From: fannie
Date: Tue, 17 Jan 2023 16:44:31 +0800
Subject: [PATCH 071/124] fix(setting): Source node add nodeSchema
---
packages/dag/src/nodes/Table.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/dag/src/nodes/Table.js b/packages/dag/src/nodes/Table.js
index 3274c06302..ae0d9f7616 100644
--- a/packages/dag/src/nodes/Table.js
+++ b/packages/dag/src/nodes/Table.js
@@ -360,7 +360,7 @@ export class Table extends NodeType {
'x-reactions': {
fulfill: {
state: {
- visible: `{{$settings.type !== "cdc"}}`
+ visible: `{{$settings.type === "cdc"}}`
}
}
}
@@ -401,7 +401,7 @@ export class Table extends NodeType {
'x-decorator': 'FormItem',
'x-component': 'Switch',
'x-reactions': {
- target: '*(nodeSchema,conditions)',
+ target: '*(conditions)',
fulfill: {
state: {
visible: '{{$self.value===true}}'
From 62ffa63fa5b1d19454592c13f013b0192b228f6c Mon Sep 17 00:00:00 2001
From: xufei
Date: Tue, 17 Jan 2023 17:08:58 +0800
Subject: [PATCH 072/124] fix(@tap/dag): fix saving empty field names #132372
---
.../src/components/form/field-rename/index.js | 41 ++++++++++++++++---
1 file changed, 36 insertions(+), 5 deletions(-)
diff --git a/packages/dag/src/components/form/field-rename/index.js b/packages/dag/src/components/form/field-rename/index.js
index 95b1bdd55d..a74deb6ff9 100644
--- a/packages/dag/src/components/form/field-rename/index.js
+++ b/packages/dag/src/components/form/field-rename/index.js
@@ -123,7 +123,32 @@ export const FieldRename = connect(
{data.level === 1 ? (
-
+ {
+ const val = event.target.value
+ if (val) {
+ data.field_name = val
+ this.handleRename(node, data)
+ } else {
+ event.target.value = data.field_name
+ }
+ }}
+ />
+
+ ) : (
+ /*
{props.title}
-
+
)
From 1b3555a21eebc2e3ec5f82011ac6d23001c8998c Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Thu, 2 Feb 2023 12:08:26 +0800
Subject: [PATCH 102/124] fix(dag/dataflow): run updateDag when progress is
finished
---
packages/component/src/StageButton.vue | 12 +++++++++---
.../components/form/table-selector/TableSelector.vue | 9 ++++++++-
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/packages/component/src/StageButton.vue b/packages/component/src/StageButton.vue
index fef31cc7ea..ad3b3a5a34 100644
--- a/packages/component/src/StageButton.vue
+++ b/packages/component/src/StageButton.vue
@@ -13,6 +13,8 @@
diff --git a/packages/dag/src/components/form/table-rename/index.js b/packages/dag/src/components/form/table-rename/index.js
index bf7dd3df5d..cb6575eaee 100644
--- a/packages/dag/src/components/form/table-rename/index.js
+++ b/packages/dag/src/components/form/table-rename/index.js
@@ -8,6 +8,7 @@ import { taskApi } from '@tap/api'
import { useAfterTaskSaved } from '../../../hooks/useAfterTaskSaved'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
import { RecycleScroller } from 'vue-virtual-scroller'
+import List from './List.vue'
import './style.scss'
export const TableRename = observer(
@@ -226,51 +227,69 @@ export const TableRename = observer(
{this.filterNames.length ? (
-
+ ) : (
+ /* (
-
-
- {name}
-
-
- {
- const val = event.target.value
- if (val) {
- this.updateName(val, name)
- this.emitChange()
- } else {
- event.target.value = name
- if (this.nameMap[name]) {
- this.$delete(this.nameMap, name)
+ default: ({ item: name }) => {
+ let inputVal = this.nameMap[name] || name
+ return (
+
- left
-
-
- )
+ )
+ }
}}
- >
- ) : (
+ >*/
/*this.filterNames.map(name => {
return (
+
+ left
+
-
+ {name}
+
+
+ {
+ const val = event.target.value
+ console.log('this.nameMap', this.nameMap) // eslint-disable-line
+ if (val) {
+ if (this.tableData.includes(val) || Object.values(this.nameMap).includes(val)) {
+ event.target.value = this.nameMap[name] || name
+ return
+ }
+ this.updateName(val, name)
this.emitChange()
+ } else {
+ event.target.value = name
+ if (this.nameMap[name]) {
+ this.$delete(this.nameMap, name)
+ this.emitChange()
+ }
}
- }
- }}
- />
+ }}
+ />
+
+
From 935346efa9522329e1f0aac94c3ae3f2ec915aaa Mon Sep 17 00:00:00 2001
From: xufei
Date: Sat, 4 Feb 2023 07:18:42 +0800
Subject: [PATCH 113/124] refactor: table rename doModify prevent duplicate
table names
---
packages/dag/src/MigrationEditor.vue | 1 +
.../src/components/form/table-rename/List.vue | 16 +++++-----------
.../src/components/form/table-rename/index.js | 8 ++++++++
3 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/packages/dag/src/MigrationEditor.vue b/packages/dag/src/MigrationEditor.vue
index e951b6f11a..15445519fa 100644
--- a/packages/dag/src/MigrationEditor.vue
+++ b/packages/dag/src/MigrationEditor.vue
@@ -441,6 +441,7 @@ export default {
checkGotoViewer() {
console.log('editor:checkGotoViewer') // eslint-disable-line
+ if (!this.dataflow.disabledData) return
if (this.dataflow.disabledData.edit) {
// 不可编辑
// this.gotoViewer()
diff --git a/packages/dag/src/components/form/table-rename/List.vue b/packages/dag/src/components/form/table-rename/List.vue
index e724522046..f118eeb554 100644
--- a/packages/dag/src/components/form/table-rename/List.vue
+++ b/packages/dag/src/components/form/table-rename/List.vue
@@ -35,16 +35,8 @@ import { RecycleScroller } from 'vue-virtual-scroller'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
const InnerInput = {
- /*template: `
-
- `,*/
name: 'InnerInput',
- props: ['value', 'readOnly', 'nameMap'],
+ props: ['value', 'readOnly'],
data() {
return {
val: null
@@ -53,7 +45,6 @@ const InnerInput = {
watch: {
value(val) {
this.val = val
- console.log('watch:value', this.value) // eslint-disable-line
}
},
created() {
@@ -80,7 +71,10 @@ export default {
const val = event.target.value
console.log('this.nameMap', this.nameMap) // eslint-disable-line
if (val) {
- if (this.tableData.includes(val) || Object.values(this.nameMap).includes(val)) {
+ if (
+ (this.tableData.includes(val) && (!this.nameMap[val] || this.nameMap[val] === val)) ||
+ Object.values(this.nameMap).includes(val)
+ ) {
event.target.value = this.nameMap[name] || name
return
}
diff --git a/packages/dag/src/components/form/table-rename/index.js b/packages/dag/src/components/form/table-rename/index.js
index cb6575eaee..906753d307 100644
--- a/packages/dag/src/components/form/table-rename/index.js
+++ b/packages/dag/src/components/form/table-rename/index.js
@@ -101,6 +101,14 @@ export const TableRename = observer(
after = after[config.transferCase]()
}
if (n !== after) {
+ if (nameMap[n] === after) return
+ if (
+ (target.includes(after) && (!nameMap[after] || nameMap[after] === after)) ||
+ Object.values(nameMap).includes(after)
+ ) {
+ console.log('导致表名重复') // eslint-disable-line
+ return
+ }
set(nameMap, n, after)
flag = true
} else if (n in nameMap) {
From 11bf688eab170c71929e3efe2cb3071863d4b555 Mon Sep 17 00:00:00 2001
From: fannie
Date: Sat, 4 Feb 2023 14:32:28 +0800
Subject: [PATCH 114/124] fix(apiServer): edit save acl #133660
---
apps/daas/src/views/data-server/Drawer.vue | 1 -
1 file changed, 1 deletion(-)
diff --git a/apps/daas/src/views/data-server/Drawer.vue b/apps/daas/src/views/data-server/Drawer.vue
index b6445168d4..332e29f07a 100644
--- a/apps/daas/src/views/data-server/Drawer.vue
+++ b/apps/daas/src/views/data-server/Drawer.vue
@@ -663,7 +663,6 @@ export default {
this.form.status = 'generating'
// 若为新建时,则默认值为 ‘默认查询(defaultApi)’ 的值
this.form.pathAccessMethod = this.data?.pathAccessMethod || 'default'
- this.form.acl = this.data?.path?.acl
this.getDatabaseTypes()
let { connectionId, tableName } = this.form
if (connectionId) {
From 68f58565b05b80888ab8fb0d5f988ab3c121eac1 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 6 Feb 2023 10:59:19 +0800
Subject: [PATCH 115/124] fix(objectList): change searchBox text #133620
---
apps/daas/src/i18n/langs/en.js | 2 +-
apps/daas/src/i18n/langs/zh-CN.js | 2 +-
apps/daas/src/i18n/langs/zh-TW.js | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/daas/src/i18n/langs/en.js b/apps/daas/src/i18n/langs/en.js
index 762d0b9087..04027debef 100644
--- a/apps/daas/src/i18n/langs/en.js
+++ b/apps/daas/src/i18n/langs/en.js
@@ -1082,7 +1082,7 @@ export default {
datadiscovery_catalogue_ziyuanbangding: 'Resource binding',
datadiscovery_catalogue_lianjieduixiangming: 'Connection object name',
datadiscovery_catalogue_ziyuanleixing: 'Resource Type',
- datadiscovery_objectlist_duixiangminglaiyuan: 'Object name/Source information',
+ datadiscovery_objectlist_duixiangminglaiyuan: 'Object name/Data source',
datadiscovery_objectlist_laiyuanfenlei: 'Source classification',
datadiscovery_previewdrawer_shujuxiang: 'Data item',
datadiscovery_previewdrawer_yewumingcheng: 'Business name',
diff --git a/apps/daas/src/i18n/langs/zh-CN.js b/apps/daas/src/i18n/langs/zh-CN.js
index 347c498c2c..d7cd97831d 100644
--- a/apps/daas/src/i18n/langs/zh-CN.js
+++ b/apps/daas/src/i18n/langs/zh-CN.js
@@ -1060,7 +1060,7 @@ export default {
datadiscovery_catalogue_ziyuanbangding: '资源绑定',
datadiscovery_catalogue_lianjieduixiangming: '连接对象名',
datadiscovery_catalogue_ziyuanleixing: '资源类型',
- datadiscovery_objectlist_duixiangminglaiyuan: '对象名称/来源信息',
+ datadiscovery_objectlist_duixiangminglaiyuan: '对象名称/数据源',
datadiscovery_objectlist_laiyuanfenlei: '来源分类',
datadiscovery_previewdrawer_shujuxiang: '数据项',
datadiscovery_previewdrawer_yewumingcheng: '业务名称',
diff --git a/apps/daas/src/i18n/langs/zh-TW.js b/apps/daas/src/i18n/langs/zh-TW.js
index 7854d51d87..3d5f568dfb 100644
--- a/apps/daas/src/i18n/langs/zh-TW.js
+++ b/apps/daas/src/i18n/langs/zh-TW.js
@@ -1050,7 +1050,7 @@ export default {
datadiscovery_catalogue_ziyuanbangding: '資源綁定',
datadiscovery_catalogue_lianjieduixiangming: '連接對象名',
datadiscovery_catalogue_ziyuanleixing: '資源類型',
- datadiscovery_objectlist_duixiangminglaiyuan: '對象名稱/來源信息',
+ datadiscovery_objectlist_duixiangminglaiyuan: '對象名稱/數據源',
datadiscovery_objectlist_laiyuanfenlei: '來源分類',
datadiscovery_previewdrawer_shujuxiang: '數據項',
datadiscovery_previewdrawer_yewumingcheng: '業務名稱',
From 54802a9c95ce01c171bd0899015f5d978888baf3 Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 6 Feb 2023 11:53:20 +0800
Subject: [PATCH 116/124] fix(DataDir): show userName in default dir #133657
---
packages/component/src/DiscoveryClassification.vue | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/packages/component/src/DiscoveryClassification.vue b/packages/component/src/DiscoveryClassification.vue
index d3f74de543..002f600283 100644
--- a/packages/component/src/DiscoveryClassification.vue
+++ b/packages/component/src/DiscoveryClassification.vue
@@ -111,6 +111,7 @@ import i18n from '@tap/i18n'
import { VIcon } from '@tap/component'
import { metadataDefinitionsApi, userGroupsApi } from '@tap/api'
+import Cookie from '@tap/shared/src/cookie'
export default {
components: { VIcon },
@@ -216,7 +217,8 @@ export default {
objCount: 1,
parent_id: 1,
desc: 1,
- readOnly: 1
+ readOnly: 1,
+ user_id: 1
}
}
if (this.types[0] === 'user') {
@@ -304,6 +306,7 @@ export default {
},
//格式化分类数据
formatData(items) {
+ const userId = Cookie.get('user_id')
if (items && items.length) {
let map = {}
let nodes = []
@@ -317,6 +320,9 @@ export default {
//默认目录国际化
if (it?.item_type && it?.item_type.findIndex(t => t === 'default') > -1) {
it.value = i18n.t('packages_component_src_discoveryclassification_morenmuluji')
+ if (it?.userName && it?.user_id !== userId) {
+ it.value += `| ${it.userName}`
+ }
}
nodes.push(it)
}
From c154428d233cd65aa0c46a62cc05c5cbba53b843 Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 6 Feb 2023 14:26:46 +0800
Subject: [PATCH 117/124] refactor: JsProcessor test run log show errorStack
---
packages/dag/src/components/form/js-processor/index.js | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/packages/dag/src/components/form/js-processor/index.js b/packages/dag/src/components/form/js-processor/index.js
index b5e0b591c7..e300ce3437 100644
--- a/packages/dag/src/components/form/js-processor/index.js
+++ b/packages/dag/src/components/form/js-processor/index.js
@@ -454,7 +454,9 @@ export const JsProcessor = observer(
code = JSON.stringify(JSON.parse(item.message), null, 2)
} catch (e) {
const message = item.message.replace(/^[{[](.*)[\]}]$/, '$1').split(', ')
- code = `{\n${message.map(line => ` ${line}`).join('\n')}\n}`
+ code = `${item.message.charAt(0)}\n${message
+ .map(line => ` ${line}`)
+ .join('\n')}\n${item.message.charAt(item.message.length - 1)}`
}
return (
@@ -464,7 +466,11 @@ export const JsProcessor = observer(
)
}
- return }
- {item.message}
+ return (
+
+ {item.errorStack || item.message}
+
+ )
})
: !logLoading.value &&
Date: Mon, 6 Feb 2023 15:18:52 +0800
Subject: [PATCH 118/124] refactor: update JsProcessor log query
---
.../dag/src/components/form/js-processor/index.js | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/packages/dag/src/components/form/js-processor/index.js b/packages/dag/src/components/form/js-processor/index.js
index e300ce3437..e66251747f 100644
--- a/packages/dag/src/components/form/js-processor/index.js
+++ b/packages/dag/src/components/form/js-processor/index.js
@@ -148,8 +148,17 @@ export const JsProcessor = observer(
handleAutoQuery()
}, 500)
} else {
- // 没有拿到日志数据,继续定时轮询
- if (!logList.value.length) {
+ // 两秒后再去拿一次日志,如果没有日志就继续轮询
+ outTimer = setTimeout(() => {
+ logTimer = setInterval(async () => {
+ await queryLog()
+ if (logList.value.length) {
+ resetQuery()
+ }
+ }, 1000)
+ }, 2000)
+
+ /*if (!logList.value.length) {
outTimer = setTimeout(() => {
logTimer = setInterval(async () => {
await queryLog()
@@ -160,7 +169,7 @@ export const JsProcessor = observer(
}, 1000)
} else {
resetQuery()
- }
+ }*/
}
})
.catch(resetQuery)
From cd613ac8106c2388ddd4ee804fb7ecb762137b09 Mon Sep 17 00:00:00 2001
From: xufei
Date: Mon, 6 Feb 2023 16:03:39 +0800
Subject: [PATCH 119/124] fix: fix TableReName hasDuplicateTableName can save
#133642
---
packages/dag/src/components/FormPanel.vue | 11 ++++++++-
.../src/components/form/table-rename/List.vue | 11 ++++-----
.../src/components/form/table-rename/index.js | 21 ++++++++++++-----
packages/dag/src/mixins/editor.js | 15 ++++++++++--
packages/dag/src/nodes/TableProcessor.js | 23 +++++++++++++++++++
5 files changed, 66 insertions(+), 15 deletions(-)
diff --git a/packages/dag/src/components/FormPanel.vue b/packages/dag/src/components/FormPanel.vue
index b2c9e37c31..c263e8574d 100644
--- a/packages/dag/src/components/FormPanel.vue
+++ b/packages/dag/src/components/FormPanel.vue
@@ -108,7 +108,15 @@ export default {
} catch (e) {
// eslint-disable-next-line no-console
console.error(e)
- this.setNodeError(o)
+ if (node.type === 'table_rename_processor') {
+ // 节点的特殊处理,直接拿表单校验结果设置错误信息
+ this.setNodeErrorMsg({
+ id: node.id,
+ msg: e[0].messages[0]
+ })
+ } else {
+ this.setNodeError(node.id)
+ }
}
}
@@ -144,6 +152,7 @@ export default {
'setNodeValue',
'updateNodeProperties',
'setNodeError',
+ 'setNodeErrorMsg',
'clearNodeError',
'setNodeInputsWatcher',
'setNodeOutputsWatcher'
diff --git a/packages/dag/src/components/form/table-rename/List.vue b/packages/dag/src/components/form/table-rename/List.vue
index f118eeb554..65d584d3ab 100644
--- a/packages/dag/src/components/form/table-rename/List.vue
+++ b/packages/dag/src/components/form/table-rename/List.vue
@@ -5,16 +5,15 @@
Date: Tue, 7 Feb 2023 17:50:06 +0800
Subject: [PATCH 124/124] refactor: TableReName node tooltip show duplicate
table name
---
packages/dag/src/components/FormPanel.vue | 10 ++++-
.../src/components/form/table-rename/List.vue | 6 +--
.../src/components/form/table-rename/index.js | 39 +++++++++++++++----
packages/dag/src/nodes/TableProcessor.js | 20 +++++++---
4 files changed, 58 insertions(+), 17 deletions(-)
diff --git a/packages/dag/src/components/FormPanel.vue b/packages/dag/src/components/FormPanel.vue
index c263e8574d..663aa90cb0 100644
--- a/packages/dag/src/components/FormPanel.vue
+++ b/packages/dag/src/components/FormPanel.vue
@@ -171,7 +171,15 @@ export default {
await this.form.validate()
this.clearNodeError(id)
} catch (e) {
- this.setNodeError(id)
+ if (this.node.type === 'table_rename_processor') {
+ // 节点的特殊处理,直接拿表单校验结果设置错误信息
+ this.setNodeErrorMsg({
+ id: this.node.id,
+ msg: e[0].messages[0]
+ })
+ } else {
+ this.setNodeError(id)
+ }
}
},
diff --git a/packages/dag/src/components/form/table-rename/List.vue b/packages/dag/src/components/form/table-rename/List.vue
index 65d584d3ab..d965c9dd16 100644
--- a/packages/dag/src/components/form/table-rename/List.vue
+++ b/packages/dag/src/components/form/table-rename/List.vue
@@ -12,7 +12,8 @@
:value="nameMap[name] || name"
:class="{
'color-primary': !!nameMap[name],
- 'color-danger border-danger': tableData.includes(nameMap[name]) && !nameMap[nameMap[name]]
+ 'color-danger border-danger':
+ (tableData.includes(nameMap[name]) && !nameMap[nameMap[name]]) || countByName[nameMap[name] || name] > 1
}"
@change="handleChange(name, $event)"
>
@@ -63,12 +64,11 @@ const InnerInput = {
export default {
name: 'List',
- props: ['nameMap', 'tableData', 'updateName', 'emitChange', 'disabled'],
+ props: ['nameMap', 'tableData', 'updateName', 'emitChange', 'disabled', 'countByName'],
components: { RecycleScroller, InnerInput },
methods: {
handleChange(name, event) {
const val = event.target.value
- console.log('this.nameMap', this.nameMap) // eslint-disable-line
if (val) {
if (
(this.tableData.includes(val) && (!this.nameMap[val] || this.nameMap[val] === val)) ||
diff --git a/packages/dag/src/components/form/table-rename/index.js b/packages/dag/src/components/form/table-rename/index.js
index ae3a563a93..d81827aa04 100644
--- a/packages/dag/src/components/form/table-rename/index.js
+++ b/packages/dag/src/components/form/table-rename/index.js
@@ -1,6 +1,6 @@
import i18n from '@tap/i18n'
-import { defineComponent, ref, reactive, set, del, computed, watch } from '@vue/composition-api'
-import { useForm, useField } from '@tap/form'
+import { defineComponent, ref, reactive, set, del, computed } from '@vue/composition-api'
+import { useForm } from '@tap/form'
import { FormItem } from '@tap/form'
import { observer } from '@formily/reactive-vue'
import { EmptyItem } from '@tap/component'
@@ -12,15 +12,24 @@ import './style.scss'
export const TableRename = observer(
defineComponent({
props: ['findParentNode', 'value', 'listStyle', 'disabled'],
- setup(props, { emit, root }) {
+ setup(props, { emit, root, refs }) {
+ const itemSize = 38
const formRef = useForm()
const form = formRef.value
const tableDataRef = ref([])
+ let tableMap = {}
const loading = ref(false)
+ let countByName = ref({})
let nameMap = reactive(
props.value
? props.value.reduce((obj, item) => {
obj[item.previousTableName] = item.currentTableName
+
+ if (item.currentTableName in countByName.value) {
+ countByName.value[item.currentTableName]++
+ } else {
+ countByName.value[item.currentTableName] = 1
+ }
return obj
}, {})
: {}
@@ -50,8 +59,10 @@ export const TableRename = observer(
})
.then(({ items = [] }) => {
prevMap = {}
+ tableMap = {}
tableDataRef.value = items.map(item => {
prevMap[item.previousTableName] = item.sourceObjectName
+ tableMap[item.previousTableName] = true
return item.previousTableName
})
})
@@ -84,8 +95,6 @@ export const TableRename = observer(
return tableDataRef.value
})
- const handleReplace = (value, config) => {}
-
const doModify = () => {
const target = tableDataRef.value
let flag
@@ -158,6 +167,7 @@ export const TableRename = observer(
const emitChange = () => {
const arr = []
+ let _countByName = {}
Object.entries(nameMap).forEach(([previousTableName, currentTableName]) => {
const originTableName = prevMap[previousTableName]
if (originTableName) {
@@ -166,11 +176,21 @@ export const TableRename = observer(
previousTableName,
currentTableName
})
+ if (currentTableName in _countByName) {
+ _countByName[currentTableName]++
+ } else {
+ _countByName[currentTableName] = 1
+ }
}
})
+ countByName.value = _countByName
emit('change', arr)
}
+ const scrollToItem = index => {
+ refs.nameList.scrollTop = index * itemSize
+ }
+
return {
config,
filterNames,
@@ -181,7 +201,9 @@ export const TableRename = observer(
emitChange,
nameMap,
tableData: tableDataRef,
- loading
+ loading,
+ countByName,
+ itemSize
}
},
@@ -242,13 +264,14 @@ export const TableRename = observer(
{{ name }}
-
+
- {{ item.icon }}
+ {{ item.icon }}
{{ item.name }}
@@ -28,30 +28,29 @@
import i18n from '@/i18n'
import { VIcon } from '@tap/component'
+import Cookie from '@tap/shared/src/cookie'
export default {
components: { VIcon },
data() {
return {
settingList: [
- {
- icon: 'setting',
- name: this.$t('account_systemSetting'),
- key: 'settings'
- },
{
icon: 'bells',
name: this.$t('notify_setting'),
- key: 'notificationSetting'
+ key: 'notificationSetting',
+ size: 20
},
{
- icon: 'bells',
+ icon: 'warning',
name: i18n.t('daas_setting_settingcenter_gaojingshezhi'),
- key: 'alarmSetting'
+ key: 'alarmSetting',
+ size: 14
},
{
icon: 'account',
name: this.$t('account_accountSettings'),
- key: 'accountSetting'
+ key: 'accountSetting',
+ size: 20
}
],
activePanel: '',
@@ -70,6 +69,16 @@ export default {
},
created() {
this.activePanel = this.$route.name
+ //admin才有系统设置权限
+ if (Cookie.get('email') === 'admin@admin.com') {
+ let node = {
+ icon: 'setting',
+ name: this.$t('account_systemSetting'),
+ key: 'settings',
+ size: 20
+ }
+ this.settingList.unshift(node)
+ }
},
methods: {
changeName(name) {
From fa545f20ecb3d8dfb8fc741906f54f22bfbae76e Mon Sep 17 00:00:00 2001
From: kennen <317052920@qq.com>
Date: Mon, 6 Feb 2023 19:12:19 +0800
Subject: [PATCH 122/124] fix(@business/connection/form): echo schemaUpdateHour
in getPdkData function
---
packages/business/src/views/connections/DatabaseForm.vue | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/packages/business/src/views/connections/DatabaseForm.vue b/packages/business/src/views/connections/DatabaseForm.vue
index 0d5a0e6a88..f23b42afb6 100644
--- a/packages/business/src/views/connections/DatabaseForm.vue
+++ b/packages/business/src/views/connections/DatabaseForm.vue
@@ -1030,7 +1030,8 @@ export default {
accessNodeType,
accessNodeProcessId,
openTableExcludeFilter,
- tableExcludeFilter
+ tableExcludeFilter,
+ schemaUpdateHour
} = this.model
this.schemaFormInstance.setValues({
__TAPDATA: {
@@ -1042,7 +1043,8 @@ export default {
accessNodeType,
accessNodeProcessId,
openTableExcludeFilter,
- tableExcludeFilter
+ tableExcludeFilter,
+ schemaUpdateHour
},
...this.model?.config
})
From dbf093696b7b56d31d56afec01032252ddd84114 Mon Sep 17 00:00:00 2001
From: fannie
Date: Tue, 7 Feb 2023 10:46:47 +0800
Subject: [PATCH 123/124] fix(setting): Non-admin shielding system settings
---
apps/daas/src/views/Layout.vue | 6 +++++-
apps/daas/src/views/setting/Setting.vue | 9 +++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/apps/daas/src/views/Layout.vue b/apps/daas/src/views/Layout.vue
index 8f3260f5e9..c561b8e8c5 100644
--- a/apps/daas/src/views/Layout.vue
+++ b/apps/daas/src/views/Layout.vue
@@ -31,7 +31,9 @@
- {{ $t('page_title_setting') }}
+ {{
+ $t('page_title_setting')
+ }}
{{
$t('notify_setting')
}}
@@ -453,6 +455,7 @@ export default {
(this.$has('datasource_creation') && this.$has('datasource_menu')),
menus: [],
userName: '',
+ email: '',
dialogVisible: false,
isShowCustomerService: false,
licenseExpire: '',
@@ -490,6 +493,7 @@ export default {
this.getActiveMenu()
this.userName = Cookie.get('username') || Cookie.get('email')?.split('@')?.[0] || ''
+ this.email = Cookie.get('email')
window.iframeRouterChange = route => {
this.$router.push(route)
diff --git a/apps/daas/src/views/setting/Setting.vue b/apps/daas/src/views/setting/Setting.vue
index 562390cdb4..02df2434be 100644
--- a/apps/daas/src/views/setting/Setting.vue
+++ b/apps/daas/src/views/setting/Setting.vue
@@ -109,7 +109,9 @@
@@ -193,6 +195,7 @@ import { VIcon, VTable } from '@tap/component'
import { getCurrentLanguage } from '@tap/i18n/src/shared/util'
import { licensesApi, settingsApi, alarmRuleApi } from '@tap/api'
import Time from '@tap/shared/src/time'
+import Cookie from '@tap/shared/src/cookie'
export default {
name: 'Setting',
@@ -246,11 +249,13 @@ export default {
label: i18n.t('daas_setting_alarmnotification_gaojingzhibiao'),
slotName: 'valueSlot'
}
- ]
+ ],
+ email: ''
}
},
created() {
this.getData()
+ this.email = Cookie.get('email')
},
computed: {
SMTP() {
From dc1a3cc9c6dfab799085c492890506563440ef0f Mon Sep 17 00:00:00 2001
From: xufei
- {{ $t('button_save') }}
+ {{
+ $t('button_save')
+ }}
+
{this.filterNames.length ? (
- {
+ console.debug('[DEBUG]: tableNames validate', value)
if (!value.length) return
const parents = findParentNodes($values.id)
if (parents && parents.length && parents[0].tableNames.length) {
let tableNames = parents[0].tableNames
+ let countByName = {}
+ let duplicateTableNames = new Set()
let tableNameMap = value.reduce((obj, item) => {
obj[item.previousTableName] = item.currentTableName
+ if (item.currentTableName in countByName) {
+ countByName[item.currentTableName]++
+ duplicateTableNames.add(item.currentTableName)
+ } else {
+ countByName[item.currentTableName] = 1
+ }
return obj
}, {})
let currentTableNames = Object.values(tableNameMap)
- if (currentTableNames.length !== new Set(currentTableNames).size) return rule.message
- let hasDuplicateTableName = tableNames.some(name => {
+ // if (currentTableNames.length !== new Set(currentTableNames).size) return rule.message
+ tableNames.forEach(name => {
if (currentTableNames.includes(name) && !tableNameMap[name]) {
- return true
+ duplicateTableNames.add(name)
}
})
-
- return hasDuplicateTableName ? rule.message : ''
+ if (duplicateTableNames.size) {
+ return \`\${rule.message}: \${[...duplicateTableNames].join(', ')}\`
+ }
}
}}}`,
message: '表名重复'