amis-editor 4.2.0-beta.2 → 5.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. package/dist/6dbcbb49b6fd405190a9.png +0 -0
  2. package/dist/component/Control/APIControl.d.ts +1101 -447
  3. package/dist/component/Control/ActionAPIControl.d.ts +1158 -0
  4. package/dist/component/Control/BadgeControl.d.ts +133 -0
  5. package/dist/component/Control/BaseControl.d.ts +248 -0
  6. package/dist/component/Control/DataBindingControl.d.ts +14 -0
  7. package/dist/component/Control/DataPickerControl.d.ts +13 -0
  8. package/dist/component/Control/DateShortCutControl.d.ts +83 -0
  9. package/dist/component/Control/FormulaControl.d.ts +51 -0
  10. package/dist/component/Control/OptionControl.d.ts +23 -34
  11. package/dist/component/Control/StatusControl.d.ts +39 -0
  12. package/dist/component/Control/SwitchMoreControl.d.ts +224 -0
  13. package/dist/component/Control/ValidationControl.d.ts +50 -15
  14. package/dist/component/Control/ValidationItem.d.ts +46 -0
  15. package/dist/component/Control/style-control/Background.d.ts +17 -0
  16. package/dist/component/Control/style-control/Border.d.ts +18 -0
  17. package/dist/component/Control/style-control/BoxModel.d.ts +17 -0
  18. package/dist/component/Control/style-control/BoxShadow.d.ts +18 -0
  19. package/dist/component/Control/style-control/Display.d.ts +14 -0
  20. package/dist/component/Control/style-control/Font.d.ts +16 -0
  21. package/dist/component/Control/style-control/font-family.d.ts +11 -0
  22. package/dist/component/Control/style-control/transformation.d.ts +29 -0
  23. package/dist/component/Control/style-control/types.d.ts +8 -0
  24. package/dist/component/Editor.d.ts +16 -0
  25. package/dist/component/RegionWrapper.d.ts +10 -0
  26. package/dist/component/VRenderer.d.ts +10 -0
  27. package/dist/component/schemaTpl.d.ts +8 -0
  28. package/dist/component/validator.d.ts +62 -0
  29. package/dist/dnd/index.d.ts +1 -1
  30. package/dist/event-action/action-config-panel.d.ts +8 -0
  31. package/dist/event-action/actions.d.ts +3 -0
  32. package/dist/event-action/comp-action-select.d.ts +11 -0
  33. package/dist/event-action/config.d.ts +13 -0
  34. package/dist/event-action/index.d.ts +459 -0
  35. package/dist/event-action/schema.d.ts +32 -0
  36. package/dist/exports.min.js +1 -1
  37. package/dist/index.d.ts +23 -5
  38. package/dist/index.min.js +1 -1
  39. package/dist/manager.d.ts +46 -1
  40. package/dist/plugin/Alert.d.ts +4 -2
  41. package/dist/plugin/Button.d.ts +5 -1
  42. package/dist/plugin/ButtonGroup.d.ts +13 -34
  43. package/dist/plugin/ButtonToolbar.d.ts +4 -10
  44. package/dist/plugin/CRUD.d.ts +2 -0
  45. package/dist/plugin/Chart.d.ts +2 -0
  46. package/dist/plugin/Collapse.d.ts +1 -0
  47. package/dist/plugin/CollapseGroup.d.ts +28 -4
  48. package/dist/plugin/Container.d.ts +2 -1
  49. package/dist/plugin/Dialog.d.ts +12 -2
  50. package/dist/plugin/Drawer.d.ts +12 -2
  51. package/dist/plugin/DropDownButton.d.ts +11 -11
  52. package/dist/plugin/Form/ButtonGroupSelect.d.ts +7 -2
  53. package/dist/plugin/Form/ButtonToolbar.d.ts +8 -7
  54. package/dist/plugin/Form/ChainedSelect.d.ts +3 -0
  55. package/dist/plugin/Form/Checkbox.d.ts +7 -2
  56. package/dist/plugin/Form/Checkboxes.d.ts +8 -2
  57. package/dist/plugin/Form/CodeEditor.d.ts +7 -22
  58. package/dist/plugin/Form/Combo.d.ts +3 -0
  59. package/dist/plugin/Form/Control.d.ts +6 -2
  60. package/dist/plugin/Form/DiffEditor.d.ts +7 -1
  61. package/dist/plugin/Form/Form.d.ts +6 -0
  62. package/dist/plugin/Form/Formula.d.ts +1 -25
  63. package/dist/plugin/Form/InputDate.d.ts +8 -2
  64. package/dist/plugin/Form/InputDateRange.d.ts +8 -2
  65. package/dist/plugin/Form/InputDateTime.d.ts +4 -4
  66. package/dist/plugin/Form/InputDateTimeRange.d.ts +4 -4
  67. package/dist/plugin/Form/InputEmail.d.ts +1 -0
  68. package/dist/plugin/Form/InputExcel.d.ts +6 -41
  69. package/dist/plugin/Form/InputFile.d.ts +7 -3
  70. package/dist/plugin/Form/InputKV.d.ts +6 -0
  71. package/dist/plugin/Form/InputMonth.d.ts +1 -0
  72. package/dist/plugin/Form/InputMonthRange.d.ts +4 -4
  73. package/dist/plugin/Form/InputPassword.d.ts +1 -0
  74. package/dist/plugin/Form/InputQuarter.d.ts +1 -0
  75. package/dist/plugin/Form/InputQuarterRange.d.ts +4 -4
  76. package/dist/plugin/Form/InputRange.d.ts +3 -0
  77. package/dist/plugin/Form/InputRating.d.ts +9 -3
  78. package/dist/plugin/Form/InputText.d.ts +24 -2
  79. package/dist/plugin/Form/InputTime.d.ts +3 -3
  80. package/dist/plugin/Form/InputTimeRange.d.ts +20 -0
  81. package/dist/plugin/Form/InputTree.d.ts +6 -2
  82. package/dist/plugin/Form/InputURL.d.ts +1 -0
  83. package/dist/plugin/Form/InputYear.d.ts +1 -0
  84. package/dist/plugin/Form/InputYearRange.d.ts +20 -0
  85. package/dist/plugin/Form/ListSelect.d.ts +6 -2
  86. package/dist/plugin/Form/LocationPicker.d.ts +1 -31
  87. package/dist/plugin/Form/NestedSelect.d.ts +5 -2
  88. package/dist/plugin/Form/Radios.d.ts +7 -2
  89. package/dist/plugin/Form/Select.d.ts +7 -2
  90. package/dist/plugin/Form/Switch.d.ts +7 -2
  91. package/dist/plugin/Form/TabsTransfer.d.ts +5 -2
  92. package/dist/plugin/Form/Textarea.d.ts +7 -1
  93. package/dist/plugin/Form/Transfer.d.ts +5 -2
  94. package/dist/plugin/Form/TreeSelect.d.ts +6 -2
  95. package/dist/plugin/IFrame.d.ts +2 -2
  96. package/dist/plugin/Nav.d.ts +1 -116
  97. package/dist/plugin/Others/Action.d.ts +5 -1
  98. package/dist/plugin/Page.d.ts +5 -2
  99. package/dist/plugin/Progress.d.ts +5 -1
  100. package/dist/plugin/Table.d.ts +2 -0
  101. package/dist/plugin/Tabs.d.ts +33 -2
  102. package/dist/plugin/TooltipWrapper.d.ts +10 -0
  103. package/dist/plugin/Tpl.d.ts +2 -1
  104. package/dist/plugin/Wizard.d.ts +4 -1
  105. package/dist/plugin.d.ts +37 -1
  106. package/dist/store/editor.d.ts +65 -38
  107. package/dist/store/node.d.ts +16 -0
  108. package/dist/style.css +1 -1
  109. package/dist/util.d.ts +36 -3
  110. package/package.json +14 -8
  111. package/src/component/schemaTpl.tsx +1198 -474
  112. package/src/plugin/.DS_Store +0 -0
  113. package/src/plugin/Alert.tsx +69 -48
  114. package/src/plugin/AnchorNav.tsx +1 -0
  115. package/src/plugin/Audio.tsx +9 -15
  116. package/src/plugin/Avatar.tsx +2 -1
  117. package/src/plugin/Breadcrumb.tsx +2 -1
  118. package/src/plugin/Button.tsx +257 -188
  119. package/src/plugin/ButtonGroup.tsx +99 -38
  120. package/src/plugin/ButtonToolbar.tsx +7 -13
  121. package/src/plugin/CRUD.tsx +77 -135
  122. package/src/plugin/Card.tsx +1 -0
  123. package/src/plugin/Cards.tsx +8 -14
  124. package/src/plugin/Carousel.tsx +1 -1
  125. package/src/plugin/Chart.tsx +26 -14
  126. package/src/plugin/Collapse.tsx +78 -78
  127. package/src/plugin/CollapseGroup.tsx +165 -83
  128. package/src/plugin/Container.tsx +59 -6
  129. package/src/plugin/Custom.tsx +2 -8
  130. package/src/plugin/CustomRegion.tsx +4 -3
  131. package/src/plugin/Dialog.tsx +55 -24
  132. package/src/plugin/Drawer.tsx +65 -35
  133. package/src/plugin/DropDownButton.tsx +95 -79
  134. package/src/plugin/Flex.tsx +123 -65
  135. package/src/plugin/Form/ButtonGroupSelect.tsx +114 -26
  136. package/src/plugin/Form/ButtonToolbar.tsx +62 -55
  137. package/src/plugin/Form/ChainedSelect.tsx +45 -0
  138. package/src/plugin/Form/Checkbox.tsx +122 -33
  139. package/src/plugin/Form/Checkboxes.tsx +154 -87
  140. package/src/plugin/Form/CodeEditor.tsx +163 -34
  141. package/src/plugin/Form/Combo.tsx +104 -65
  142. package/src/plugin/Form/Control.tsx +16 -70
  143. package/src/plugin/Form/DiffEditor.tsx +158 -54
  144. package/src/plugin/Form/FieldSet.tsx +6 -11
  145. package/src/plugin/Form/Form.tsx +277 -70
  146. package/src/plugin/Form/Formula.tsx +8 -14
  147. package/src/plugin/Form/InputArray.tsx +7 -16
  148. package/src/plugin/Form/InputCity.tsx +1 -1
  149. package/src/plugin/Form/InputDate.tsx +344 -121
  150. package/src/plugin/Form/InputDateRange.tsx +303 -161
  151. package/src/plugin/Form/InputDateTime.tsx +6 -150
  152. package/src/plugin/Form/InputDateTimeRange.tsx +7 -187
  153. package/src/plugin/Form/InputEmail.tsx +1 -0
  154. package/src/plugin/Form/InputExcel.tsx +70 -27
  155. package/src/plugin/Form/InputFile.tsx +326 -152
  156. package/src/plugin/Form/InputImage.tsx +1 -1
  157. package/src/plugin/Form/InputKV.tsx +61 -0
  158. package/src/plugin/Form/InputMonth.tsx +3 -1
  159. package/src/plugin/Form/InputMonthRange.tsx +6 -160
  160. package/src/plugin/Form/InputNumber.tsx +1 -1
  161. package/src/plugin/Form/InputPassword.tsx +2 -0
  162. package/src/plugin/Form/InputQuarter.tsx +3 -1
  163. package/src/plugin/Form/InputQuarterRange.tsx +6 -160
  164. package/src/plugin/Form/InputRange.tsx +74 -4
  165. package/src/plugin/Form/InputRating.tsx +347 -35
  166. package/src/plugin/Form/InputRichText.tsx +2 -3
  167. package/src/plugin/Form/InputTable.tsx +33 -49
  168. package/src/plugin/Form/InputTag.tsx +1 -1
  169. package/src/plugin/Form/InputText.tsx +310 -132
  170. package/src/plugin/Form/InputTime.tsx +4 -53
  171. package/src/plugin/Form/InputTimeRange.tsx +41 -0
  172. package/src/plugin/Form/InputTree.tsx +196 -46
  173. package/src/plugin/Form/InputURL.tsx +2 -0
  174. package/src/plugin/Form/InputYear.tsx +2 -0
  175. package/src/plugin/Form/InputYearRange.tsx +41 -0
  176. package/src/plugin/Form/Item.tsx +17 -18
  177. package/src/plugin/Form/ListSelect.tsx +75 -20
  178. package/src/plugin/Form/LocationPicker.tsx +2 -7
  179. package/src/plugin/Form/MatrixCheckboxes.tsx +1 -1
  180. package/src/plugin/Form/NestedSelect.tsx +110 -43
  181. package/src/plugin/Form/Picker.tsx +2 -5
  182. package/src/plugin/Form/Radios.tsx +122 -52
  183. package/src/plugin/Form/Select.tsx +239 -168
  184. package/src/plugin/Form/Static.tsx +1 -1
  185. package/src/plugin/Form/Switch.tsx +170 -58
  186. package/src/plugin/Form/TabsTransfer.tsx +175 -79
  187. package/src/plugin/Form/Textarea.tsx +146 -36
  188. package/src/plugin/Form/Transfer.tsx +295 -233
  189. package/src/plugin/Form/TreeSelect.tsx +287 -146
  190. package/src/plugin/Grid.tsx +340 -312
  191. package/src/plugin/HBox.tsx +1 -0
  192. package/src/plugin/IFrame.tsx +21 -12
  193. package/src/plugin/Image.tsx +7 -12
  194. package/src/plugin/Images.tsx +7 -12
  195. package/src/plugin/Link.tsx +6 -12
  196. package/src/plugin/List.tsx +6 -10
  197. package/src/plugin/ListItem.tsx +1 -0
  198. package/src/plugin/Nav.tsx +7 -9
  199. package/src/plugin/Others/Action.tsx +16 -10
  200. package/src/plugin/Others/BasicToolbar.tsx +4 -1
  201. package/src/plugin/Others/TableCell.tsx +19 -39
  202. package/src/plugin/Page.tsx +315 -229
  203. package/src/plugin/Panel.tsx +6 -7
  204. package/src/plugin/Plain.tsx +3 -6
  205. package/src/plugin/Progress.tsx +234 -94
  206. package/src/plugin/Service.tsx +10 -6
  207. package/src/plugin/Table.tsx +49 -20
  208. package/src/plugin/TableView.tsx +212 -106
  209. package/src/plugin/Tabs.tsx +306 -146
  210. package/src/plugin/TooltipWrapper.tsx +231 -135
  211. package/src/plugin/Tpl.tsx +68 -52
  212. package/src/plugin/Video.tsx +9 -20
  213. package/src/plugin/Wizard.tsx +537 -336
  214. package/src/plugin/Wrapper.tsx +82 -61
  215. package/src/plugin.ts +66 -4
  216. package/static/empty.png +0 -0
