lw-cdp-ui 1.2.43 → 1.2.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,9 +21,22 @@
21
21
  :drawerShow="drawerShow"
22
22
  :nodeData="clickNode"
23
23
  :nodesDataConfig="nodesDataConfig"
24
- @onClose="nodeEditClose" />
24
+ :soltList="soltList"
25
+ @onClose="nodeEditClose">
26
+ <template v-slot:[soltName]="{itemCur, formCur}"
27
+ v-for="soltName in soltList">
28
+ <slot :name="soltName"
29
+ :itemCur="itemCur"
30
+ :formCur="formCur">
31
+ <el-tag type="danger">[{{ soltName }}]
32
+ 没有这个默认组件也未自定义插槽内容</el-tag>
33
+ </slot>
34
+ </template>
35
+ <template #mySolt>
36
+ sssssssssssssssss
37
+ </template>
38
+ </nodeEdit>
25
39
  </template>
26
-
27
40
  </div>
28
41
  </template>
29
42
 
@@ -83,41 +96,31 @@ export default {
83
96
  return {}
84
97
  }
85
98
  },
86
- /**
87
- * 节点数据 在没有 modelValue时 用以自动创建节点 默认使用modelValue
88
- */
99
+ // 节点数据 在没有 modelValue时 用以自动创建节点 默认使用modelValue
89
100
  nodes: {
90
101
  type: Array,
91
102
  default: () => {
92
103
  return []
93
104
  }
94
105
  },
95
- /**
96
- * 节点配置
97
- */
98
- // configNodesList: {
99
- // type: Object,
100
- // default: () => {
101
- // return configNodesList
102
- // }
103
- // },
104
- /**
105
- * 是否显示默认节点
106
- */
106
+ // 节点插槽列表
107
+ soltList: {
108
+ type: Array,
109
+ default: () => {
110
+ return []
111
+ }
112
+ },
113
+ // 是否显示默认节点
107
114
  showDefaultNode: {
108
115
  type: Boolean,
109
116
  default: true
110
117
  },
111
- /**
112
- * 是否仅查看
113
- */
118
+ // 是否仅查看
114
119
  isView: {
115
120
  type: Boolean,
116
121
  default: false
117
122
  },
118
- /**
119
- * 需要展示的节点分组 不传默认展示所有内置节点
120
- */
123
+ // 需要展示的节点分组 不传默认展示所有内置节点
121
124
  showNodeGroup: {
122
125
  type: Array,
123
126
  default: []
@@ -138,7 +141,7 @@ export default {
138
141
  }
139
142
  }
140
143
  */
