fastui 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +53 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/images/fastui/application/application.png +0 -0
  6. data/app/assets/images/fastui/application/application_add.png +0 -0
  7. data/app/assets/images/fastui/application/application_cascade.png +0 -0
  8. data/app/assets/images/fastui/application/application_delete.png +0 -0
  9. data/app/assets/images/fastui/application/application_double.png +0 -0
  10. data/app/assets/images/fastui/application/application_edit.png +0 -0
  11. data/app/assets/images/fastui/application/application_error.png +0 -0
  12. data/app/assets/images/fastui/application/application_form.png +0 -0
  13. data/app/assets/images/fastui/application/application_form_add.png +0 -0
  14. data/app/assets/images/fastui/application/application_form_delete.png +0 -0
  15. data/app/assets/images/fastui/application/application_form_edit.png +0 -0
  16. data/app/assets/images/fastui/application/application_form_magnify.png +0 -0
  17. data/app/assets/images/fastui/application/application_get.png +0 -0
  18. data/app/assets/images/fastui/application/application_go.png +0 -0
  19. data/app/assets/images/fastui/application/application_home.png +0 -0
  20. data/app/assets/images/fastui/application/application_key.png +0 -0
  21. data/app/assets/images/fastui/application/application_lightning.png +0 -0
  22. data/app/assets/images/fastui/application/application_link.png +0 -0
  23. data/app/assets/images/fastui/application/application_osx.png +0 -0
  24. data/app/assets/images/fastui/application/application_osx_terminal.png +0 -0
  25. data/app/assets/images/fastui/application/application_put.png +0 -0
  26. data/app/assets/images/fastui/application/application_side_boxes.png +0 -0
  27. data/app/assets/images/fastui/application/application_side_contract.png +0 -0
  28. data/app/assets/images/fastui/application/application_side_expand.png +0 -0
  29. data/app/assets/images/fastui/application/application_side_list.png +0 -0
  30. data/app/assets/images/fastui/application/application_side_tree.png +0 -0
  31. data/app/assets/images/fastui/application/application_split.png +0 -0
  32. data/app/assets/images/fastui/application/application_tile_horizontal.png +0 -0
  33. data/app/assets/images/fastui/application/application_tile_vertical.png +0 -0
  34. data/app/assets/images/fastui/application/application_view_columns.png +0 -0
  35. data/app/assets/images/fastui/application/application_view_detail.png +0 -0
  36. data/app/assets/images/fastui/application/application_view_gallery.png +0 -0
  37. data/app/assets/images/fastui/application/application_view_icons.png +0 -0
  38. data/app/assets/images/fastui/application/application_view_list.png +0 -0
  39. data/app/assets/images/fastui/application/application_view_tile.png +0 -0
  40. data/app/assets/images/fastui/application/application_xp.png +0 -0
  41. data/app/assets/images/fastui/application/application_xp_terminal.png +0 -0
  42. data/app/assets/images/fastui/arrow/accept.png +0 -0
  43. data/app/assets/images/fastui/arrow/add.png +0 -0
  44. data/app/assets/images/fastui/arrow/arrow_branch.png +0 -0
  45. data/app/assets/images/fastui/arrow/arrow_divide.png +0 -0
  46. data/app/assets/images/fastui/arrow/arrow_down.png +0 -0
  47. data/app/assets/images/fastui/arrow/arrow_in.png +0 -0
  48. data/app/assets/images/fastui/arrow/arrow_inout.png +0 -0
  49. data/app/assets/images/fastui/arrow/arrow_join.png +0 -0
  50. data/app/assets/images/fastui/arrow/arrow_left.png +0 -0
  51. data/app/assets/images/fastui/arrow/arrow_merge.png +0 -0
  52. data/app/assets/images/fastui/arrow/arrow_out.png +0 -0
  53. data/app/assets/images/fastui/arrow/arrow_redo.png +0 -0
  54. data/app/assets/images/fastui/arrow/arrow_refresh.png +0 -0
  55. data/app/assets/images/fastui/arrow/arrow_refresh_small.png +0 -0
  56. data/app/assets/images/fastui/arrow/arrow_rotate_anticlockwise.png +0 -0
  57. data/app/assets/images/fastui/arrow/arrow_rotate_clockwise.png +0 -0
  58. data/app/assets/images/fastui/arrow/arrow_switch.png +0 -0
  59. data/app/assets/images/fastui/arrow/arrow_turn_left.png +0 -0
  60. data/app/assets/images/fastui/arrow/arrow_turn_right.png +0 -0
  61. data/app/assets/images/fastui/arrow/arrow_undo.png +0 -0
  62. data/app/assets/images/fastui/arrow/arrow_up.png +0 -0
  63. data/app/assets/images/fastui/arrow/cross.png +0 -0
  64. data/app/assets/images/fastui/cross.png +0 -0
  65. data/app/assets/images/fastui/key_go.png +0 -0
  66. data/app/assets/images/fastui/list1211.png +0 -0
  67. data/app/assets/images/fastui/loading.gif +0 -0
  68. data/app/assets/images/fastui/lock.png +0 -0
  69. data/app/assets/images/fastui/locked.png +0 -0
  70. data/app/assets/images/fastui/table/help.png +0 -0
  71. data/app/assets/images/fastui/table/table.png +0 -0
  72. data/app/assets/images/fastui/table/table_add.png +0 -0
  73. data/app/assets/images/fastui/table/table_delete.png +0 -0
  74. data/app/assets/images/fastui/table/table_edit.png +0 -0
  75. data/app/assets/images/fastui/table/table_save.png +0 -0
  76. data/app/assets/images/fastui/upload.png +0 -0
  77. data/app/assets/javascripts/fastui/app/Ctx.js +33 -0
  78. data/app/assets/javascripts/fastui/app/Env.js +38 -0
  79. data/app/assets/javascripts/fastui/app/Evaluator.js +6 -0
  80. data/app/assets/javascripts/fastui/app/inflection.js +656 -0
  81. data/app/assets/javascripts/fastui/app/store/MListMgr.js +34 -0
  82. data/app/assets/javascripts/fastui/app/store/MWindowMgr.js +27 -0
  83. data/app/assets/javascripts/fastui/app/view/FormFactory.js +11 -0
  84. data/app/assets/javascripts/fastui/app/view/Rest.js +40 -0
  85. data/app/assets/javascripts/fastui/app/view/VCommentForm.js +53 -0
  86. data/app/assets/javascripts/fastui/app/view/VCriteria.js +25 -0
  87. data/app/assets/javascripts/fastui/app/view/VCustomForm.js +34 -0
  88. data/app/assets/javascripts/fastui/app/view/VCustomTab.js +266 -0
  89. data/app/assets/javascripts/fastui/app/view/VForm.js +117 -0
  90. data/app/assets/javascripts/fastui/app/view/VGrid.js +172 -0
  91. data/app/assets/javascripts/fastui/app/view/VHelpWindow.js +21 -0
  92. data/app/assets/javascripts/fastui/app/view/VLoginForm.js +101 -0
  93. data/app/assets/javascripts/fastui/app/view/VLoginWindow.js +73 -0
  94. data/app/assets/javascripts/fastui/app/view/VMenu.js +75 -0
  95. data/app/assets/javascripts/fastui/app/view/VSearchWindow.js +102 -0
  96. data/app/assets/javascripts/fastui/app/view/VTab.js +293 -0
  97. data/app/assets/javascripts/fastui/app/view/VToolbar.js +23 -0
  98. data/app/assets/javascripts/fastui/app/view/VTreeGrid.js +158 -0
  99. data/app/assets/javascripts/fastui/app/view/VVWindow.js +72 -0
  100. data/app/assets/javascripts/fastui/app/view/VWindow.js +52 -0
  101. data/app/assets/javascripts/fastui/app/view/Viewport.js +54 -0
  102. data/app/assets/javascripts/fastui/app/view/vfield/VCheckBox.js +19 -0
  103. data/app/assets/javascripts/fastui/app/view/vfield/VCheckboxGroup.js +19 -0
  104. data/app/assets/javascripts/fastui/app/view/vfield/VDate.js +19 -0
  105. data/app/assets/javascripts/fastui/app/view/vfield/VFieldFactory.js +77 -0
  106. data/app/assets/javascripts/fastui/app/view/vfield/VFile.js +22 -0
  107. data/app/assets/javascripts/fastui/app/view/vfield/VHtmlEditor.js +19 -0
  108. data/app/assets/javascripts/fastui/app/view/vfield/VLongComboBox.js +19 -0
  109. data/app/assets/javascripts/fastui/app/view/vfield/VLookup.js +45 -0
  110. data/app/assets/javascripts/fastui/app/view/vfield/VMultipleChoice.js +46 -0
  111. data/app/assets/javascripts/fastui/app/view/vfield/VNumber.js +18 -0
  112. data/app/assets/javascripts/fastui/app/view/vfield/VSexSelect.js +30 -0
  113. data/app/assets/javascripts/fastui/app/view/vfield/VSingleChoice.js +35 -0
  114. data/app/assets/javascripts/fastui/app/view/vfield/VText.js +17 -0
  115. data/app/assets/javascripts/fastui/app/view/vfield/VTextArea.js +19 -0
  116. data/app/assets/javascripts/fastui/app/view/vfield/VTree.js +17 -0
  117. data/app/assets/javascripts/fastui/app/view/vfield/VYesOrNo.js +30 -0
  118. data/app/assets/javascripts/fastui/application.js +18 -0
  119. data/app/assets/javascripts/fastui/data/mwindows.json +7 -0
  120. data/app/assets/javascripts/fastui/data/updateMWindows.json +4 -0
  121. data/app/assets/javascripts/fastui/extjs4/locale/ext-lang-zh_CN.js +304 -0
  122. data/app/assets/javascripts/fastui/fastui.js +23 -0
  123. data/app/assets/stylesheets/fastui/admin.css +95 -0
  124. data/app/assets/stylesheets/fastui/application.css +14 -0
  125. data/app/controllers/fastui/admin_controller.rb +9 -0
  126. data/app/controllers/fastui/application_controller.rb +19 -0
  127. data/app/controllers/fastui/m_list_items_controller.rb +64 -0
  128. data/app/controllers/fastui/m_lists_controller.rb +58 -0
  129. data/app/controllers/fastui/m_menu_items_controller.rb +69 -0
  130. data/app/controllers/fastui/m_menus_controller.rb +58 -0
  131. data/app/controllers/fastui/m_orgs_controller.rb +62 -0
  132. data/app/controllers/fastui/m_people_controller.rb +89 -0
  133. data/app/controllers/fastui/m_roles_controller.rb +61 -0
  134. data/app/controllers/fastui/m_views_controller.rb +18 -0
  135. data/app/controllers/fastui/sessions_controller.rb +42 -0
  136. data/app/helpers/fastui/admin_helper.rb +4 -0
  137. data/app/helpers/fastui/application_helper.rb +4 -0
  138. data/app/models/fastui/acl.rb +21 -0
  139. data/app/models/fastui/ctx.rb +15 -0
  140. data/app/models/fastui/env.rb +16 -0
  141. data/app/models/fastui/m_acl_entry.rb +5 -0
  142. data/app/models/fastui/m_list.rb +6 -0
  143. data/app/models/fastui/m_list_item.rb +8 -0
  144. data/app/models/fastui/m_menu.rb +10 -0
  145. data/app/models/fastui/m_menu_item.rb +11 -0
  146. data/app/models/fastui/m_object.rb +41 -0
  147. data/app/models/fastui/m_org.rb +16 -0
  148. data/app/models/fastui/m_person.rb +21 -0
  149. data/app/models/fastui/m_relationship.rb +9 -0
  150. data/app/models/fastui/m_role.rb +11 -0
  151. data/app/models/fastui/user_authenticator.rb +18 -0
  152. data/app/views/fastui/admin/index.html.erb +2 -0
  153. data/app/views/layouts/fastui/application.html.erb +22 -0
  154. data/config/routes.rb +19 -0
  155. data/db/migrate/20121017013727_create_fastui_m_menu_items.rb +28 -0
  156. data/db/migrate/20121017014112_create_fastui_m_menus.rb +20 -0
  157. data/db/migrate/20121017024943_create_fastui_m_orgs.rb +26 -0
  158. data/db/migrate/20121017025014_create_fastui_m_people.rb +24 -0
  159. data/db/migrate/20121204021053_create_fastui_m_roles.rb +22 -0
  160. data/db/migrate/20121204061207_create_fastui_m_relationships.rb +25 -0
  161. data/db/migrate/20121211062955_create_fastui_m_lists.rb +23 -0
  162. data/db/migrate/20121211074436_create_fastui_m_list_items.rb +21 -0
  163. data/db/migrate/20121217020606_create_fastui_m_acl_entries.rb +22 -0
  164. data/lib/fastui/engine.rb +8 -0
  165. data/lib/fastui/m_model.rb +26 -0
  166. data/lib/fastui/tab.rb +26 -0
  167. data/lib/fastui/version.rb +3 -0
  168. data/lib/fastui/view.rb +32 -0
  169. data/lib/fastui/window.rb +43 -0
  170. data/lib/fastui.rb +8 -0
  171. data/lib/generators/fastui/USAGE +21 -0
  172. data/lib/generators/fastui/install_generator.rb +31 -0
  173. data/lib/generators/fastui/templates/fastui_config.erb +77 -0
  174. data/lib/tasks/create_sys_data.rake +11 -0
  175. data/lib/tasks/fastui_tasks.rake +707 -0
  176. data/lib/tasks/loading_data.rake +28 -0
  177. metadata +276 -0
