diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index d8716d7c7d..1287b31817 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1157,7 +1157,11 @@ export default { union_data: 'Union Dataset', add_union_table: 'Add Union Dataset', edit_union: 'Edit Union Dataset', - union: 'Union' + union: 'Union', + edit_union_relation: 'Edit Union Relation', + add_union_relation: 'Add Union Relation', + field_select: 'Select Field', + add_union_field: 'Add Union Field' }, datasource: { datasource: 'Data Source', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index a504aec63c..88c26ca89b 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1158,7 +1158,11 @@ export default { union_data: '關聯數據集', add_union_table: '添加關聯數據集', edit_union: '編輯關聯數據集', - union: '關聯' + union: '關聯', + edit_union_relation: '編輯關聯關系', + add_union_relation: '新建關聯關系', + field_select: '字段選擇', + add_union_field: '添加關聯字段' }, datasource: { datasource: '數據源', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 1e2ec4a931..9d7eabbb81 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1160,7 +1160,11 @@ export default { union_data: '关联数据集', add_union_table: '添加关联数据集', edit_union: '编辑关联数据集', - union: '关联' + union: '关联', + edit_union_relation: '编辑关联关系', + add_union_relation: '新建关联关系', + field_select: '字段选择', + add_union_field: '添加关联字段' }, datasource: { datasource: '数据源', diff --git a/frontend/src/views/dataset/add/AddUnion.vue b/frontend/src/views/dataset/add/AddUnion.vue index 48148cb84a..07c09f10df 100644 --- a/frontend/src/views/dataset/add/AddUnion.vue +++ b/frontend/src/views/dataset/add/AddUnion.vue @@ -28,22 +28,44 @@
- +
- +
- + + + + + + @@ -51,9 +73,10 @@ import UnionNode from '@/views/dataset/add/union/UnionNode' import NodeItem from '@/views/dataset/add/union/NodeItem' import DatasetGroupSelectorTree from '@/views/dataset/common/DatasetGroupSelectorTree' +import UnionEdit from '@/views/dataset/add/union/UnionEdit' export default { name: 'AddUnion', - components: { DatasetGroupSelectorTree, NodeItem, UnionNode }, + components: { UnionEdit, DatasetGroupSelectorTree, NodeItem, UnionNode }, props: { param: { type: Object, @@ -72,7 +95,7 @@ export default { currentDsField: [], childrenDs: [], unionToParent: { - unionType: '', // left join,right join,inner join + unionType: 'left', // left join,right join,inner join unionFields: [ { parentField: {}, @@ -94,7 +117,7 @@ export default { currentDsField: [], childrenDs: [], unionToParent: { - unionType: '', + unionType: 'left', unionFields: [] }, allChildCount: 0 @@ -103,7 +126,9 @@ export default { customType: ['db', 'sql', 'excel'], selectDsDialog: false, // 弹框临时选中的数据集 - tempDs: {} + tempDs: {}, + editUnion: false, + unionParam: {} } }, mounted() { @@ -154,6 +179,22 @@ export default { } } } + }, + + unionConfig(param) { + this.unionParam = param + this.editUnion = true + }, + closeEditUnion() { + this.editUnion = false + // 添加关联的时候,如果关闭关联关系设置的界面,则删除子节点,同时向父级传递消息 + if (this.unionParam.type === 'add') { + this.dataset[0].childrenDs.pop() + this.calc({ type: 'delete', grandParentAdd: true, grandParentSub: true, subCount: 0 }) + } + }, + confirmEditUnion() { + this.editUnion = false } } } diff --git a/frontend/src/views/dataset/add/union/NodeItem.vue b/frontend/src/views/dataset/add/union/NodeItem.vue index ecc4d80ba4..2528462454 100644 --- a/frontend/src/views/dataset/add/union/NodeItem.vue +++ b/frontend/src/views/dataset/add/union/NodeItem.vue @@ -28,11 +28,11 @@ - + @@ -60,7 +60,7 @@ export default { currentDsField: [], childrenDs: [], unionToParent: { - unionType: '', + unionType: 'left', unionFields: [] }, allChildCount: 0 @@ -125,7 +125,17 @@ export default { this.tempParentDs.childrenDs.push(ds) this.closeSelectDs() this.notifyFirstParent('union') + + // 构建新建关联关系传递的参数 + const param = { + type: 'add', + nodeIndex: this.nodeIndex, + node: ds, + parent: this.tempParentDs + } + this.$emit('editUnion', param) }, + // 增加与删除事件向父级传递 notifyFirstParent(type) { this.$emit('notifyParent', { type: type, grandParentAdd: true, grandParentSub: true, subCount: this.currentNode.allChildCount }) } @@ -163,4 +173,7 @@ export default { cursor: pointer; border: var(--Main,#2681ff) solid 1px; } +.dialog-css >>> .el-dialog__body { + padding: 0 20px; +} diff --git a/frontend/src/views/dataset/add/union/UnionEdit.vue b/frontend/src/views/dataset/add/union/UnionEdit.vue new file mode 100644 index 0000000000..486a70d80c --- /dev/null +++ b/frontend/src/views/dataset/add/union/UnionEdit.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/frontend/src/views/dataset/add/union/UnionFieldEdit.vue b/frontend/src/views/dataset/add/union/UnionFieldEdit.vue new file mode 100644 index 0000000000..5169e28e54 --- /dev/null +++ b/frontend/src/views/dataset/add/union/UnionFieldEdit.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/frontend/src/views/dataset/add/union/UnionFieldList.vue b/frontend/src/views/dataset/add/union/UnionFieldList.vue new file mode 100644 index 0000000000..5d8e2ccf73 --- /dev/null +++ b/frontend/src/views/dataset/add/union/UnionFieldList.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/frontend/src/views/dataset/add/union/UnionItemEdit.vue b/frontend/src/views/dataset/add/union/UnionItemEdit.vue new file mode 100644 index 0000000000..ad0d23fae4 --- /dev/null +++ b/frontend/src/views/dataset/add/union/UnionItemEdit.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/frontend/src/views/dataset/add/union/UnionNode.vue b/frontend/src/views/dataset/add/union/UnionNode.vue index 9458e759d8..2eb950caf0 100644 --- a/frontend/src/views/dataset/add/union/UnionNode.vue +++ b/frontend/src/views/dataset/add/union/UnionNode.vue @@ -1,29 +1,54 @@