Browse Source

优化模板与取值算法

master
hejl 3 weeks ago
parent
commit
8d1ed2ee29
  1. 58
      win_text_editor/assets/config/uft_macro_list.yaml
  2. 70
      win_text_editor/lib/modules/code_creater/services/code_create_service.dart

58
win_text_editor/assets/config/uft_macro_list.yaml

@ -66,7 +66,7 @@ templates:
body: | body: |
<M>[获取记录][{{tableName}}({{keyName}})][ <M>[获取记录][{{tableName}}({{keyName}})][
{{#keyFields}} {{#keyFields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/keyFields}} {{/keyFields}}
] ]
[继续执行] [继续执行]
@ -80,7 +80,29 @@ templates:
<F>[修改索引字段][{{tableName}}][ <F>[修改索引字段][{{tableName}}][
{{#keyFields}} {{#keyFields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/keyFields}}
]
}
修改记录_ALL:
body: |
<M>[获取记录][{{tableName}}({{keyName}})][
{{#keyFields}}
{{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/keyFields}}
]
[继续执行]
[记录不为空][{{tableName}}]
{
[修改记录][{{tableName}}][
{{#fields}}
{{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/fields}}
]
<F>[修改索引字段][{{tableName}}][
{{#keyFields}}
{{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/keyFields}} {{/keyFields}}
] ]
} }
@ -89,7 +111,7 @@ templates:
body: | body: |
<M>[获取记录][{{tableName}}({{keyName}})][ <M>[获取记录][{{tableName}}({{keyName}})][
{{#keyFields}} {{#keyFields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/keyFields}} {{/keyFields}}
] ]
[继续执行] [继续执行]
@ -102,7 +124,7 @@ templates:
body: | body: |
[遍历记录开始][{{tableName}}({{selectIndexOrKey.name}})][ [遍历记录开始][{{tableName}}({{selectIndexOrKey.name}})][
{{#selectIndexOrKey.fields}} {{#selectIndexOrKey.fields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/selectIndexOrKey.fields}} {{/selectIndexOrKey.fields}}
][ ][
{{#selectedFields}} {{#selectedFields}}
@ -116,15 +138,7 @@ templates:
遍历记录_ALL: 遍历记录_ALL:
body: | body: |
[遍历记录开始][{{tableName}}({{selectIndexOrKey.name}})][ [遍历记录开始][{{tableName}}][][]
{{#selectIndexOrKey.fields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}}
{{/selectIndexOrKey.fields}}
][
{{#selectedFields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}}
{{/selectedFields}}
]
遍历记录结束_ALL: 遍历记录结束_ALL:
@ -147,13 +161,21 @@ templates:
{{/selectedFields}} {{/selectedFields}}
] ]
修改组件_ALL:
body: |
[修改组件][{{name}}][@num][
{{#fields}}
{{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/fields}}
]
获取组件: 获取组件:
body: | body: |
{{#hasIndex}}[组件排序][{{name}}(index.name)]{{/hasIndex}} {{#hasIndex}}[组件排序][{{name}}(index.name)]{{/hasIndex}}
[获取组件][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][{{^hasIndex}}[@num][{{/hasIndex}} [获取组件][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][{{^hasIndex}}[@num][{{/hasIndex}}
{{#hasIndex}} {{#hasIndex}}
{{#index.fields}} {{#index.fields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/index.fields}} {{/index.fields}}
][ ][
{{/hasIndex}} {{/hasIndex}}
@ -168,7 +190,7 @@ templates:
[获取组件][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][{{^hasIndex}}[@num][{{/hasIndex}} [获取组件][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][{{^hasIndex}}[@num][{{/hasIndex}}
{{#hasIndex}} {{#hasIndex}}
{{#index.fields}} {{#index.fields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/index.fields}} {{/index.fields}}
][ ][
{{/hasIndex}}] {{/hasIndex}}]
@ -179,7 +201,7 @@ templates:
[遍历组件开始][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][ [遍历组件开始][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][
{{#hasIndex}} {{#hasIndex}}
{{#index.fields}} {{#index.fields}}
{{name}} = @{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/index.fields}} {{/index.fields}}
{{/hasIndex}} {{/hasIndex}}
][ ][
@ -197,7 +219,7 @@ templates:
尾部插入组件: 尾部插入组件:
body: | body: |
[插入组件][{{name}}][ [尾部插入组件][{{name}}][
{{#fields}} {{#fields}}
{{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}}{{^isLast}}, {{/isLast}}
{{/fields}} {{/fields}}
@ -209,7 +231,7 @@ templates:
[遍历组件开始][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][ [遍历组件开始][{{name}}{{#hasIndex}}({{index.name}}){{/hasIndex}}][
{{#hasIndex}} {{#hasIndex}}
{{#index.fields}} {{#index.fields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}} {{name}} = @{{#partnerName}}{{partnerName}}.{{/partnerName}}{{name}} {{^isLast}}, {{/isLast}}
{{/index.fields}} {{/index.fields}}
{{/hasIndex}} {{/hasIndex}}
] ]

70
win_text_editor/lib/modules/code_creater/services/code_create_service.dart

@ -166,6 +166,15 @@ class CodeCreateService {
List<String> fieldNames = memoryTable.columns.map((col) => col.name).toList(); List<String> fieldNames = memoryTable.columns.map((col) => col.name).toList();
switch (action) { switch (action) {
case '删除记录':
for (var fieldName in memoryTable.keyFields) {
if (!outputFields.contains(fieldName) &&
!inputFields.contains(fieldName) &&
!iterateOutputFields.values.expand((list) => list).contains(fieldName)) {
inputFields.add(fieldName);
}
}
break;
case '获取记录': case '获取记录':
for (var fieldName in memoryTable.keyFields) { for (var fieldName in memoryTable.keyFields) {
if (!outputFields.contains(fieldName) && if (!outputFields.contains(fieldName) &&
@ -174,7 +183,6 @@ class CodeCreateService {
inputFields.add(fieldName); inputFields.add(fieldName);
} }
} }
if (iterateStack.isNotEmpty) { if (iterateStack.isNotEmpty) {
// //
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames); iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames);
@ -200,8 +208,7 @@ class CodeCreateService {
break; break;
case '插入记录': case '插入记录':
case '修改记录': case '修改记录':
case '删除记录': for (var fieldName in fieldNames) {
for (var fieldName in memoryTable.keyFields) {
if (!outputFields.contains(fieldName) && if (!outputFields.contains(fieldName) &&
!inputFields.contains(fieldName) && !inputFields.contains(fieldName) &&
!iterateOutputFields.values.expand((list) => list).contains(fieldName)) { !iterateOutputFields.values.expand((list) => list).contains(fieldName)) {
@ -229,9 +236,16 @@ class CodeCreateService {
); );
List<String> fieldNames = component.fields.map((col) => col.name).toList(); List<String> fieldNames = component.fields.map((col) => col.name).toList();
final componentName = component.name;
switch (action) { switch (action) {
case "遍历组件": case "遍历组件":
if (!outputFields.contains(componentName) &&
!inputFields.contains(componentName) &&
!iterateOutputFields.values.expand((list) => list).contains(componentName)) {
inputFields.add(componentName);
}
iterateStack.add(component.name); // iterateStack.add(component.name); //
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames); iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames);
@ -242,33 +256,58 @@ class CodeCreateService {
break; break;
case "插入组件":
case "修改组件": case "修改组件":
for (var field in component.fields) { //
if (!outputFields.contains(field.name) && if (!outputFields.contains(componentName) &&
!inputFields.contains(field.name) && !inputFields.contains(componentName) &&
!iterateOutputFields.values.expand((list) => list).contains(field.name)) { !iterateOutputFields.values.expand((list) => list).contains(componentName)) {
inputFields.add(field.name); inputFields.add(componentName);
}
continue case_insert;
case_insert:
case "插入组件":
case "尾部插入组件":
//
for (var name in fieldNames) {
if (!outputFields.contains(name) &&
!inputFields.contains(name) &&
!iterateOutputFields.values.expand((list) => list).contains(name)) {
inputFields.add(name);
} }
} }
continue case_get; if (iterateStack.isNotEmpty) {
case_get: //
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).add(componentName);
iteratePartnerMap
.putIfAbsent(member.name, () => [])
.add(CodePartner(name: member.name, fields: fieldNames));
} else {
//
outputFields.add(componentName);
beforePartner.add(CodePartner(name: member.name, fields: fieldNames));
}
break;
case "获取组件": case "获取组件":
//
if (!outputFields.contains(componentName) &&
!inputFields.contains(componentName) &&
!iterateOutputFields.values.expand((list) => list).contains(componentName)) {
inputFields.add(componentName);
}
// //
if (iterateStack.isNotEmpty) { if (iterateStack.isNotEmpty) {
// //
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames); iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames);
iterateOutputFields[iterateStack.last]!.add(component.name); iterateOutputFields[iterateStack.last]!.add(componentName);
iteratePartnerMap iteratePartnerMap
.putIfAbsent(member.name, () => []) .putIfAbsent(member.name, () => [])
.add(CodePartner(name: member.name, fields: fieldNames)); .add(CodePartner(name: member.name, fields: fieldNames));
} else { } else {
// //
outputFields.addAll(fieldNames); outputFields.addAll(fieldNames);
outputFields.add(component.name); outputFields.add(componentName);
beforePartner.add(CodePartner(name: member.name, fields: fieldNames)); beforePartner.add(CodePartner(name: member.name, fields: fieldNames));
} }
break; break;
} }
@ -287,7 +326,8 @@ class CodeCreateService {
await parseRelationShips(members, selectedOperation); await parseRelationShips(members, selectedOperation);
codeBuffer.writeln("//可能需要传入的参数"); if (inputFields.isNotEmpty) codeBuffer.writeln("//可能需要传入的参数");
for (var field in inputFields) { for (var field in inputFields) {
codeBuffer.writeln('@$field = ,'); codeBuffer.writeln('@$field = ,');
} }

Loading…
Cancel
Save