Browse Source

对象的搞完,索引复选改单选之前。

master
hejl 2 months ago
parent
commit
1fec04c38a
  1. 103
      win_text_editor/assets/config/uft_macro_list.yaml
  2. 5
      win_text_editor/lib/modules/memory_table/controllers/memory_table_controller.dart
  3. 46
      win_text_editor/lib/modules/memory_table/models/memory_table.dart
  4. 1
      win_text_editor/lib/modules/memory_table/widgets/memory_table_right_side.dart

103
win_text_editor/assets/config/uft_macro_list.yaml

@ -5,15 +5,16 @@ templates: @@ -5,15 +5,16 @@ templates:
body: |
][
{{#keyFields}}
{{value}} = @{{value}} {{^isLast}}, {{/isLast}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
footer: |
[继续执行]
[记录为空][{{tableName}}]
{
[报错返回][ERR_???][{{#keyFields}}{{value}} = @{{value}}{{^isLast}}, {{/isLast}}{{/keyFields}}]
}
[报错返回][ERR_???][{{#keyFields}}{{name}} = @{{name}}{{^isLast}}, {{/isLast}}{{/keyFields}}]
}else{
footer: "}"
获取记录数:
header: "[获取记录数][{{tableName}}][@count]"
@ -25,23 +26,87 @@ templates: @@ -25,23 +26,87 @@ templates:
body: |
][
{{#fields}}
{{value}} = @{{value}} {{^isLast}}, {{/isLast}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/fields}}
]
footer: |
[索引冲突]
{
[继续执行]
[获取记录][{{tableName}}({{keyName}})][
{{#keyFields}}
{{value}} = @{{value}}
{{/keyFields}}
]
[修改记录][{{tableName}}][
{{#fields}}
{{value}} = @{{value}}
{{/fields}}
]
}
[继续执行]
[获取记录][{{tableName}}({{keyName}})][
{{#keyFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
[修改记录][{{tableName}}][
{{#fields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/fields}}
]
<F>[修改索引字段][{{tableName}}][
{{#keyFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
}
修改记录:
header: "<M>[获取记录][{{tableName}}({{keyName}})"
body: |
][
{{#keyFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
footer: |
[继续执行]
[记录不为空][{{tableName}}]
{
[修改记录][{{tableName}}][
{{#selectedFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/selectedFields}}
]
<F>[修改索引字段][{{tableName}}][
{{#keyFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
}
删除记录:
header: "<M>[获取记录][{{tableName}}({{keyName}})"
body: |
][
{{#keyFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}}
]
footer: |
[继续执行]
[记录不为空][{{tableName}}]
{
[删除记录][{{tableName}}]
}
遍历记录:
header: "<M>[遍历记录开始][{{tableName}}({{selectIndexOrKey.name}})"
body: |
][
{{#selectIndexOrKey.fields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/selectIndexOrKey.fields}}
][
{{#selectedFields}}
{{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/selectedFields}}
]
footer: |
{
//balabala
}
[遍历记录结束]

5
win_text_editor/lib/modules/memory_table/controllers/memory_table_controller.dart

@ -49,11 +49,14 @@ class MemoryTableController extends BaseContentController { @@ -49,11 +49,14 @@ class MemoryTableController extends BaseContentController {
// MemoryTable
MemoryTable get memoryTable => _memoryTable;
String? genCodeString(List<String> macroList) {
void initTemplateService() {
if (!templateService.inited) {
templateService.init();
}
}
String? genCodeString(List<String> macroList) {
initTemplateService();
return templateService.renderTemplate(macroList, _memoryTable.toMap());
}

46
win_text_editor/lib/modules/memory_table/models/memory_table.dart

@ -59,7 +59,24 @@ class MemoryTable { @@ -59,7 +59,24 @@ class MemoryTable {
return [];
}
Index get selectIndexOrKey {
for (var index in indexes) {
if (index.isSelected) {
return index;
}
}
for (var index in indexes) {
if (index.isPrimary) {
return index;
}
}
return indexes[0];
}
List<Field> get selectFields => columns.where((field) => field.isSelected).toList();
Map<String, dynamic> toMap() {
var index = selectIndexOrKey;
return {
'tableName': tableName,
'fields':
@ -70,26 +87,35 @@ class MemoryTable { @@ -70,26 +87,35 @@ class MemoryTable {
'name': field.name,
'chineseName': field.chineseName,
'type': field.type,
'isSelected': field.isSelected,
'isLast': columns.indexOf(field) == columns.length - 1,
},
)
.toList(),
'indexes':
indexes
'selectedFields':
selectFields
.map(
(index) => {
'indexName': index.indexName,
'isPrimary': index.isPrimary,
'indexFields': index.indexFields,
'rule': index.rule,
'isSelected': index.isSelected,
(field) => {
'id': field.id,
'name': field.name,
'chineseName': field.chineseName,
'type': field.type,
'isLast': selectFields.indexOf(field) == selectFields.length - 1,
},
)
.toList(),
'selectIndexOrKey': {
'name': index.indexName,
'isPrimary': index.isPrimary,
'fields':
index.fields.asMap().entries.map((entry) {
return {'name': entry.value, 'isLast': entry.key == keyFields.length - 1};
}).toList(),
'rule': index.rule,
},
'keyName': keyName,
'keyFields':
keyFields.asMap().entries.map((entry) {
return {'value': entry.value, 'isLast': entry.key == keyFields.length - 1};
return {'name': entry.value, 'isLast': entry.key == keyFields.length - 1};
}).toList(),
};
}

1
win_text_editor/lib/modules/memory_table/widgets/memory_table_right_side.dart

@ -18,6 +18,7 @@ class _MemoryTableRightSideState extends State<MemoryTableRightSide> { @@ -18,6 +18,7 @@ class _MemoryTableRightSideState extends State<MemoryTableRightSide> {
@override
void initState() {
super.initState();
widget.controller.initTemplateService();
widget.controller.addListener(_updateDisplay);
}

Loading…
Cancel
Save