@@ -0,0 +1,707 @@
1
+ # encoding: utf-8
2
+ #desc "Explaining what the task does"
3
+ namespace :fastui do
4
+ desc "init fastui 'system' data"
5
+ task :system_data => :environment do
6
+ org_system = Fastui::MOrg.create({name: 'system', title: '系统组织'})
7
+ person1 = Fastui::MPerson.create({name: 'Administrator', title: '系统管理员', username: 'admin', password: 'admin'})
8
+ attr = {entity_kind: 'sys', seq: 1, is_active: true, createdbyorg: org_system, createdby: person1, updatedby: person1}
9
+ Fastui::Env.ctx.set('g_person_id', person1.id)
10
+ Fastui::Env.ctx.set('g_org_id', org_system.id)
11
+
12
+ v_number = Fastui::MNumber.create({name: 'VNumber', title: '整型'})
13
+ v_date = Fastui::MDate.create({name: 'VDate', title: '日期'})
14
+ v_text = Fastui::MText.create({name: 'VText', title: '字符串'})
15
+ v_tree = Fastui::MTree.create({name: 'VTree', title: '层级树'})
16
+ v_htmleditor = Fastui::MHtmlEditor.create({name: 'VHtmlEditor', title: '文本编辑器'})
17
+ v_textarea = Fastui::MTextArea.create({name: 'VTextArea', title: '文本'})
18
+ v_checkbox = Fastui::MCheckbox.create({name: 'VCheckbox', title: '选择框'})
19
+ v_combobox = Fastui::MCombobox.create({name: 'VCombobox', title: '下拉框'})
20
+ v_multi_combobox = Fastui::MMultiCombobox.create({name: 'VMultiCombobox', title: '多选下拉框'})
21
+ v_file = Fastui::MFile.create({name: 'VFile', title: '上传资源'})
22
+ v_yesorno = Fastui::MYesOrNo.create({name: 'VYesOrNo', title: '是否'})
23
+ v_sex_select = Fastui::MSexSelect.create({name: 'VSexSelect', title: '男女'})
24
+
25
+ access_level = Fastui::MList.create({name: 'access_level', title: '访问级别'})
26
+ access_level.m_list_items.create([{name: 'system', title: '系统级别'}, {name: 'org', title: '组织级别'}, {name: 'dept', title: '部门级别'}])
27
+
28
+ entity_kind = Fastui::MList.create({name: 'entity_kind', title: '实体种类'})
29
+ entity_kind.m_list_items.create([{name: 'sys', title: '系统实体'}, {name: 'app', title: '应用实体'}])
30
+
31
+ window_kind = Fastui::MList.create({name: 'window_kind', title: '窗体种类'})
32
+ window_kind.m_list_items.create([{name: 'maintain', title: '维护'}, {name: 'transaction', title: '事务'}, {name: 'query', title: '查询'}])
33
+
34
+
35
+ m_person = Fastui::MEntity.create({name: 'Fastui::MPerson', title: '人员', access_level: 'system'}.merge(attr))
36
+ mentity = Fastui::MEntity.create({name: 'Fastui::MEntity', title: '实体', access_level: 'system'}.merge(attr))
37
+ mproperty = Fastui::MEntity.create({name: 'Fastui::MProperty', title: '属性', access_level: 'system'}.merge(attr))
38
+ m_org = Fastui::MEntity.create({name: 'Fastui::MOrg', title: '组织', access_level: 'system'}.merge(attr))
39
+ mmenu = Fastui::MEntity.create({name: 'Fastui::MMenu', title: '菜单', access_level: 'system'}.merge(attr))
40
+ m_datatype = Fastui::MEntity.create({name: 'Fastui::MDatatype', title: '数据类型', access_level: 'system'}.merge(attr))
41
+ m_comment = Fastui::MEntity.create({name: 'Fastui::MComment', title: '评论', access_level: 'system'}.merge(attr))
42
+
43
+ m_relation_org = Fastui::MRelation.create({m_entity: m_org, name: 'Fastui::MOrg', title: '组织', access_level: 'system'}.merge(attr))
44
+ m_relation_person = Fastui::MRelation.create({m_entity: m_person, name: 'Fastui::MPerson', title: '人员', access_level: 'system'}.merge(attr))
45
+ m_relation_entity = Fastui::MRelation.create({m_entity: mentity, name: 'Fastui::MEntity', title: '实体', access_level: 'system'}.merge(attr))
46
+ #测试多选
47
+ multi_relation_person = Fastui::MMultiCombobox.create({m_entity: m_person, name: 'Fastui::MEntity', title: '实体', access_level: 'system'}.merge(attr))
48
+ m_relation_property = Fastui::MRelation.create({m_entity: mproperty, name: 'Fastui::MProperty', title: '属性', access_level: 'system'}.merge(attr))
49
+ m_relation_menu = Fastui::MRelation.create({m_entity: mmenu, name: 'Fastui::MMenu', title: '菜单', access_level: 'system'}.merge(attr))
50
+ m_relation_datatype = Fastui::MRelation.create({m_entity: m_datatype, name: 'Fastui::MDatatype', title: '数据类型', access_level: 'system'}.merge(attr))
51
+
52
+
53
+ mwin = Fastui::MEntity.create({name: 'Fastui::MWindow', title: '窗口', access_level: 'system'}.merge(attr)) do |ent|
54
+ ent.m_properties.build([{name: 'id', title: 'ID', m_datatype: v_number},
55
+ {name: 'title', title: '标题', m_datatype: v_text},
56
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
57
+ {name: 'name', title: '标识', m_datatype: v_text},
58
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
59
+ {name: 'window_kind', title: '窗体种类', m_datatype: window_kind},
60
+ {name: 'seq', title: '排序', m_datatype: v_number},
61
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
62
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
63
+ {name: 'note', title: '备注', m_datatype: v_textarea},
64
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
65
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
66
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}
67
+ ].map { |a| a.merge(attr) })
68
+
69
+ end
70
+ m_relation_window = Fastui::MRelation.create({m_entity: mwin, name: 'Fastui::MWindow', title: '窗口', access_level: 'system'}.merge(attr))
71
+
72
+ mtab = Fastui::MEntity.create({name: 'Fastui::MTab', title: '标签', access_level: 'system'}.merge(attr))
73
+ m_relation_tab = Fastui::MRelation.create({m_entity: mtab, name: 'Fastui::MTab', title: '标签', access_level: 'system'}.merge(attr))
74
+ mtab.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
75
+ {name: 'title', title: '标题', m_datatype: v_text},
76
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
77
+ {name: 'name', title: '标识', m_datatype: v_text},
78
+ {name: 'is_readonly', title: '只读', m_datatype: v_yesorno},
79
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
80
+ {name: 'seq', title: '排序', m_datatype: v_number},
81
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
82
+ {name: 'm_window_id', title: '对应窗口', m_datatype: m_relation_window},
83
+ {name: 'included_tab_id', title: '依赖标签', m_datatype: m_relation_tab},
84
+ {name: 'm_entity_id', title: '依赖实体', m_datatype: m_relation_entity},
85
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
86
+ {name: 'note', title: '备注', m_datatype: v_textarea},
87
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
88
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
89
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
90
+
91
+ mfield = Fastui::MEntity.create({name: 'Fastui::MField', title: '字段', access_level: 'system'}.merge(attr)) do |field_ent|
92
+ field_ent.m_properties.build([{name: 'id', title: 'ID', m_datatype: v_number},
93
+ {name: 'title', title: '标题', m_datatype: v_text},
94
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
95
+ {name: 'name', title: '标识', m_datatype: v_text},
96
+ {name: 'm_property_id', title: '所属属性', m_datatype: m_relation_property},
97
+ {name: 'is_display', title: '是否显示', m_datatype: v_yesorno},
98
+ {name: 'is_readonly', title: '是否只读', m_datatype: v_yesorno},
99
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
100
+ {name: 'default_logic', title: '默认逻辑', m_datatype: v_textarea},
101
+ {name: 'seq', title: '排序', m_datatype: v_number},
102
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
103
+ {name: 'm_tab_id', title: '依赖标签', m_datatype: m_relation_tab},
104
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
105
+ {name: 'note', title: '备注', m_datatype: v_textarea},
106
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
107
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
108
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}
109
+ ].map { |a| a.merge(attr) })
110
+ end
111
+ mcolumn = Fastui::MEntity.create({name: 'Fastui::MColumn', title: '表列', access_level: 'system'}.merge(attr)) do |column_ent|
112
+ column_ent.m_properties.build([{name: 'id', title: 'ID', m_datatype: v_number},
113
+ {name: 'title', title: '标题', m_datatype: v_text},
114
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
115
+ {name: 'name', title: '标识', m_datatype: v_text},
116
+ {name: 'm_property_id', title: '所属属性', m_datatype: m_relation_property},
117
+ {name: 'width', title: '列宽度', m_datatype: v_number},
118
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
119
+ {name: 'seq', title: '排序', m_datatype: v_number},
120
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
121
+ {name: 'm_tab_id', title: '依赖标签', m_datatype: m_relation_tab},
122
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
123
+ {name: 'note', title: '备注', m_datatype: v_textarea},
124
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
125
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
126
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}
127
+ ].map { |a| a.merge(attr) })
128
+ end
129
+
130
+ win = Fastui::MWindow.create({title: 'FastUI', window_kind: 'maintain'}.merge(attr))
131
+ fastui_window = win.m_tabs.create({title: '窗口', m_entity: mwin, is_readonly: true}.merge(attr)) do |win_tab|
132
+ win_tab.m_fields.build([{title: 'ID', m_property: mwin.prop_by('id'), is_display: true, is_readonly: true},
133
+ {title: '标题', m_property: mwin.prop_by('title'), is_display: true, is_readonly: false},
134
+ {title: '打印文本', m_property: mwin.prop_by('print_text'), is_display: true, is_readonly: false},
135
+ {title: '标识', m_property: mwin.prop_by('name'), is_display: true, is_readonly: false},
136
+ {title: '窗体种类', m_property: mwin.prop_by('window_kind'), is_display: true, is_readonly: false},
137
+ {title: '实体种类', m_property: mwin.prop_by('entity_kind'), is_display: true, is_readonly: false},
138
+ {title: '排序', m_property: mwin.prop_by('seq'), is_display: true, is_readonly: false},
139
+ {title: '是否激活', m_property: mwin.prop_by('is_active'), is_display: true, is_readonly: false},
140
+ {title: '帮助', m_property: mwin.prop_by('help'), is_display: true, is_readonly: false},
141
+ {title: '备注', m_property: mwin.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
142
+ win_tab.m_columns.build([{title: 'ID', m_property: mwin.prop_by('id'), width: 35},
143
+ {title: '标题', m_property: mwin.prop_by('title'), width: 75},
144
+ {title: '打印文本', m_property: mwin.prop_by('print_text'), width: 75},
145
+ {title: '标识', m_property: mwin.prop_by('name'), width: 75},
146
+ {title: '窗体种类', m_property: mwin.prop_by('window_kind'), width: 75},
147
+ {title: '实体种类', m_property: mwin.prop_by('entity_kind'), width: 75},
148
+ {title: '排序', m_property: mwin.prop_by('seq'), width: 75},
149
+ {title: '是否激活', m_property: mwin.prop_by('is_active'), width: 75},
150
+ {title: '创建组织', m_property: mwin.prop_by('createdbyorg_id'), width: 75},
151
+ {title: '创建人', m_property: mwin.prop_by('updatedby_id'), width: 75},
152
+ {title: '更新人', m_property: mwin.prop_by('updatedby_id'), width: 75},
153
+ {title: '备注', m_property: mwin.prop_by('note'), width: 75}
154
+ ].map { |a| a.merge(attr) })
155
+ end
156
+ fastui_tab = win.m_tabs.create({title: '标签', m_entity: mtab, is_readonly: true, included_tab: fastui_window}.merge(attr)) do |t_tab|
157
+ t_tab.m_fields.build([{title: 'ID', m_property: mtab.prop_by('id'), is_display: true, is_readonly: true},
158
+ {title: '标题', m_property: mtab.prop_by('title'), is_display: true, is_readonly: false},
159
+ {title: '打印文本', m_property: mtab.prop_by('print_text'), is_display: true, is_readonly: false},
160
+ {title: '标识', m_property: mtab.prop_by('name'), is_display: true, is_readonly: false},
161
+ {title: '只读', m_property: mtab.prop_by('is_readonly'), is_display: true, is_readonly: false},
162
+ {title: '实体种类', m_property: mtab.prop_by('entity_kind'), is_display: true, is_readonly: false},
163
+ {title: '排序', m_property: mtab.prop_by('seq'), is_display: true, is_readonly: false},
164
+ {title: '是否激活', m_property: mtab.prop_by('is_active'), is_display: true, is_readonly: false},
165
+ {title: '对应窗口', m_property: mtab.prop_by('m_window_id'), default_logic: "{id:${m_window_id},title:'${m_window_title}'}", is_display: true, is_readonly: false},
166
+ {title: '依赖标签', m_property: mtab.prop_by('included_tab_id'), is_display: true, is_readonly: false},
167
+ {title: '所属实体', m_property: mtab.prop_by('m_entity_id'), is_display: true, is_readonly: false},
168
+ {title: '帮助', m_property: mtab.prop_by('help'), is_display: true, is_readonly: false},
169
+ {title: '备注', m_property: mtab.prop_by('note'), is_display: true, is_readonly: false}
170
+ ].map { |a| a.merge(attr) })
171
+ t_tab.m_columns.build([{title: 'ID', m_property: mtab.prop_by('id'), width: 35},
172
+ {title: '标题', m_property: mtab.prop_by('title'), width: 75},
173
+ {title: '打印文本', m_property: mtab.prop_by('print_text'), width: 75},
174
+ {title: '标识', m_property: mtab.prop_by('name'), width: 75},
175
+ {title: '只读', m_property: mtab.prop_by('is_readonly'), width: 75},
176
+ {title: '实体种类', m_property: mtab.prop_by('entity_kind'), width: 75},
177
+ {title: '排序', m_property: mtab.prop_by('seq'), width: 75},
178
+ {title: '是否激活', m_property: mtab.prop_by('is_active'), width: 75},
179
+ {title: '对应窗口', m_property: mtab.prop_by('m_window_id'), width: 75},
180
+ {title: '依赖标签', m_property: mtab.prop_by('included_tab_id'), width: 75},
181
+ {title: '所属实体', m_property: mtab.prop_by('m_entity_id'), width: 75},
182
+ {title: '创建组织', m_property: mtab.prop_by('createdbyorg_id'), width: 75},
183
+ {title: '创建人', m_property: mtab.prop_by('createdby_id'), width: 75},
184
+ {title: '更新人', m_property: mtab.prop_by('updatedby_id'), width: 75},
185
+ {title: '备注', m_property: mtab.prop_by('note'), width: 75}
186
+ ].map { |a| a.merge(attr) })
187
+ end
188
+ win.m_tabs.create({title: '字段', m_entity: mfield, is_readonly: true, included_tab: fastui_tab}.merge(attr)) do |field_tab|
189
+ field_tab.m_fields.build([{title: 'ID', m_property: mfield.prop_by('id'), is_display: true, is_readonly: true},
190
+ {title: '标题', m_property: mfield.prop_by('title'), is_display: true, is_readonly: false},
191
+ {title: '打印文本', m_property: mfield.prop_by('print_text'), is_display: true, is_readonly: false},
192
+ {title: '标识', m_property: mfield.prop_by('name'), is_display: true, is_readonly: false},
193
+ {title: '所属属性', m_property: mfield.prop_by('m_property_id'), is_display: true, is_readonly: false},
194
+ {title: '显示', m_property: mfield.prop_by('is_display'), is_display: true, is_readonly: false},
195
+ {title: '只读', m_property: mfield.prop_by('is_readonly'), is_display: true, is_readonly: false},
196
+ {title: '实体种类', m_property: mfield.prop_by('entity_kind'), is_display: true, is_readonly: false},
197
+ {title: '默认逻辑', m_property: mfield.prop_by('default_logic'), is_display: true, is_readonly: false},
198
+ {title: '排序', m_property: mfield.prop_by('seq'), is_display: true, is_readonly: false},
199
+ {title: '是否激活', m_property: mfield.prop_by('is_active'), is_display: true, is_readonly: false},
200
+ {title: '依赖标签', m_property: mfield.prop_by('m_tab_id'), default_logic: "{id:${m_tab_id},title:'${m_tab_title}'}", is_display: true, is_readonly: false},
201
+ {title: '帮助', m_property: mfield.prop_by('help'), is_display: true, is_readonly: false},
202
+ {title: '备注', m_property: mfield.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
203
+ field_tab.m_columns.build([{title: 'ID', m_property: mfield.prop_by('id'), width: 35},
204
+ {title: '标题', m_property: mfield.prop_by('title'), width: 75},
205
+ {title: '打印文本', m_property: mfield.prop_by('print_text'), width: 75},
206
+ {title: '标识', m_property: mfield.prop_by('name'), width: 75},
207
+ {title: '所属属性', m_property: mfield.prop_by('m_property_id'), width: 75},
208
+ {title: '显示', m_property: mfield.prop_by('is_display'), width: 75},
209
+ {title: '只读', m_property: mfield.prop_by('is_readonly'), width: 75},
210
+ {title: '实体种类', m_property: mfield.prop_by('entity_kind'), width: 75},
211
+ {title: '默认逻辑', m_property: mfield.prop_by('default_logic'), width: 75},
212
+ {title: '排序', m_property: mfield.prop_by('seq'), width: 75},
213
+ {title: '是否激活', m_property: mfield.prop_by('is_active'), width: 75},
214
+ {title: '创建组织', m_property: mfield.prop_by('createdbyorg_id'), width: 75},
215
+ {title: '依赖标签', m_property: mfield.prop_by('m_tab_id'), width: 75},
216
+ {title: '创建人', m_property: mfield.prop_by('createdby_id'), width: 75},
217
+ {title: '更新人', m_property: mfield.prop_by('updatedby_id'), width: 75},
218
+ {title: '备注', m_property: mfield.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
219
+ end
220
+ win.m_tabs.create({title: '表列', m_entity: mcolumn, is_readonly: true, included_tab: fastui_tab}.merge(attr)) do |column_tab|
221
+ column_tab.m_fields.build([{title: 'ID', m_property: mcolumn.prop_by('id'), is_display: true, is_readonly: true},
222
+ {title: '标题', m_property: mcolumn.prop_by('title'), is_display: true, is_readonly: false},
223
+ {title: '打印文本', m_property: mcolumn.prop_by('print_text'), is_display: true, is_readonly: false},
224
+ {title: '标识', m_property: mcolumn.prop_by('name'), is_display: true, is_readonly: false},
225
+ {title: '所属属性', m_property: mcolumn.prop_by('m_property_id'), is_display: true, is_readonly: false},
226
+ {title: '列宽度', m_property: mcolumn.prop_by('width'), is_display: true, is_readonly: false},
227
+ {title: '实体种类', m_property: mcolumn.prop_by('entity_kind'), is_display: true, is_readonly: false},
228
+ {title: '排序', m_property: mcolumn.prop_by('seq'), is_display: true, is_readonly: false},
229
+ {title: '是否激活', m_property: mcolumn.prop_by('is_active'), is_display: true, is_readonly: false},
230
+ {title: '依赖标签', m_property: mcolumn.prop_by('m_tab_id'), default_logic: "{id:${m_tab_id},title:'${m_tab_title}'}", is_display: true, is_readonly: false},
231
+ {title: '帮助', m_property: mcolumn.prop_by('help'), is_display: true, is_readonly: false},
232
+ {title: '备注', m_property: mcolumn.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
233
+ column_tab.m_columns.build([{title: 'ID', m_property: mcolumn.prop_by('id'), width: 35},
234
+ {title: '标题', m_property: mcolumn.prop_by('title'), width: 75},
235
+ {title: '打印文本', m_property: mcolumn.prop_by('print_text'), width: 75},
236
+ {title: '标识', m_property: mcolumn.prop_by('name'), width: 75},
237
+ {title: '所属属性', m_property: mcolumn.prop_by('m_property_id'), width: 75},
238
+ {title: '列宽度', m_property: mcolumn.prop_by('width'), width: 75},
239
+ {title: '实体种类', m_property: mcolumn.prop_by('entity_kind'), width: 75},
240
+ {title: '排序', m_property: mcolumn.prop_by('seq'), width: 75},
241
+ {title: '是否激活', m_property: mcolumn.prop_by('is_active'), width: 75},
242
+ {title: '创建组织', m_property: mcolumn.prop_by('createdbyorg_id'), width: 75},
243
+ {title: '依赖标签', m_property: mcolumn.prop_by('m_tab_id'), width: 75},
244
+ {title: '创建人', m_property: mcolumn.prop_by('createdby_id'), width: 75},
245
+ {title: '更新人', m_property: mcolumn.prop_by('updatedby_id'), width: 75},
246
+ {title: '备注', m_property: mcolumn.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
247
+ end
248
+
249
+ # 实体 属性
250
+ mentity.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
251
+ {name: 'title', title: '标题', m_datatype: v_text},
252
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
253
+ {name: 'name', title: '标识', m_datatype: v_text},
254
+ {name: 'access_level', title: '访问级别', m_datatype: access_level},
255
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
256
+ {name: 'seq', title: '排序', m_datatype: v_number},
257
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
258
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
259
+ {name: 'note', title: '备注', m_datatype: v_textarea},
260
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
261
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
262
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
263
+
264
+ mproperty.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
265
+ {name: 'title', title: '标题', m_datatype: v_text},
266
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
267
+ {name: 'name', title: '标识', m_datatype: v_text},
268
+ {name: 'external_key', title: '外键', m_datatype: v_text},
269
+ {name: 'm_datatype_id', title: '数据类型', m_datatype: m_relation_datatype},
270
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
271
+ {name: 'm_entity_id', title: '所属实体', m_datatype: m_relation_entity},
272
+ #{name: 'm_entity_id', title: '所属实体', m_datatype: multi_relation_entity},
273
+ {name: 'seq', title: '排序', m_datatype: v_number},
274
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
275
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
276
+ {name: 'note', title: '备注', m_datatype: v_textarea},
277
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
278
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
279
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
280
+
281
+
282
+ win_entity = Fastui::MWindow.create({title: '实体', :window_kind => 'maintain', entity_kind: 'sys'}.merge(attr)) do |w_entity|
283
+ tab_ent = w_entity.m_tabs.build({title: '实体', m_entity: mentity, is_readonly: true, entity_kind: 'sys'}.merge(attr))
284
+ tab_ent.m_fields.build([{title: 'ID', m_property: mentity.prop_by('id'), is_display: true, is_readonly: true},
285
+ {title: '标题', m_property: mentity.prop_by('title'), is_display: true, is_readonly: false},
286
+ {title: '打印文本', m_property: mentity.prop_by('print_text'), is_display: true, is_readonly: false},
287
+ {title: '标识', m_property: mentity.prop_by('name'), is_display: true, is_readonly: false},
288
+ {title: '访问级别', m_property: mentity.prop_by('access_level'), is_display: true, is_readonly: false},
289
+ {title: '实体种类', m_property: mentity.prop_by('entity_kind'), is_display: true, is_readonly: false},
290
+ {title: '排序', m_property: mentity.prop_by('seq'), is_display: true, is_readonly: false},
291
+ {title: '是否激活', m_property: mentity.prop_by('is_active'), is_display: true, is_readonly: false},
292
+ {title: '帮助', m_property: mentity.prop_by('help'), is_display: true, is_readonly: false},
293
+ {title: '备注', m_property: mentity.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
294
+ tab_ent.m_columns.build([{title: 'ID', m_property: mentity.prop_by('id'), width: 35},
295
+ {title: '标题', m_property: mentity.prop_by('title'), width: 75},
296
+ {title: '打印文本', m_property: mentity.prop_by('print_text'), width: 75},
297
+ {title: '标识', m_property: mentity.prop_by('name'), width: 75},
298
+ {title: '访问级别', m_property: mentity.prop_by('access_level'), width: 75},
299
+ {title: '实体种类', m_property: mentity.prop_by('entity_kind'), width: 75},
300
+ {title: '排序', m_property: mentity.prop_by('seq'), width: 75},
301
+ {title: '是否激活', m_property: mentity.prop_by('is_active'), width: 75},
302
+ {title: '创建组织', m_property: mentity.prop_by('createdbyorg_id'), width: 75},
303
+ {title: '创建人', m_property: mentity.prop_by('createdby_id'), width: 75},
304
+ {title: '更新人', m_property: mentity.prop_by('updatedby_id'), width: 75},
305
+ {title: '备注', m_property: mentity.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
306
+
307
+
308
+ w_entity.m_tabs.build({title: '属性', m_entity: mproperty, is_readonly: true, included_tab: tab_ent}.merge(attr)) do |tab_prop|
309
+ tab_prop.m_fields.build([{title: 'ID', m_property: mproperty.prop_by('id'), is_display: true, is_readonly: true},
310
+ {title: '标题', m_property: mproperty.prop_by('title'), is_display: true, is_readonly: false},
311
+ {title: '打印文本', m_property: mproperty.prop_by('print_text'), is_display: true, is_readonly: false},
312
+ {title: '标识', m_property: mproperty.prop_by('name'), is_display: true, is_readonly: false},
313
+ {title: '外键', m_property: mproperty.prop_by('external_key'), is_display: true, is_readonly: false},
314
+ {title: '数据类型', m_property: mproperty.prop_by('m_datatype_id'), is_display: true, is_readonly: false},
315
+ {title: '实体种类', m_property: mproperty.prop_by('entity_kind'), is_display: true, is_readonly: false},
316
+ {title: '所属实体', m_property: mproperty.prop_by('m_entity_id'), default_logic: "{id:${m_entity_id},title:'${m_entity_title}'}", is_display: true, is_readonly: false},
317
+ {title: '排序', m_property: mproperty.prop_by('seq'), is_display: true, is_readonly: false},
318
+ {title: '是否激活', m_property: mproperty.prop_by('is_active'), is_display: true, is_readonly: false},
319
+ {title: '帮助', m_property: mproperty.prop_by('help'), is_display: true, is_readonly: false},
320
+ {title: '备注', m_property: mproperty.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
321
+ tab_prop.m_columns.build([{title: 'ID', m_property: mproperty.prop_by('id'), width: 35},
322
+ {title: '标题', m_property: mproperty.prop_by('title'), width: 75},
323
+ {title: '打印文本', m_property: mproperty.prop_by('print_text'), width: 75},
324
+ {title: '标识', m_property: mproperty.prop_by('name'), width: 75},
325
+ {title: '外键', m_property: mproperty.prop_by('external_key'), width: 75},
326
+ {title: '数据类型', m_property: mproperty.prop_by('m_datatype_id'), width: 75},
327
+ {title: '实体种类', m_property: mproperty.prop_by('entity_kind'), width: 75},
328
+ {title: '所属实体', m_property: mproperty.prop_by('m_entity_id'), width: 75},
329
+ {title: '排序', m_property: mproperty.prop_by('seq'), width: 75},
330
+ {title: '是否激活', m_property: mproperty.prop_by('is_active'), width: 75},
331
+ {title: '创建组织', m_property: mproperty.prop_by('createdbyorg_id'), width: 75},
332
+ {title: '创建人', m_property: mproperty.prop_by('createdby_id'), width: 75},
333
+ {title: '更新人', m_property: mproperty.prop_by('updatedby_id'), width: 75},
334
+ {title: '备注', m_property: mproperty.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
335
+ end
336
+ end
337
+
338
+ # 菜单 菜单项
339
+ menu_sys = Fastui::MMenu.create({name: 'menu_sys', title: '系统菜单'}.merge(attr))
340
+
341
+ m_menu_item = Fastui::MEntity.create({name: 'Fastui::MMenuItem', title: '菜单项', access_level: 'system'}.merge(attr))
342
+ mmenu.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
343
+ {name: 'title', title: '标题', m_datatype: v_text},
344
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
345
+ {name: 'name', title: '标识', m_datatype: v_text},
346
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
347
+ {name: 'seq', title: '排序', m_datatype: v_number},
348
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
349
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
350
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
351
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
352
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
353
+ m_menu_item.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
354
+ {name: 'title', title: '标题', m_datatype: v_text},
355
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
356
+ {name: 'name', title: '标识', m_datatype: v_text},
357
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
358
+ {name: 'm_menu_id', title: '对应菜单', m_datatype: m_relation_menu},
359
+ {name: 'm_window_id', title: '对应窗口', m_datatype: m_relation_window},
360
+ {name: 'seq', title: '排序', m_datatype: v_number},
361
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
362
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
363
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
364
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
365
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
366
+
367
+ sys_win_menu = Fastui::MWindow.create({title: '菜单', :window_kind => 'maintain'}.merge(attr)) do |w_menu|
368
+ win_menu = w_menu.m_tabs.build({title: '菜单', m_entity: mmenu, is_readonly: true}.merge(attr))
369
+ win_menu.m_fields.build([{title: 'ID', m_property: mmenu.prop_by('id'), is_display: true, is_readonly: true},
370
+ {title: '标题', m_property: mmenu.prop_by('title'), is_display: true, is_readonly: false},
371
+ {title: '打印文本', m_property: mmenu.prop_by('print_text'), is_display: true, is_readonly: false},
372
+ {title: '标识', m_property: mmenu.prop_by('name'), is_display: true, is_readonly: false},
373
+ {title: '实体种类', m_property: mmenu.prop_by('entity_kind'), is_display: true, is_readonly: false},
374
+ {title: '排序', m_property: mmenu.prop_by('seq'), is_display: true, is_readonly: false},
375
+ {title: '是否激活', m_property: mmenu.prop_by('is_active'), is_display: true, is_readonly: false},
376
+ {title: '帮助', m_property: mmenu.prop_by('help'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
377
+ win_menu.m_columns.build([{title: 'ID', m_property: mmenu.prop_by('id'), width: 35},
378
+ {title: '标题', m_property: mmenu.prop_by('title'), width: 75},
379
+ {title: '打印文本', m_property: mmenu.prop_by('print_text'), width: 75},
380
+ {title: '标识', m_property: mmenu.prop_by('name'), width: 75},
381
+ {title: '实体种类', m_property: mmenu.prop_by('entity_kind'), width: 75},
382
+ {title: '排序', m_property: mmenu.prop_by('seq'), width: 75},
383
+ {title: '是否激活', m_property: mmenu.prop_by('is_active'), width: 75},
384
+ {title: '创建组织', m_property: mmenu.prop_by('createdbyorg_id'), width: 75},
385
+ {title: '创建人', m_property: mmenu.prop_by('createdby_id'), width: 75},
386
+ {title: '更新人', m_property: mmenu.prop_by('updatedby_id'), width: 75}].map { |a| a.merge(attr) })
387
+
388
+ w_menu.m_tabs.build({title: '菜单项', m_entity: m_menu_item, is_readonly: true, included_tab: win_menu}.merge(attr)) do |menu_item|
389
+ menu_item.m_fields.build([{title: 'ID', m_property: m_menu_item.prop_by('id'), is_display: true, is_readonly: true},
390
+ {title: '标题', m_property: m_menu_item.prop_by('title'), is_display: true, is_readonly: false},
391
+ {title: '打印文本', m_property: m_menu_item.prop_by('print_text'), is_display: true, is_readonly: false},
392
+ {title: '标识', m_property: m_menu_item.prop_by('name'), is_display: true, is_readonly: false},
393
+ {title: '实体种类', m_property: m_menu_item.prop_by('entity_kind'), is_display: true, is_readonly: false},
394
+ {title: '对应菜单', m_property: m_menu_item.prop_by('m_menu_id'), default_logic: "{id:${m_menu_id},title:'${m_menu_title}'}", is_display: true, is_readonly: false},
395
+ {title: '对应窗口', m_property: m_menu_item.prop_by('m_window_id'), is_display: true, is_readonly: false},
396
+ {title: '排序', m_property: m_menu_item.prop_by('seq'), is_display: true, is_readonly: false},
397
+ {title: '是否激活', m_property: m_menu_item.prop_by('is_active'), is_display: true, is_readonly: false},
398
+ {title: '帮助', m_property: m_menu_item.prop_by('help'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
399
+ menu_item.m_columns.build([{title: 'ID', m_property: m_menu_item.prop_by('id'), width: 35},
400
+ {title: '标题', m_property: m_menu_item.prop_by('title'), width: 75},
401
+ {title: '打印文本', m_property: m_menu_item.prop_by('print_text'), width: 75},
402
+ {title: '标识', m_property: m_menu_item.prop_by('name'), width: 75},
403
+ {title: '实体种类', m_property: m_menu_item.prop_by('entity_kind'), width: 75},
404
+ {title: '对应菜单', m_property: m_menu_item.prop_by('m_menu_id'), width: 75},
405
+ {title: '对应窗口', m_property: m_menu_item.prop_by('m_window_id'), width: 75},
406
+ {title: '排序', m_property: m_menu_item.prop_by('seq'), width: 75},
407
+ {title: '是否激活', m_property: m_menu_item.prop_by('is_active'), width: 75},
408
+ {title: '创建组织', m_property: m_menu_item.prop_by('createdbyorg_id'), width: 75},
409
+ {title: '创建人', m_property: m_menu_item.prop_by('createdby_id'), width: 75},
410
+ {title: '更新人', m_property: m_menu_item.prop_by('updatedby_id'), width: 75}].map { |a| a.merge(attr) })
411
+ end
412
+ end
413
+
414
+ # 数据类型 关联 枚举 枚举项
415
+ m_dt_relation = Fastui::MEntity.create({name: 'Fastui::MRelation', title: '关联', access_level: 'system'}.merge(attr))
416
+ m_dt_relation.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
417
+ {name: 'title', title: '标题', m_datatype: v_text},
418
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
419
+ {name: 'name', title: '标识', m_datatype: v_text},
420
+ {name: 'm_entity_id', title: '所属实体', m_datatype: m_relation_entity},
421
+ #{name: 'm_entity_id', title: '所属实体', m_datatype: multi_relation_entity},
422
+ {name: 'filter', title: '筛选条件', m_datatype: v_textarea},
423
+ {name: 'access_level', title: '访问级别', m_datatype: access_level},
424
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
425
+ {name: 'seq', title: '排序', m_datatype: v_number},
426
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
427
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
428
+ {name: 'note', title: '备注', m_datatype: v_textarea},
429
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
430
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
431
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
432
+
433
+ # 枚举
434
+ m_list = Fastui::MEntity.create({name: 'Fastui::MList', title: '枚举', access_level: 'system'}.merge(attr))
435
+ m_list.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
436
+ {name: 'title', title: '标题', m_datatype: v_text},
437
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
438
+ {name: 'name', title: '标识', m_datatype: v_text},
439
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
440
+ {name: 'seq', title: '排序', m_datatype: v_number},
441
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
442
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
443
+ {name: 'note', title: '备注', m_datatype: v_textarea},
444
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
445
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
446
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
447
+
448
+ # 枚举项
449
+ m_list_item = Fastui::MEntity.create({name: 'Fastui::MListItem', title: '枚举项', access_level: 'system'}.merge(attr))
450
+ m_list_item.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
451
+ {name: 'title', title: '标题', m_datatype: v_text},
452
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
453
+ {name: 'name', title: '标识', m_datatype: v_text},
454
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
455
+ {name: 'seq', title: '排序', m_datatype: v_number},
456
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
457
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
458
+ {name: 'note', title: '备注', m_datatype: v_textarea},
459
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
460
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
461
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
462
+
463
+
464
+ sys_datatype = Fastui::MWindow.create({title: '数据类型', window_kind: 'maintain'}.merge(attr)) do |data_type|
465
+ data_type.m_tabs.build({title: '关联', m_entity: m_dt_relation, is_readonly: true}.merge(attr)) do |rel|
466
+ rel.m_fields.build([{title: 'ID', m_property: m_dt_relation.prop_by('id'), is_display: true, is_readonly: true},
467
+ {title: '标题', m_property: m_dt_relation.prop_by('title'), is_display: true, is_readonly: false},
468
+ {title: '打印文本', m_property: m_dt_relation.prop_by('print_text'), is_display: true, is_readonly: false},
469
+ {title: '标识', m_property: m_dt_relation.prop_by('name'), is_display: true, is_readonly: false},
470
+ {title: '关联实体', m_property: m_dt_relation.prop_by('m_entity_id'), is_display: true, is_readonly: false},
471
+ {title: '筛选条件', m_property: m_dt_relation.prop_by('filter'), is_display: true, is_readonly: false},
472
+ {title: '访问级别', m_property: m_dt_relation.prop_by('access_level'), is_display: true, is_readonly: false},
473
+ {title: '实体种类', m_property: m_dt_relation.prop_by('entity_kind'), is_display: true, is_readonly: false},
474
+ {title: '排序', m_property: m_dt_relation.prop_by('seq'), is_display: true, is_readonly: false},
475
+ {title: '是否激活', m_property: m_dt_relation.prop_by('is_active'), is_display: true, is_readonly: false},
476
+ {title: '帮助', m_property: m_dt_relation.prop_by('help'), is_display: true, is_readonly: false},
477
+ {title: '备注', m_property: m_dt_relation.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
478
+ rel.m_columns.build([{title: 'ID', m_property: m_dt_relation.prop_by('id'), width: 35},
479
+ {title: '标题', m_property: m_dt_relation.prop_by('title'), width: 75},
480
+ {title: '打印文本', m_property: m_dt_relation.prop_by('print_text'), width: 75},
481
+ {title: '标识', m_property: m_dt_relation.prop_by('name'), width: 75},
482
+ {title: '关联实体', m_property: m_dt_relation.prop_by('m_entity_id'), width: 75},
483
+ {title: '筛选条件', m_property: m_dt_relation.prop_by('filter'), width: 75},
484
+ {title: '访问级别', m_property: m_dt_relation.prop_by('access_level'), width: 75},
485
+ {title: '实体种类', m_property: m_dt_relation.prop_by('entity_kind'), width: 75},
486
+ {title: '排序', m_property: m_dt_relation.prop_by('seq'), width: 75},
487
+ {title: '是否激活', m_property: m_dt_relation.prop_by('is_active'), width: 75},
488
+ {title: '创建组织', m_property: m_dt_relation.prop_by('createdbyorg_id'), width: 75},
489
+ {title: '创建人', m_property: m_dt_relation.prop_by('createdby_id'), width: 75},
490
+ {title: '更新人', m_property: m_dt_relation.prop_by('updatedby_id'), width: 75},
491
+ {title: '备注', m_property: m_dt_relation.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
492
+ end
493
+ w_list = data_type.m_tabs.build({title: '枚举', m_entity: m_list, is_readonly: true}.merge(attr))
494
+ w_list.m_fields.build([{title: 'ID', m_property: m_list.prop_by('id'), is_display: true, is_readonly: true},
495
+ {title: '标题', m_property: m_list.prop_by('title'), is_display: true, is_readonly: false},
496
+ {title: '打印文本', m_property: m_list.prop_by('print_text'), is_display: true, is_readonly: false},
497
+ {title: '标识', m_property: m_list.prop_by('name'), is_display: true, is_readonly: false},
498
+ {title: '实体种类', m_property: m_list.prop_by('entity_kind'), is_display: true, is_readonly: false},
499
+ {title: '排序', m_property: m_list.prop_by('seq'), is_display: true, is_readonly: false},
500
+ {title: '是否激活', m_property: m_list.prop_by('is_active'), is_display: true, is_readonly: false},
501
+ {title: '帮助', m_property: m_list.prop_by('help'), is_display: true, is_readonly: false},
502
+ {title: '备注', m_property: m_list.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
503
+ w_list.m_columns.build([{title: 'ID', m_property: m_list.prop_by('id'), width: 35},
504
+ {title: '标题', m_property: m_list.prop_by('title'), width: 75},
505
+ {title: '打印文本', m_property: m_list.prop_by('print_text'), width: 75},
506
+ {title: '标识', m_property: m_list.prop_by('name'), width: 75},
507
+ {title: '实体种类', m_property: m_list.prop_by('entity_kind'), width: 75},
508
+ {title: '排序', m_property: m_list.prop_by('seq'), width: 75},
509
+ {title: '是否激活', m_property: m_list.prop_by('is_active'), width: 75},
510
+ {title: '创建组织', m_property: m_list.prop_by('createdbyorg_id'), width: 75},
511
+ {title: '创建人', m_property: m_list.prop_by('createdby_id'), width: 75},
512
+ {title: '更新人', m_property: m_list.prop_by('updatedby_id'), width: 75},
513
+ {title: '备注', m_property: m_list.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
514
+
515
+ data_type.m_tabs.build({title: '枚举项', m_entity: m_list_item, is_readonly: true, included_tab: w_list}.merge(attr)) do |w_list_item|
516
+ w_list_item.m_fields.build([{title: 'ID', m_property: m_list_item.prop_by('id'), is_display: true, is_readonly: true},
517
+ {title: '标题', m_property: m_list_item.prop_by('title'), is_display: true, is_readonly: false},
518
+ {title: '打印文本', m_property: m_list_item.prop_by('print_text'), is_display: true, is_readonly: false},
519
+ {title: '标识', m_property: m_list_item.prop_by('name'), is_display: true, is_readonly: false},
520
+ {title: '实体种类', m_property: m_list_item.prop_by('entity_kind'), is_display: true, is_readonly: false},
521
+ {title: '排序', m_property: m_list_item.prop_by('seq'), is_display: true, is_readonly: false},
522
+ {title: '是否激活', m_property: m_list_item.prop_by('is_active'), is_display: true, is_readonly: false},
523
+ {title: '帮助', m_property: m_list_item.prop_by('help'), is_display: true, is_readonly: false},
524
+ {title: '备注', m_property: m_list_item.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
525
+ w_list_item.m_columns.build([{title: 'ID', m_property: m_list_item.prop_by('id'), width: 35},
526
+ {title: '标题', m_property: m_list_item.prop_by('title'), width: 75},
527
+ {title: '打印文本', m_property: m_list_item.prop_by('print_text'), width: 75},
528
+ {title: '标识', m_property: m_list_item.prop_by('name'), width: 75},
529
+ {title: '实体种类', m_property: m_list_item.prop_by('entity_kind'), width: 75},
530
+ {title: '排序', m_property: m_list_item.prop_by('seq'), width: 75},
531
+ {title: '是否激活', m_property: m_list_item.prop_by('is_active'), width: 75},
532
+ {title: '创建组织', m_property: m_list_item.prop_by('createdbyorg_id'), width: 75},
533
+ {title: '创建人', m_property: m_list_item.prop_by('createdby_id'), width: 75},
534
+ {title: '更新人', m_property: m_list_item.prop_by('updatedby_id'), width: 75},
535
+ {title: '备注', m_property: m_list_item.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
536
+ end
537
+
538
+ end
539
+
540
+
541
+ # 权限 人员 角色 测试activerecord many-to-many relations
542
+ m_rights_person = Fastui::MEntity.create({name: 'Fastui::MPerson', title: '人员', access_level: 'system'}.merge(attr))
543
+ m_rights_person.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
544
+ {name: 'title', title: '标题', m_datatype: v_text},
545
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
546
+ {name: 'name', title: '标识', m_datatype: v_text},
547
+ {name: 'access_level', title: '访问级别', m_datatype: access_level},
548
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
549
+ {name: 'seq', title: '排序', m_datatype: v_number},
550
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
551
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
552
+ {name: 'note', title: '备注', m_datatype: v_textarea},
553
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
554
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
555
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
556
+
557
+ # 角色
558
+ m_rights_role = Fastui::MEntity.create({name: 'Fastui::MRole', title: '角色', access_level: 'system'}.merge(attr))
559
+ m_rights_role.m_properties.create([{name: 'id', title: 'ID', m_datatype: v_number},
560
+ {name: 'title', title: '标题', m_datatype: v_text},
561
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
562
+ {name: 'name', title: '标识', m_datatype: v_text},
563
+ {name: 'person_id', title: '对应人员', m_datatype: multi_relation_person},
564
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
565
+ {name: 'seq', title: '排序', m_datatype: v_number},
566
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
567
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
568
+ {name: 'note', title: '备注', m_datatype: v_textarea},
569
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
570
+ {name: 'createdby_id', title: '创建人', m_datatype: m_relation_person},
571
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}].map { |a| a.merge(attr) })
572
+
573
+
574
+ sys_rights = Fastui::MWindow.create({title: '权限', window_kind: 'maintain'}.merge(attr)) do |rights|
575
+ rights.m_tabs.build({title: '人员', m_entity: m_rights_person, is_readonly: true}.merge(attr)) do |r_person|
576
+ r_person.m_fields.build([{title: 'ID', m_property: m_rights_person.prop_by('id'), is_display: true, is_readonly: true},
577
+ {title: '标题', m_property: m_rights_person.prop_by('title'), is_display: true, is_readonly: false},
578
+ {title: '打印文本', m_property: m_rights_person.prop_by('print_text'), is_display: true, is_readonly: false},
579
+ {title: '标识', m_property: m_rights_person.prop_by('name'), is_display: true, is_readonly: false},
580
+ {title: '访问级别', m_property: m_rights_person.prop_by('access_level'), is_display: true, is_readonly: false},
581
+ {title: '实体种类', m_property: m_rights_person.prop_by('entity_kind'), is_display: true, is_readonly: false},
582
+ {title: '排序', m_property: m_rights_person.prop_by('seq'), is_display: true, is_readonly: false},
583
+ {title: '是否激活', m_property: m_rights_person.prop_by('is_active'), is_display: true, is_readonly: false},
584
+ {title: '帮助', m_property: m_rights_person.prop_by('help'), is_display: true, is_readonly: false},
585
+ {title: '备注', m_property: m_rights_person.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
586
+ r_person.m_columns.build([{title: 'ID', m_property: m_rights_person.prop_by('id'), width: 35},
587
+ {title: '标题', m_property: m_rights_person.prop_by('title'), width: 75},
588
+ {title: '打印文本', m_property: m_rights_person.prop_by('print_text'), width: 75},
589
+ {title: '标识', m_property: m_rights_person.prop_by('name'), width: 75},
590
+ {title: '访问级别', m_property: m_rights_person.prop_by('access_level'), width: 75},
591
+ {title: '实体种类', m_property: m_rights_person.prop_by('entity_kind'), width: 75},
592
+ {title: '排序', m_property: m_rights_person.prop_by('seq'), width: 75},
593
+ {title: '是否激活', m_property: m_rights_person.prop_by('is_active'), width: 75},
594
+ {title: '创建组织', m_property: m_rights_person.prop_by('createdbyorg_id'), width: 75},
595
+ {title: '创建人', m_property: m_rights_person.prop_by('createdby_id'), width: 75},
596
+ {title: '更新人', m_property: m_rights_person.prop_by('updatedby_id'), width: 75},
597
+ {title: '备注', m_property: m_rights_person.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
598
+ end
599
+ r_role= rights.m_tabs.build({title: '角色', m_entity: m_rights_role, is_readonly: true}.merge(attr))
600
+ r_role.m_fields.build([{title: 'ID', m_property: m_rights_role.prop_by('id'), is_display: true, is_readonly: true},
601
+ {title: '标题', m_property: m_rights_role.prop_by('title'), is_display: true, is_readonly: false},
602
+ {title: '打印文本', m_property: m_rights_role.prop_by('print_text'), is_display: true, is_readonly: false},
603
+ {title: '标识', m_property: m_rights_role.prop_by('name'), is_display: true, is_readonly: false},
604
+ {title: '对应人员', m_property: m_rights_role.prop_by('person_id'), is_display: true, is_readonly: false},
605
+ {title: '实体种类', m_property: m_rights_role.prop_by('entity_kind'), is_display: true, is_readonly: false},
606
+ {title: '排序', m_property: m_rights_role.prop_by('seq'), is_display: true, is_readonly: false},
607
+ {title: '是否激活', m_property: m_rights_role.prop_by('is_active'), is_display: true, is_readonly: false},
608
+ {title: '帮助', m_property: m_rights_role.prop_by('help'), is_display: true, is_readonly: false},
609
+ {title: '备注', m_property: m_rights_role.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
610
+ r_role.m_columns.build([{title: 'ID', m_property: m_rights_role.prop_by('id'), width: 35},
611
+ {title: '标题', m_property: m_rights_role.prop_by('title'), width: 75},
612
+ {title: '打印文本', m_property: m_rights_role.prop_by('print_text'), width: 75},
613
+ {title: '标识', m_property: m_rights_role.prop_by('name'), width: 75},
614
+ {title: '对应人员', m_property: m_rights_role.prop_by('person_id'), width: 75},
615
+ {title: '实体种类', m_property: m_rights_role.prop_by('entity_kind'), width: 75},
616
+ {title: '排序', m_property: m_rights_role.prop_by('seq'), width: 75},
617
+ {title: '是否激活', m_property: m_rights_role.prop_by('is_active'), width: 75},
618
+ {title: '创建组织', m_property: m_rights_role.prop_by('createdbyorg_id'), width: 75},
619
+ {title: '创建人', m_property: m_rights_role.prop_by('createdby_id'), width: 75},
620
+ {title: '更新人', m_property: m_rights_role.prop_by('updatedby_id'), width: 75},
621
+ {title: '备注', m_property: m_rights_role.prop_by('note'), width: 75}].map { |a| a.merge(attr) })
622
+
623
+
624
+ end
625
+
626
+ sys_org = Fastui::MWindow.create({title: '组织', window_kind: 'maintain'})
627
+
628
+ m_org.m_properties.build([{name: 'id', title: 'ID', m_datatype: v_number},
629
+ {name: 'title', title: '组织', m_datatype: v_tree},
630
+ {name: 'print_text', title: '打印文本', m_datatype: v_text},
631
+ {name: 'name', title: '组织编码', m_datatype: v_text},
632
+ #{name: 'type', title: '组织类型', m_datatype: subject_type},
633
+ {name: 'parent_id', title: '父组织', m_datatype: m_relation_org},
634
+ {name: 'entity_kind', title: '实体种类', m_datatype: entity_kind},
635
+ {name: 'seq', title: '排序', m_datatype: v_number},
636
+ {name: 'is_active', title: '是否激活', m_datatype: v_yesorno},
637
+ {name: 'help', title: '帮助', m_datatype: v_textarea},
638
+ {name: 'note', title: '备注', m_datatype: v_textarea},
639
+ {name: 'createdbyorg_id', title: '创建组织', m_datatype: m_relation_org},
640
+ {name: 'updatedby_id', title: '更新人', m_datatype: m_relation_person}
641
+ ])
642
+ tab_org = sys_org.m_tabs.create({title: '组织', m_entity: m_org, is_readonly: true, grid_kind:'treegrid'}.merge(attr)) do |org|
643
+ org.m_fields.build([{title: 'ID', m_property: m_org.prop_by('id'), is_display: true, is_readonly: true},
644
+ {title: '组织名', m_property: m_org.prop_by('title'), is_display: true, is_readonly: false},
645
+ {title: '打印文本', m_property: m_org.prop_by('print_text'), is_display: true, is_readonly: false},
646
+ {title: '组织编码', m_property: m_org.prop_by('name'), is_display: true, is_readonly: false},
647
+ #{title: '学科类型', m_property: m_org.prop_by('subject_type'), is_display: true, is_readonly: false},
648
+ {title: '父组织', m_property: m_org.prop_by('parent_id'), is_display: true, is_readonly: false},
649
+ {title: '实体种类', m_property: m_org.prop_by('entity_kind'), is_display: true, is_readonly: false},
650
+ {title: '排序', m_property: m_org.prop_by('seq'), is_display: true, is_readonly: false},
651
+ {title: '是否激活', m_property: m_org.prop_by('is_active'), is_display: true, is_readonly: false},
652
+ {title: '帮助', m_property: m_org.prop_by('help'), is_display: true, is_readonly: false},
653
+ {title: '备注', m_property: m_org.prop_by('note'), is_display: true, is_readonly: false}].map { |a| a.merge(attr) })
654
+ org.m_columns.build([{title: 'ID', m_property: m_org.prop_by('id'), width: 35},
655
+ {title: '组织名', m_property: m_org.prop_by('title'), width: 75},
656
+ {title: '打印文本', m_property: m_org.prop_by('print_text'), width: 75},
657
+ {title: '组织编码', m_property: m_org.prop_by('name'), width: 75},
658
+ #{title: '学科类型', m_property: m_org.prop_by('subject_type'), width: 75},
659
+ {title: '父组织', m_property: m_org.prop_by('parent_id'), width: 75},
660
+ {title: '实体种类', m_property: m_org.prop_by('entity_kind'), width: 75},
661
+ {title: '排序', m_property: m_org.prop_by('seq'), width: 75},
662
+ {title: '是否激活', m_property: m_org.prop_by('is_active'), width: 75},
663
+ {title: '创建组织', m_property: m_org.prop_by('createdbyorg_id'), width: 75},
664
+ {title: '创建人', m_property: m_org.prop_by('updatedby_id'), width: 75},
665
+ {title: '更新人', m_property: m_org.prop_by('updatedby_id'), width: 75},
666
+ {title: '备注', m_property: m_org.prop_by('note'), width: 75}
667
+ ].map { |a| a.merge(attr) })
668
+ end
669
+
670
+ sys_scale = Fastui::MWindow.create({title: '评定表', :window_kind => 'maintain'}.merge(attr))
671
+ m_comment.m_properties.build([
672
+ {name: 'title', title: '名称', m_datatype: v_tree},
673
+ {name: 'note', title: '描述', m_datatype: v_textarea},
674
+ {name: 'guide', title: '指导', m_datatype: v_text},
675
+ {name: 'total', title: '总分', m_datatype: v_number},
676
+ {name: 'memo', title: '备注', m_datatype: v_textarea}
677
+ ])
678
+ tab_comment = sys_scale.m_tabs.create({title: '评论', m_entity: m_comment, form_kind: 'VComment', is_readonly: true}.merge(attr)) do |com|
679
+ com.m_fields.build([{title: '名称', m_property: m_comment.prop_by('title'), is_display: true, is_readonly: false},
680
+ {title: '描述', m_property: m_comment.prop_by('note'), is_display: true, is_readonly: false},
681
+ {title: '指导', m_property: m_comment.prop_by('guide'), is_display: true, is_readonly: false},
682
+ {title: '总分', m_property: m_comment.prop_by('total'), is_display: true, is_readonly: false},
683
+ {title: '备注', m_property: m_comment.prop_by('memo'), is_display: true, is_readonly: false}
684
+ ].map { |a| a.merge(attr) })
685
+ com.m_columns.build([{title: '名称', m_property: m_comment.prop_by('title'), width: 35},
686
+ {title: '描述', m_property: m_comment.prop_by('note'), width: 75},
687
+ {title: '指导', m_property: m_comment.prop_by('guide'), width: 75},
688
+ {title: '总分', m_property: m_comment.prop_by('total'), width: 75},
689
+ {title: '备注', m_property: m_comment.prop_by('memo'), width: 75}
690
+ ].map { |a| a.merge(attr) })
691
+ end
692
+
693
+ menu_sys_settings = Fastui::MMenuItem.create({name: 'sys_tools', title: '系统设置', m_menu_id: menu_sys.id, m_window_id: 0}.merge(attr))
694
+ menu_sys_settings_sys_datatype = menu_sys_settings.children.create({name: 'sys_datatype', title: '数据类型', m_window_id: sys_datatype.id, m_menu_id: menu_sys.id}.merge(attr))
695
+ menu_sys_settings_win_entity = menu_sys_settings.children.create({name: 'win_entity', title: '实体', m_window_id: win_entity.id, m_menu_id: menu_sys.id}.merge(attr))
696
+ menu_sys_settings_fastui = menu_sys_settings.children.create({name: 'sys_fastui', title: 'FastUI', m_window_id: win.id, m_menu_id: menu_sys.id}.merge(attr))
697
+ menu_sys_settings_win_menu = menu_sys_settings.children.create({name: 'win_menu', title: '菜单', m_window_id: sys_win_menu.id, m_menu_id: menu_sys.id}.merge(attr))
698
+
699
+ # 权限
700
+ menu_sys_settings_rights = menu_sys_settings.children.create({name: 'rights', title: '权限', m_window_id: sys_rights.id, m_menu_id: menu_sys.id}.merge(attr))
701
+ # 组织
702
+ org_settings = menu_sys_settings.children.create({name: 'org', title: '组织', m_window_id: sys_org.id, m_menu_id: menu_sys.id}.merge(attr))
703
+
704
+
705
+ scale_settings = menu_sys_settings.children.create({name: 'win_scale', title: '评定表', m_window_id: sys_scale.id, m_menu_id: menu_sys.id}.merge(attr))
706
+ end
707
+ end