@@ -49,79 +49,137 @@ export class FlexPlugin extends BasePlugin {
49
49
  panelBody = [
50
50
  getSchemaTpl('tabs', [
51
51
  {
52
- title: '常规',
52
+ title: '属性',
53
+ className: 'p-none',
53
54
  body: [
54
- {
55
- name: 'items',
56
- label: '内容集合',
57
- type: 'combo',
58
- scaffold: {
59
- type: 'wrapper',
60
- body: '子节点内容'
55
+ getSchemaTpl('collapseGroup', [
56
+ {
57
+ title: '布局',
58
+ body: [
59
+ {
60
+ name: 'justify',
61
+ type: 'select',
62
+ value: 'center',
63
+ label: '子节点水平分布方式',
64
+ menuTpl:
65
+ "<div class='flex justify-between'><span>${label}</span><span class='text-muted text-sm'>${value}</span></div>",
66
+ options: [
67
+ {
68
+ label: '起始端对齐',
69
+ value: 'flex-start'
70
+ },
71
+ {
72
+ label: '居中对齐',
73
+ value: 'center'
74
+ },
75
+ {
76
+ label: '末尾端对齐',
77
+ value: 'flex-end'
78
+ },
79
+ {
80
+ label: '均匀分布(首尾留空)',
81
+ value: 'space-around'
82
+ },
83
+ {
84
+ label: '均匀分布(首尾对齐)',
85
+ value: 'space-between'
86
+ },
87
+ {
88
+ label: '均匀分布(元素等间距)',
89
+ value: 'space-evenly'
90
+ },
91
+ {
92
+ label: '均匀分布(自动拉伸)',
93
+ value: 'stretch'
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ name: 'alignItems',
99
+ type: 'select',
100
+ value: 'center',
101
+ label: '子节点垂直方向位置',
102
+ menuTpl:
103
+ "<div class='flex justify-between'><span>${label}</span><span class='text-muted text-sm'>${value}</span></div>",
104
+ options: [
105
+ {
106
+ label: '起始端对齐',
107
+ value: 'flex-start'
108
+ },
109
+ {
110
+ label: '居中对齐',
111
+ value: 'center'
112
+ },
113
+ {
114
+ label: '末尾端对齐',
115
+ value: 'flex-end'
116
+ },
117
+ {
118
+ label: '基线对齐',
119
+ value: 'baseline'
120
+ },
121
+ {
122
+ label: '自动拉伸',
123
+ value: 'stretch'
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ name: 'direction',
129
+ type: 'button-group-select',
130
+ size: 'sm',
131
+ label: '布局方向',
132
+ value: 'row',
133
+ mode: 'row',
134
+ options: [
135
+ {label: '水平', value: 'row'},
136
+ {label: '垂直', value: 'column'}
137
+ ]
138
+ }
139
+ ]
61
140
  },
62
- minLength: 2,
63
- multiple: true,
64
- // draggable: true,
65
- draggableTip: '',
66
- items: [
67
- {
68
- type: 'tpl',
69
- tpl:
70
- '<span class="label label-default">子节点${index | plus}</span>'
71
- }
72
- ]
73
- },
74
- {
75
- name: 'justify',
76
- type: 'select',
77
- value: 'center',
78
- label: '子节点水平分布方式',
79
- options: [
80
- 'start',
81
- 'flex-start',
82
- 'center',
83
- 'end',
84
- 'flex-end',
85
- 'space-around',
86
- 'space-between',
87
- 'space-evenly'
88
- ]
89
- },
90
- {
91
- name: 'alignItems',
92
- type: 'select',
93
- value: 'center',
94
- label: '子节点垂直方向位置',
95
- options: [
96
- 'stretch',
97
- 'start',
98
- 'flex-start',
99
- 'flex-end',
100
- 'end',
101
- 'center',
102
- 'baseline'
103
- ]
104
- },
105
- {
106
- name: 'direction',
107
- type: 'radios',
108
- label: '布局方向',
109
- value: 'column',
110
- inline: true,
111
- options: [
112
- {label: '水平', value: 'row'},
113
- {label: '垂直', value: 'column'}
114
- ]
115
- }
141
+ {
142
+ title: '子节点管理',
143
+ body: [
144
+ {
145
+ name: 'items',
146
+ label: false,
147
+ type: 'combo',
148
+ scaffold: {
149
+ type: 'wrapper',
150
+ body: '子节点内容'
151
+ },
152
+ minLength: 2,
153
+ multiple: true,
154
+ // draggable: true,
155
+ draggableTip: '',
156
+ items: [
157
+ {
158
+ type: 'tpl',
159
+ tpl:
160
+ '<span class="label label-default">子节点${index | plus}</span>'
161
+ }
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ ])
116
167
  ]
117
168
  },
118
169
  {
119
170
  title: '外观',
120
- body: [getSchemaTpl('className'), getSchemaTpl('style')]
171
+ className: 'p-none',
172
+ body: getSchemaTpl('collapseGroup', [
173
+ ...getSchemaTpl('style:common', ['display']),
174
+ {
175
+ title: 'CSS 类名',
176
+ body: [getSchemaTpl('className', {label: '外层CSS类名'})]
177
+ }
178
+ ])
121
179
  },
122
180
  {
123
- title: '显隐',
124
- body: [getSchemaTpl('visible')]
181
+ title: '状态',
182
+ body: [getSchemaTpl('visible'), getSchemaTpl('disabled')]
125
183
  }
126
184
  ])
127
185
  ];
@@ -1,5 +1,8 @@
1
1
  import {registerEditorPlugin} from '../../manager';
2
- import {BasePlugin} from '../../plugin';
2
+ import {BasePlugin, BaseEventContext} from '../../plugin';
3
+
4
+ import {formItemControl} from '../../component/control/BaseControl';
5
+ import {RendererAction, RendererEvent} from '../../event-action';
3
6
  import {getSchemaTpl} from '../../component/schemaTpl';
4
7
 
5
8
  export class ButtonGroupControlPlugin extends BasePlugin {
@@ -36,40 +39,125 @@ export class ButtonGroupControlPlugin extends BasePlugin {
36
39
  body: {
37
40
  ...this.scaffold,
38
41
  value: 'a',
39
- label: '按钮组',
40
- description: '按钮组可以当选项用。'
42
+ label: '按钮点选',
43
+ description: '按钮点选可以当选项用。'
41
44
  }
42
45
  };
43
46
 
44
- panelTitle = '按钮组';
45
- panelBody = [
46
- getSchemaTpl('switchDefaultValue', {
47
- visibleOn: '!this.defaultCheckAll'
48
- }),
47
+ notRenderFormZone = true;
48
+
49
+ panelTitle = '按钮点选';
50
+
51
+ // 事件定义
52
+ events: RendererEvent[] = [
53
+ {
54
+ eventName: 'change',
55
+ eventLabel: '值变化',
56
+ description: '选中值变化时触发',
57
+ dataSchema: [
58
+ {
59
+ type: 'object',
60
+ properties: {
61
+ 'event.data.value': {
62
+ type: 'string',
63
+ title: '选中值'
64
+ }
65
+ }
66
+ }
67
+ ]
68
+ }
69
+ ];
49
70
 
71
+ // 动作定义
72
+ actions: RendererAction[] = [
73
+ {
74
+ actionType: 'clear',
75
+ actionLabel: '清空',
76
+ description: '清除选中值'
77
+ },
78
+ {
79
+ actionType: 'reset',
80
+ actionLabel: '重置',
81
+ description: '将值重置为resetValue,若没有配置resetValue,则清空'
82
+ },
50
83
  {
51
- type: 'button-group-select',
52
- name: 'value',
53
- label: '默认值',
54
- source: '${options}',
55
- visibleOn: 'typeof this.value !== "undefined"',
56
- multiple: true
84
+ actionType: 'reload',
85
+ actionLabel: '重新加载',
86
+ description: '触发组件数据刷新并重新渲染'
57
87
  },
88
+ {
89
+ actionType: 'setValue',
90
+ actionLabel: '赋值',
91
+ description: '触发组件数据更新'
92
+ }
93
+ ];
58
94
 
59
- getSchemaTpl('options'),
60
- getSchemaTpl('source'),
95
+ panelJustify = true;
61
96
 
62
- getSchemaTpl('multiple'),
97
+ panelBodyCreator = (context: BaseEventContext) => {
98
+ return formItemControl(
99
+ {
100
+ common: {
101
+ replace: true,
102
+ body: [
103
+ getSchemaTpl('formItemName', {
104
+ required: true
105
+ }),
106
+ getSchemaTpl('label'),
107
+ getSchemaTpl('value'),
108
+ getSchemaTpl('multiple'),
109
+ getSchemaTpl('extractValue')
110
+ ]
111
+ },
112
+ option: {
113
+ title: '按钮管理',
114
+ body: [getSchemaTpl('optionControl'), getSchemaTpl('autoFill')]
115
+ },
116
+ style: {
117
+ // reverse: true,
118
+ body: [
119
+ getSchemaTpl('size'),
63
120
 
64
- getSchemaTpl('joinValues', {
65
- visibleOn: true
66
- }),
67
- getSchemaTpl('delimiter', {
68
- hiddenOn: 'this.joinValues === false'
69
- }),
70
- getSchemaTpl('extractValue'),
71
- getSchemaTpl('autoFill')
72
- ];
121
+ getSchemaTpl('buttonLevel', {
122
+ label: '按钮样式',
123
+ name: 'btnLevel'
124
+ }),
125
+
126
+ {
127
+ type: 'button-group-select',
128
+ name: 'vertical',
129
+ label: '布局方向',
130
+ value: false,
131
+ options: [
132
+ {
133
+ label: '水平',
134
+ value: false
135
+ },
136
+ {
137
+ label: '垂直',
138
+ value: true
139
+ }
140
+ ]
141
+ },
142
+
143
+ {
144
+ type: 'switch',
145
+ name: 'tiled',
146
+ label: '平铺模式',
147
+ value: false
148
+ },
149
+
150
+ getSchemaTpl('buttonLevel', {
151
+ label: '按钮选中样式',
152
+ name: 'btnActiveLevel'
153
+ })
154
+ ]
155
+ },
156
+ status: {}
157
+ },
158
+ context
159
+ );
160
+ };
73
161
  }
74
162
 
75
163
  registerEditorPlugin(ButtonGroupControlPlugin);
@@ -1,7 +1,12 @@
1
1
  import {registerEditorPlugin} from '../../manager';
2
- import {BasePlugin, RegionConfig} from '../../plugin';
2
+ import {BasePlugin, RegionConfig, BaseEventContext} from '../../plugin';
3
3
  import {getSchemaTpl} from '../../component/schemaTpl';
4
4
 
5
+ import {
6
+ BUTTON_DEFAULT_ACTION,
7
+ formItemControl
8
+ } from '../../component/control/BaseControl';
9
+
5
10
  export class ButtonToolbarControlPlugin extends BasePlugin {
6
11
  // 关联渲染器名字
7
12
  rendererName = 'button-toolbar';
@@ -20,20 +25,12 @@ export class ButtonToolbarControlPlugin extends BasePlugin {
20
25
  {
21
26
  type: 'button',
22
27
  label: '按钮1',
23
- actionType: 'dialog',
24
- dialog: {
25
- title: '系统提示',
26
- body: '对你点击了'
27
- }
28
+ ...BUTTON_DEFAULT_ACTION
28
29
  },
29
30
  {
30
31
  type: 'button',
31
32
  label: '按钮2',
32
- actionType: 'dialog',
33
- dialog: {
34
- title: '系统提示',
35
- body: '对你点击了'
36
- }
33
+ ...BUTTON_DEFAULT_ACTION
37
34
  }
38
35
  ]
39
36
  };
@@ -57,54 +54,64 @@ export class ButtonToolbarControlPlugin extends BasePlugin {
57
54
  }
58
55
  ];
59
56
 
60
- panelTitle = '工具栏';
61
- panelBody = [
62
- getSchemaTpl('tabs', [
63
- {
64
- title: '常规',
65
- body: [
66
- getSchemaTpl('label'),
67
- getSchemaTpl('description'),
57
+ notRenderFormZone = true;
68
58
 
69
- getSchemaTpl('remark'),
70
- getSchemaTpl('labelRemark')
71
- ]
72
- },
59
+ panelTitle = '工具栏';
73
60
 
61
+ panelBodyCreator = (context: BaseEventContext) => {
62
+ return formItemControl(
74
63
  {
75
- title: '外观',
76
- body: [
77
- getSchemaTpl('formItemMode'),
78
- getSchemaTpl('horizontalMode'),
79
- getSchemaTpl('horizontal', {
80
- label: '',
81
- visibleOn:
82
- '(data.$$formMode == "horizontal" || data.mode == "horizontal") && data.label !== false && data.horizontal'
83
- }),
84
-
85
- getSchemaTpl('className'),
86
- getSchemaTpl('className', {
87
- label: 'Label CSS 类名',
88
- name: 'labelClassName'
89
- }),
90
- getSchemaTpl('className', {
91
- label: 'Input CSS 类名',
92
- name: 'inputClassName'
93
- }),
94
- getSchemaTpl('className', {
95
- label: '描述 CSS 类名',
96
- name: 'descriptionClassName',
97
- visibleOn: 'data.description'
98
- })
99
- ]
64
+ common: {
65
+ replace: true,
66
+ body: [
67
+ getSchemaTpl('formItemName', {
68
+ required: true
69
+ }),
70
+ getSchemaTpl('label'),
71
+ getSchemaTpl('value'),
72
+ getSchemaTpl('remark'),
73
+ getSchemaTpl('labelRemark'),
74
+ getSchemaTpl('description')
75
+ ]
76
+ },
77
+ option: {
78
+ title: '按钮管理',
79
+ replace: true,
80
+ body: [
81
+ {
82
+ name: 'buttons',
83
+ type: 'combo',
84
+ label: '',
85
+ multiple: true,
86
+ addable: true,
87
+ minLength: 1,
88
+ draggable: true,
89
+ draggableTip: '',
90
+ editable: false,
91
+ visibleOn: 'this.buttons && this.buttons.length',
92
+ items: [
93
+ {
94
+ type: 'tpl',
95
+ inline: false,
96
+ tpl:
97
+ '<span class="label label-default"><% if (data.type === "button-group") { %> 按钮组 <% } else { %><%= data.label %><% if (data.icon) { %><i class="<%= data.icon %>"/><% }%><% } %></span>'
98
+ }
99
+ ],
100
+ addButtonText: '新增按钮',
101
+ scaffold: {
102
+ type: 'button',
103
+ label: '按钮'
104
+ }
105
+ }
106
+ ]
107
+ },
108
+ event: {
109
+ hidden: false
110
+ }
100
111
  },
101
-
102
- {
103
- title: '显隐',
104
- body: [getSchemaTpl('ref'), getSchemaTpl('visible')]
105
- }
106
- ])
107
- ];
112
+ context
113
+ );
114
+ };
108
115
  }
109
116
 
110
117
  registerEditorPlugin(ButtonToolbarControlPlugin);
@@ -6,6 +6,7 @@ import {
6
6
  SubRendererInfo
7
7
  } from '../../plugin';
8
8
  import {getSchemaTpl} from '../../component/schemaTpl';
9
+ import {RendererAction, RendererEvent} from '../../event-action';
9
10
 
10
11
  export class ChainedSelectControlPlugin extends BasePlugin {
11
12
  // 关联渲染器名字
@@ -35,6 +36,50 @@ export class ChainedSelectControlPlugin extends BasePlugin {
35
36
  }
36
37
  };
37
38
 
39
+ // 事件定义
40
+ events: RendererEvent[] = [
41
+ {
42
+ eventName: 'change',
43
+ eventLabel: '值变化',
44
+ description: '选中值变化时触发',
45
+ dataSchema: [
46
+ {
47
+ type: 'object',
48
+ properties: {
49
+ 'event.data.value': {
50
+ type: 'string',
51
+ title: '选中值'
52
+ }
53
+ }
54
+ }
55
+ ]
56
+ }
57
+ ];
58
+
59
+ // 动作定义
60
+ actions: RendererAction[] = [
61
+ {
62
+ actionType: 'clear',
63
+ actionLabel: '清空',
64
+ description: '清除选中值'
65
+ },
66
+ {
67
+ actionType: 'reset',
68
+ actionLabel: '重置',
69
+ description: '将值重置为resetValue,若没有配置resetValue,则清空'
70
+ },
71
+ {
72
+ actionType: 'reload',
73
+ actionLabel: '重新加载',
74
+ description: '触发组件数据刷新并重新渲染'
75
+ },
76
+ {
77
+ actionType: 'setValue',
78
+ actionLabel: '赋值',
79
+ description: '触发组件数据更新'
80
+ }
81
+ ];
82
+
38
83
  panelTitle = '级联选择';
39
84
  panelBody = [
40
85
  getSchemaTpl('switchDefaultValue'),