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:
body: | body: |
][ ][
{{#keyFields}} {{#keyFields}}
{{value}} = @{{value}} {{^isLast}}, {{/isLast}} {{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}} {{/keyFields}}
] ]
footer: |
[继续执行] [继续执行]
[记录为空][{{tableName}}] [记录为空][{{tableName}}]
{ {
[报错返回][ERR_???][{{#keyFields}}{{value}} = @{{value}}{{^isLast}}, {{/isLast}}{{/keyFields}}] [报错返回][ERR_???][{{#keyFields}}{{name}} = @{{name}}{{^isLast}}, {{/isLast}}{{/keyFields}}]
} }else{
footer: "}"
获取记录数: 获取记录数:
header: "[获取记录数][{{tableName}}][@count]" header: "[获取记录数][{{tableName}}][@count]"
@ -25,23 +26,87 @@ templates:
body: | body: |
][ ][
{{#fields}} {{#fields}}
{{value}} = @{{value}} {{^isLast}}, {{/isLast}} {{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/fields}} {{/fields}}
] ]
footer: | footer: |
[索引冲突] [索引冲突]
{ {
[继续执行] [继续执行]
[获取记录][{{tableName}}({{keyName}})][ [获取记录][{{tableName}}({{keyName}})][
{{#keyFields}} {{#keyFields}}
{{value}} = @{{value}} {{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/keyFields}} {{/keyFields}}
] ]
[修改记录][{{tableName}}][ [修改记录][{{tableName}}][
{{#fields}} {{#fields}}
{{value}} = @{{value}} {{name}} = @{{name}} {{^isLast}}, {{/isLast}}
{{/fields}} {{/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 {
// MemoryTable // MemoryTable
MemoryTable get memoryTable => _memoryTable; MemoryTable get memoryTable => _memoryTable;
String? genCodeString(List<String> macroList) { void initTemplateService() {
if (!templateService.inited) { if (!templateService.inited) {
templateService.init(); templateService.init();
} }
}
String? genCodeString(List<String> macroList) {
initTemplateService();
return templateService.renderTemplate(macroList, _memoryTable.toMap()); return templateService.renderTemplate(macroList, _memoryTable.toMap());
} }

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

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

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

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

Loading…
Cancel
Save