141
- nodesDataConfig: {
144
+ nodesDataConfig: {
142
145
  type: Object,
143
146
  default: {}
144
147
  },
@@ -559,7 +562,7 @@ export default {
559
562
  this.logicFlow.setProperties(data.id, {
560
563
  error: false
561
564
  });
562
-
565
+
563
566
  this.clickNode = data
564
567
  this.drawerShow = true
565
568
 
@@ -577,7 +580,7 @@ export default {
577
580
  let { formConfig } = nodeDatas[node.type];
578
581
  let { formItems } = formConfig;
579
582
  let { data } = node.properties;
580
-
583
+
581
584
  if (formItems?.length > 0) {
582
585
  for (const item of formItems) {
583
586
  let value = data ? data[item?.name] : data;
@@ -35,6 +35,13 @@
35
35
  </lwTableForm>
36
36
  </template>
37
37
 
38
+ <template v-slot:[soltName]="{itemCur, formCur}"
39
+ v-for="soltName in soltList">
40
+ <slot :name="soltName"
41
+ :itemCur="itemCur"
42
+ :formCur="formCur"></slot>
43
+ </template>
44
+
38
45
  <span></span>
39
46
  </lw-form-mini>
40
47
  </template>
@@ -52,6 +59,7 @@ export default {
52
59
  type: Object,
53
60
  default: () => ({}),
54
61
  },
62
+ soltList: { type: Array, default: () => { return [] } },
55
63
  },
56
64
  data() {
57
65
  return {
@@ -36,7 +36,16 @@
36
36
  <template v-else>
37
37
  <basicSettings ref="dataFormRef"
38
38
  v-model="dataForm.properties.data"
39
- :config="config" />
39
+ :soltList="soltList"
40
+ :config="config">
41
+ <template v-slot:[soltName]="{itemCur, formCur}"
42
+ v-for="soltName in soltList">
43
+ <slot :name="soltName"
44
+ :itemCur="itemCur"
45
+ :formCur="formCur"></slot>
46
+ </template>
47
+
48
+ </basicSettings>
40
49
  </template>
41
50
 
42
51
  </el-collapse-item>
@@ -52,6 +61,7 @@
52
61
  </el-collapse-item>
53
62
  </el-collapse>
54
63
  </div>
64
+
55
65
  <template #footer>
56
66
  <el-button @click="close">取 消</el-button>
57
67
  <el-button type="primary"
@@ -85,7 +95,8 @@ export default {
85
95
  type: Object,
86
96
  default: () => { }
87
97
  },
88
- drawerShow: { type: Boolean, default: false }
98
+ drawerShow: { type: Boolean, default: false },
99
+ soltList: { type: Array, default: () => { return [] } },
89
100
  },
90
101
  watch: {
91
102
  drawerShow: {
@@ -223,6 +234,7 @@ export default {
223
234
 
224
235
  // 取出对应节点的表单配置
225
236
  let nodeConfig = nodeDatasMerge[this.nodeData.type]?.formConfig || {};
237
+
226
238
  // 深拷贝,避免直接修改全局配置
227
239
  nodeConfig = JSON.parse(JSON.stringify(nodeConfig));
228
240
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <lw-form-mini ref="dataFormRef"
3
- :config="config"
4
- v-model="dataForm">
3
+ :config="config"
4
+ v-model="dataForm">
5
5
  <template #fontStyle>
6
6
  <el-button size="small"
7
7
  :type="dataForm.fontWeight === 'bold'? 'primary' : ''"
@@ -68,7 +68,7 @@ export default {
68
68
  return {
69
69
  labelWidth: '70px',
70
70
  labelPosition: 'right',
71
- size: 'medium',
71
+ size: 'default',
72
72
  formItems: [
73
73
  {
74
74
  label: '背景色',
@@ -3,6 +3,60 @@
3
3
  */
4
4
 
5
5
  export default {
6
+ // 表单内容
7
+ formConfig: {
8
+ labelWidth: '70px',
9
+ labelPosition: 'top',
10
+ formItems: [
11
+ {
12
+ label: '节点名称',
13
+ name: 'name',
14
+ value: '',
15
+ component: 'input',
16
+ options: {
17
+ placeholder: '请输入节点名称'
18
+ },
19
+ span: 24
20
+ },
21
+ {
22
+ label: '节点并行度',
23
+ name: 'para',
24
+ value: '',
25
+ component: 'number',
26
+ options: {
27
+ placeholder: '请输入节点并行度'
28
+ },
29
+ span: 24
30
+ },
31
+ {
32
+ label: '节点标签',
33
+ name: 'tags',
34
+ value: '',
35
+ component: 'tags',
36
+ span: 24
37
+ },
38
+ {
39
+ label: '描述信息',
40
+ name: 'desp',
41
+ value: '',
42
+ component: 'input',
43
+ options: {
44
+ placeholder: '请输入描述信息'
45
+ },
46
+ span: 24
47
+ },
48
+ {
49
+ label: '输出名称',
50
+ name: 'into',
51
+ value: '',
52
+ component: 'select',
53
+ options: {
54
+ placeholder: '请选择输出名称'
55
+ },
56
+ span: 24
57
+ }
58
+ ]
59
+ },
6
60
  // 数据来源
7
61
  configKeyableSource: {
8
62
  treeProps: {
@@ -66,14 +120,13 @@ export default {
66
120
  }
67
121
  ]
68
122
  },
69
- // 映射动作
123
+ // 映射动作
70
124
  configMapAction: {
71
125
  treeProps: {
72
126
  children: 'fields'
73
127
  },
74
128
  rowKey: 'id',
75
129
  formItems: [
76
-
77
130
  {
78
131
  label: '来源字段',
79
132
  name: 'from',
@@ -23,6 +23,23 @@ export default {
23
23
  span: 24,
24
24
  rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
25
25
  },
26
+ {
27
+ label: '节点并行度',
28
+ name: 'para',
29
+ value: '',
30
+ component: 'number',
31
+ options: {
32
+ placeholder: '请输入节点并行度'
33
+ },
34
+ span: 24
35
+ },
36
+ {
37
+ label: '节点标签',
38
+ name: 'tags',
39
+ value: '',
40
+ component: 'tags',
41
+ span: 24
42
+ },
26
43
  {
27
44
  label: '连接模式',
28
45
  name: 'mode',
@@ -26,7 +26,7 @@ export default {
26
26
  labelWidth: '70px',
27
27
  labelPosition: 'top',
28
28
  formItems: [
29
- {
29
+ {
30
30
  label: '节点名称',
31
31
  name: 'name',
32
32
  value: '',
@@ -34,8 +34,24 @@ export default {
34
34
  options: {
35
35
  placeholder: '请输入节点名称'
36
36
  },
37
- span: 24,
38
- rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
37
+ span: 24
38
+ },
39
+ {
40
+ label: '节点并行度',
41
+ name: 'para',
42
+ value: '',
43
+ component: 'number',
44
+ options: {
45
+ placeholder: '请输入节点并行度'
46
+ },
47
+ span: 24
48
+ },
49
+ {
50
+ label: '节点标签',
51
+ name: 'tags',
52
+ value: '',
53
+ component: 'tags',
54
+ span: 24
39
55
  },
40
56
  {
41
57
  label: '运行模式',
@@ -64,65 +80,6 @@ export default {
64
80
  ]
65
81
  }
66
82
  },
67
- {
68
- label: '数据表名',
69
- name: 'from',
70
- value: '',
71
- component: 'input',
72
- options: {
73
- placeholder: '请输入数据表名'
74
- },
75
- tips: '非SQL模式必须填写',
76
- span: 24,
77
- hideHandle: '$.mode == "sql"',
78
- rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
79
- },
80
- {
81
- label: '数据表名',
82
- name: 'from',
83
- value: '',
84
- component: 'input',
85
- options: {
86
- placeholder: '请输入数据表名'
87
- },
88
- tips: '非SQL模式必须填写',
89
- span: 24,
90
- hideHandle: '$.mode != "sql"'
91
- },
92
- {
93
- label: '所需字段',
94
- name: 'cols',
95
- value: '',
96
- component: 'input',
97
- options: {
98
- placeholder: '请输入所需字段'
99
- },
100
- tips: '多个字段采用逗号分隔,为空时选取所有字段,支持AS关键字。',
101
- span: 24
102
- },
103
- {
104
- label: '关联字段',
105
- name: 'with',
106
- value: '',
107
- component: 'input',
108
- options: {
109
- placeholder: '请输入关联字段'
110
- },
111
- span: 24,
112
- hideHandle: '$.mode != "expand" && $.mode != "collap"',
113
- rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
114
- },
115
- {
116
- label: '关联字段',
117
- name: 'with',
118
- value: '',
119
- component: 'input',
120
- options: {
121
- placeholder: '请输入关联字段'
122
- },
123
- span: 24,
124
- hideHandle: '$.mode == "expand" || $.mode == "collap"'
125
- },
126
83
  {
127
84
  label: '折叠排序方式',
128
85
  name: 'sort',
@@ -157,24 +114,26 @@ export default {
157
114
  span: 24
158
115
  },
159
116
  {
160
- label: '输出名称',
161
- name: 'into',
117
+ label: '数据表名来源',
118
+ name: 'fromNameSource',
162
119
  value: '',
163
- component: 'input',
120
+ component: 'select',
164
121
  options: {
165
- placeholder: '请输入输出名称'
122
+ placeholder: '请输选择数据表名来源',
123
+ items:[
124
+ {value:'hive',label:'hive'},
125
+ {value:'lake',label:'lake'},
126
+ ]
166
127
  },
167
128
  span: 24,
168
- rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
169
129
  },
170
- {
171
- label: '描述信息',
172
- name: 'desp',
130
+ {
131
+ label: '输出名称',
132
+ name: 'into',
173
133
  value: '',
174
- component: 'input',
134
+ component: 'select',
175
135
  options: {
176
- type: 'textarea',
177
- placeholder: '请输入'
136
+ placeholder: '请选择输出名称'
178
137
  },
179
138
  span: 24
180
139
  }
@@ -36,6 +36,23 @@ export default {
36
36
  span: 24,
37
37
  rules: [{ required: true, message: '不能为空', trigger: 'blur' }]
38
38
  },
39
+ {
40
+ label: '节点并行度',
41
+ name: 'para',
42
+ value: '',
43
+ component: 'number',
44
+ options: {
45
+ placeholder: '请输入节点并行度'
46
+ },
47
+ span: 24
48
+ },
49
+ {
50
+ label: '节点标签',
51
+ name: 'tags',
52
+ value: '',
53
+ component: 'tags',
54
+ span: 24
55
+ },
39
56
  {
40
57
  label: '数据来源',
41
58
  name: 'from',
@@ -57,7 +74,6 @@ export default {
57
74
  items:[]
58
75
  },
59
76
  value: 'id',
60
- label:'name',
61
77
  span: 24,
62
78
  isItemsFromProps: true,
63
79
 
@@ -285,6 +285,11 @@ export default {
285
285
  } else {
286
286
  this.unflattenObject(this.form, val.name, val.value)
287
287
  }
288
+
289
+ // 发布 这个数据
290
+ if (val?.name) {
291
+ this.$bus.$emit(`lwFormMini-${val.name}`, val)
292
+ }
288
293
  },
289
294
  deep: true
290
295
  },
@@ -25,7 +25,7 @@
25
25
  :label-width="config.labelWidth"
26
26
  :label-position="$i18n.locale == 'en-us' ? 'top' : config.labelPosition"
27
27
  v-loading="loading"
28
- :size="config.size"
28
+ :size="config?.size || 'default'"
29
29
  element-loading-text="Loading...">
30
30
  <el-row :gutter="15">
31
31
 
@@ -291,6 +291,7 @@ export default {
291
291
  //横向滚动
292
292
  scrollInit() {
293
293
  const scrollDiv = document.querySelector('.context-menu-list')
294
+ if (!scrollDiv) { return false }
294
295
  scrollDiv.addEventListener('mousewheel', handler, false) || scrollDiv.addEventListener("DOMMouseScroll", handler, false)
295
296
  function handler(event) {
296
297
  const detail = event.wheelDelta || event.detail;
@@ -364,6 +364,7 @@ export default {
364
364
  for (const key in param.data) {
365
365
  data.append(key, param.data[key]);
366
366
  }
367
+ console.log(apiObj)
367
368
  apiObj(data, {
368
369
  onUploadProgress: e => {
369
370
  this.file.percentage = parseInt(((e.loaded / e.total) * 100) | 0, 10)