amis-editor 4.2.0-beta.3 → 5.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. package/dist/6dbcbb49b6fd405190a9.png +0 -0
  2. package/dist/component/Editor.d.ts +16 -0
  3. package/dist/component/RegionWrapper.d.ts +10 -0
  4. package/dist/component/ScaffoldModal.d.ts +1 -1
  5. package/dist/component/VRenderer.d.ts +10 -0
  6. package/dist/component/control/APIControl.d.ts +1158 -0
  7. package/dist/component/control/ActionAPIControl.d.ts +1158 -0
  8. package/dist/component/control/BadgeControl.d.ts +133 -0
  9. package/dist/component/control/BaseControl.d.ts +248 -0
  10. package/dist/component/control/DataBindingControl.d.ts +14 -0
  11. package/dist/component/control/DataPickerControl.d.ts +13 -0
  12. package/dist/component/control/DateShortCutControl.d.ts +83 -0
  13. package/dist/component/control/FormulaControl.d.ts +51 -0
  14. package/dist/component/{Control → control}/OptionControl.d.ts +23 -34
  15. package/dist/component/{Control → control}/PopoverEdit.d.ts +0 -0
  16. package/dist/component/control/StatusControl.d.ts +39 -0
  17. package/dist/component/control/SwitchMoreControl.d.ts +224 -0
  18. package/dist/component/control/ValidationControl.d.ts +65 -0
  19. package/dist/component/control/ValidationItem.d.ts +46 -0
  20. package/dist/component/control/style-control/Background.d.ts +17 -0
  21. package/dist/component/control/style-control/Border.d.ts +18 -0
  22. package/dist/component/control/style-control/BoxModel.d.ts +17 -0
  23. package/dist/component/control/style-control/BoxShadow.d.ts +18 -0
  24. package/dist/component/control/style-control/Display.d.ts +14 -0
  25. package/dist/component/control/style-control/Font.d.ts +16 -0
  26. package/dist/component/control/style-control/font-family.d.ts +11 -0
  27. package/dist/component/control/style-control/transformation.d.ts +29 -0
  28. package/dist/component/control/style-control/types.d.ts +8 -0
  29. package/dist/component/schemaTpl.d.ts +8 -0
  30. package/dist/component/validator.d.ts +62 -0
  31. package/dist/dnd/index.d.ts +1 -1
  32. package/dist/event-action/action-config-panel.d.ts +8 -0
  33. package/dist/event-action/actions.d.ts +3 -0
  34. package/dist/event-action/comp-action-select.d.ts +11 -0
  35. package/dist/event-action/config.d.ts +13 -0
  36. package/dist/event-action/index.d.ts +459 -0
  37. package/dist/event-action/schema.d.ts +32 -0
  38. package/dist/exports.min.js +1 -1
  39. package/dist/index.d.ts +23 -5
  40. package/dist/index.min.js +1 -1
  41. package/dist/manager.d.ts +46 -1
  42. package/dist/plugin/Alert.d.ts +4 -2
  43. package/dist/plugin/Button.d.ts +5 -1
  44. package/dist/plugin/ButtonGroup.d.ts +13 -34
  45. package/dist/plugin/ButtonToolbar.d.ts +4 -10
  46. package/dist/plugin/CRUD.d.ts +2 -0
  47. package/dist/plugin/Chart.d.ts +2 -0
  48. package/dist/plugin/Collapse.d.ts +1 -0
  49. package/dist/plugin/CollapseGroup.d.ts +28 -4
  50. package/dist/plugin/Container.d.ts +2 -1
  51. package/dist/plugin/Dialog.d.ts +12 -2
  52. package/dist/plugin/Drawer.d.ts +12 -2
  53. package/dist/plugin/DropDownButton.d.ts +11 -11
  54. package/dist/plugin/Form/ButtonGroupSelect.d.ts +7 -2
  55. package/dist/plugin/Form/ButtonToolbar.d.ts +8 -7
  56. package/dist/plugin/Form/ChainedSelect.d.ts +3 -0
  57. package/dist/plugin/Form/Checkbox.d.ts +7 -2
  58. package/dist/plugin/Form/Checkboxes.d.ts +8 -2
  59. package/dist/plugin/Form/CodeEditor.d.ts +7 -22
  60. package/dist/plugin/Form/Combo.d.ts +3 -0
  61. package/dist/plugin/Form/Control.d.ts +6 -2
  62. package/dist/plugin/Form/DiffEditor.d.ts +7 -1
  63. package/dist/plugin/Form/Form.d.ts +6 -0
  64. package/dist/plugin/Form/Formula.d.ts +1 -25
  65. package/dist/plugin/Form/InputDate.d.ts +8 -2
  66. package/dist/plugin/Form/InputDateRange.d.ts +8 -2
  67. package/dist/plugin/Form/InputDateTime.d.ts +4 -4
  68. package/dist/plugin/Form/InputDateTimeRange.d.ts +4 -4
  69. package/dist/plugin/Form/InputEmail.d.ts +1 -0
  70. package/dist/plugin/Form/InputExcel.d.ts +6 -41
  71. package/dist/plugin/Form/InputFile.d.ts +7 -3
  72. package/dist/plugin/Form/InputKV.d.ts +6 -0
  73. package/dist/plugin/Form/InputMonth.d.ts +1 -0
  74. package/dist/plugin/Form/InputMonthRange.d.ts +4 -4
  75. package/dist/plugin/Form/InputPassword.d.ts +1 -0
  76. package/dist/plugin/Form/InputQuarter.d.ts +1 -0
  77. package/dist/plugin/Form/InputQuarterRange.d.ts +4 -4
  78. package/dist/plugin/Form/InputRange.d.ts +3 -0
  79. package/dist/plugin/Form/InputRating.d.ts +9 -3
  80. package/dist/plugin/Form/InputText.d.ts +24 -2
  81. package/dist/plugin/Form/InputTime.d.ts +3 -3
  82. package/dist/plugin/Form/InputTimeRange.d.ts +20 -0
  83. package/dist/plugin/Form/InputTree.d.ts +6 -2
  84. package/dist/plugin/Form/InputURL.d.ts +1 -0
  85. package/dist/plugin/Form/InputYear.d.ts +1 -0
  86. package/dist/plugin/Form/InputYearRange.d.ts +20 -0
  87. package/dist/plugin/Form/ListSelect.d.ts +6 -2
  88. package/dist/plugin/Form/LocationPicker.d.ts +1 -31
  89. package/dist/plugin/Form/NestedSelect.d.ts +5 -2
  90. package/dist/plugin/Form/Radios.d.ts +7 -2
  91. package/dist/plugin/Form/Select.d.ts +7 -2
  92. package/dist/plugin/Form/Switch.d.ts +7 -2
  93. package/dist/plugin/Form/TabsTransfer.d.ts +5 -2
  94. package/dist/plugin/Form/Textarea.d.ts +7 -1
  95. package/dist/plugin/Form/Transfer.d.ts +5 -2
  96. package/dist/plugin/Form/TreeSelect.d.ts +6 -2
  97. package/dist/plugin/IFrame.d.ts +2 -2
  98. package/dist/plugin/Nav.d.ts +1 -116
  99. package/dist/plugin/Others/Action.d.ts +5 -1
  100. package/dist/plugin/Page.d.ts +5 -2
  101. package/dist/plugin/Progress.d.ts +5 -1
  102. package/dist/plugin/Table.d.ts +2 -0
  103. package/dist/plugin/Tabs.d.ts +33 -2
  104. package/dist/plugin/TooltipWrapper.d.ts +10 -0
  105. package/dist/plugin/Tpl.d.ts +2 -1
  106. package/dist/plugin/Wizard.d.ts +4 -1
  107. package/dist/plugin.d.ts +37 -1
  108. package/dist/store/editor.d.ts +55 -28
  109. package/dist/store/node.d.ts +16 -0
  110. package/dist/style.css +1 -1
  111. package/dist/util.d.ts +36 -3
  112. package/package.json +14 -8
  113. package/src/component/schemaTpl.tsx +1198 -474
  114. package/src/plugin/.DS_Store +0 -0
  115. package/src/plugin/Alert.tsx +69 -48
  116. package/src/plugin/AnchorNav.tsx +1 -0
  117. package/src/plugin/Audio.tsx +9 -15
  118. package/src/plugin/Avatar.tsx +2 -1
  119. package/src/plugin/Breadcrumb.tsx +2 -1
  120. package/src/plugin/Button.tsx +257 -188
  121. package/src/plugin/ButtonGroup.tsx +99 -38
  122. package/src/plugin/ButtonToolbar.tsx +7 -13
  123. package/src/plugin/CRUD.tsx +77 -135
  124. package/src/plugin/Card.tsx +1 -0
  125. package/src/plugin/Cards.tsx +8 -14
  126. package/src/plugin/Carousel.tsx +1 -1
  127. package/src/plugin/Chart.tsx +26 -14
  128. package/src/plugin/Collapse.tsx +78 -78
  129. package/src/plugin/CollapseGroup.tsx +165 -83
  130. package/src/plugin/Container.tsx +59 -6
  131. package/src/plugin/Custom.tsx +2 -8
  132. package/src/plugin/CustomRegion.tsx +4 -3
  133. package/src/plugin/Dialog.tsx +55 -24
  134. package/src/plugin/Drawer.tsx +65 -35
  135. package/src/plugin/DropDownButton.tsx +95 -79
  136. package/src/plugin/Flex.tsx +123 -65
  137. package/src/plugin/Form/ButtonGroupSelect.tsx +114 -26
  138. package/src/plugin/Form/ButtonToolbar.tsx +62 -55
  139. package/src/plugin/Form/ChainedSelect.tsx +45 -0
  140. package/src/plugin/Form/Checkbox.tsx +122 -33
  141. package/src/plugin/Form/Checkboxes.tsx +154 -87
  142. package/src/plugin/Form/CodeEditor.tsx +163 -34
  143. package/src/plugin/Form/Combo.tsx +104 -65
  144. package/src/plugin/Form/Control.tsx +16 -70
  145. package/src/plugin/Form/DiffEditor.tsx +158 -54
  146. package/src/plugin/Form/FieldSet.tsx +6 -11
  147. package/src/plugin/Form/Form.tsx +277 -70
  148. package/src/plugin/Form/Formula.tsx +8 -14
  149. package/src/plugin/Form/InputArray.tsx +7 -16
  150. package/src/plugin/Form/InputCity.tsx +1 -1
  151. package/src/plugin/Form/InputDate.tsx +344 -121
  152. package/src/plugin/Form/InputDateRange.tsx +303 -161
  153. package/src/plugin/Form/InputDateTime.tsx +6 -150
  154. package/src/plugin/Form/InputDateTimeRange.tsx +7 -187
  155. package/src/plugin/Form/InputEmail.tsx +1 -0
  156. package/src/plugin/Form/InputExcel.tsx +70 -27
  157. package/src/plugin/Form/InputFile.tsx +326 -152
  158. package/src/plugin/Form/InputImage.tsx +1 -1
  159. package/src/plugin/Form/InputKV.tsx +61 -0
  160. package/src/plugin/Form/InputMonth.tsx +3 -1
  161. package/src/plugin/Form/InputMonthRange.tsx +6 -160
  162. package/src/plugin/Form/InputNumber.tsx +1 -1
  163. package/src/plugin/Form/InputPassword.tsx +2 -0
  164. package/src/plugin/Form/InputQuarter.tsx +3 -1
  165. package/src/plugin/Form/InputQuarterRange.tsx +6 -160
  166. package/src/plugin/Form/InputRange.tsx +74 -4
  167. package/src/plugin/Form/InputRating.tsx +347 -35
  168. package/src/plugin/Form/InputRichText.tsx +2 -3
  169. package/src/plugin/Form/InputTable.tsx +33 -49
  170. package/src/plugin/Form/InputTag.tsx +1 -1
  171. package/src/plugin/Form/InputText.tsx +310 -132
  172. package/src/plugin/Form/InputTime.tsx +4 -53
  173. package/src/plugin/Form/InputTimeRange.tsx +41 -0
  174. package/src/plugin/Form/InputTree.tsx +196 -46
  175. package/src/plugin/Form/InputURL.tsx +2 -0
  176. package/src/plugin/Form/InputYear.tsx +2 -0
  177. package/src/plugin/Form/InputYearRange.tsx +41 -0
  178. package/src/plugin/Form/Item.tsx +17 -18
  179. package/src/plugin/Form/ListSelect.tsx +75 -20
  180. package/src/plugin/Form/LocationPicker.tsx +2 -7
  181. package/src/plugin/Form/MatrixCheckboxes.tsx +1 -1
  182. package/src/plugin/Form/NestedSelect.tsx +110 -43
  183. package/src/plugin/Form/Picker.tsx +2 -5
  184. package/src/plugin/Form/Radios.tsx +122 -52
  185. package/src/plugin/Form/Select.tsx +239 -168
  186. package/src/plugin/Form/Static.tsx +1 -1
  187. package/src/plugin/Form/Switch.tsx +170 -58
  188. package/src/plugin/Form/TabsTransfer.tsx +175 -79
  189. package/src/plugin/Form/Textarea.tsx +146 -36
  190. package/src/plugin/Form/Transfer.tsx +295 -233
  191. package/src/plugin/Form/TreeSelect.tsx +287 -146
  192. package/src/plugin/Grid.tsx +340 -312
  193. package/src/plugin/HBox.tsx +1 -0
  194. package/src/plugin/IFrame.tsx +21 -12
  195. package/src/plugin/Image.tsx +7 -12
  196. package/src/plugin/Images.tsx +7 -12
  197. package/src/plugin/Link.tsx +6 -12
  198. package/src/plugin/List.tsx +6 -10
  199. package/src/plugin/ListItem.tsx +1 -0
  200. package/src/plugin/Nav.tsx +7 -9
  201. package/src/plugin/Others/Action.tsx +16 -10
  202. package/src/plugin/Others/BasicToolbar.tsx +4 -1
  203. package/src/plugin/Others/TableCell.tsx +19 -39
  204. package/src/plugin/Page.tsx +315 -229
  205. package/src/plugin/Panel.tsx +6 -7
  206. package/src/plugin/Plain.tsx +3 -6
  207. package/src/plugin/Progress.tsx +234 -94
  208. package/src/plugin/Service.tsx +10 -6
  209. package/src/plugin/Table.tsx +49 -20
  210. package/src/plugin/TableView.tsx +212 -106
  211. package/src/plugin/Tabs.tsx +306 -146
  212. package/src/plugin/TooltipWrapper.tsx +231 -135
  213. package/src/plugin/Tpl.tsx +68 -52
  214. package/src/plugin/Video.tsx +9 -20
  215. package/src/plugin/Wizard.tsx +537 -336
  216. package/src/plugin/Wrapper.tsx +82 -61
  217. package/src/plugin.ts +66 -4
  218. package/static/empty.png +0 -0
  219. package/dist/component/Control/APIControl.d.ts +0 -504
  220. package/dist/component/Control/ValidationControl.d.ts +0 -30
  221. package/dist/component/remarkTpl.d.ts +0 -150
@@ -1,5 +1,4 @@
1
1
  import {toast} from 'amis';
2
-
3
2
  import get from 'lodash/get';
4
3
  import cloneDeep from 'lodash/cloneDeep';
5
4
  import React from 'react';
@@ -23,6 +22,7 @@ import {isObject, JSONPipeIn} from '../util';
23
22
  import {setVariable} from 'amis-core';
24
23
  import {ActionSchema} from 'amis/lib/renderers/Action';
25
24
  import {getEnv} from 'mobx-state-tree';
25
+ import {EditorNodeType} from '../store/node';
26
26
  import {normalizeApi} from 'amis-core';
27
27
 
28
28
  interface ColumnItem {
@@ -82,10 +82,10 @@ export class CRUDPlugin extends BasePlugin {
82
82
  total: 0
83
83
  };
84
84
 
85
- if (Array.isArray(schema.columns)) {
85
+ if (Array.isArray(schema?.columns)) {
86
86
  const item = {};
87
87
  schema.columns.forEach((control: any) => {
88
- if (control.name) {
88
+ if (control?.name) {
89
89
  setVariable(item, control.name, 'sample');
90
90
  }
91
91
  });
@@ -209,33 +209,19 @@ export class CRUDPlugin extends BasePlugin {
209
209
  body: [
210
210
  getSchemaTpl('api', {
211
211
  label: '接口地址',
212
- sampleBuilder: (schema: any) => {
213
- const data: any = {
214
- items: [],
215
- total: 0
216
- };
217
-
218
- if (Array.isArray(schema.columns)) {
219
- const item = {};
220
- schema.columns.forEach((control: any) => {
221
- if (control.name) {
222
- setVariable(item, control.name, 'sample');
223
- }
224
- });
225
-
226
- data.items.push(item);
227
- }
228
-
229
- return JSON.stringify(
212
+ sampleBuilder: (schema: any) =>
213
+ JSON.stringify(
230
214
  {
231
215
  status: 0,
232
216
  msg: '',
233
- data: data
217
+ data: [
218
+ {id: 1, name: 'Jack'},
219
+ {id: 2, name: 'Rose'}
220
+ ]
234
221
  },
235
222
  null,
236
223
  2
237
- );
238
- }
224
+ )
239
225
  }),
240
226
  {
241
227
  type: 'button',
@@ -554,11 +540,8 @@ export class CRUDPlugin extends BasePlugin {
554
540
  {
555
541
  title: '常规',
556
542
  body: [
557
- {
543
+ getSchemaTpl('switch', {
558
544
  name: 'filter',
559
- type: 'switch',
560
- mode: 'inline',
561
- className: 'block',
562
545
  label: '启用查询条件',
563
546
  pipeIn: (value: any) => !!value,
564
547
  pipeOut: (value: any, originValue: any) => {
@@ -582,7 +565,7 @@ export class CRUDPlugin extends BasePlugin {
582
565
 
583
566
  return null;
584
567
  }
585
- },
568
+ }),
586
569
 
587
570
  {
588
571
  type: 'divider'
@@ -632,14 +615,12 @@ export class CRUDPlugin extends BasePlugin {
632
615
  ]
633
616
  },
634
617
 
635
- // {
636
- // name: 'defaultChecked',
637
- // type: 'switch',
638
- // mode: 'inline',
639
- // label: '默认是否全部勾选',
640
- // visibleOn: 'data.bulkActions && data.bulkActions.length',
641
- // pipeIn: defaultValue(false)
642
- // },
618
+ // getSchemaTpl('switch', {
619
+ // name: 'defaultChecked',
620
+ // label: '默认是否全部勾选',
621
+ // visibleOn: 'data.bulkActions && data.bulkActions.length',
622
+ // pipeIn: defaultValue(false)
623
+ // }),
643
624
 
644
625
  {
645
626
  type: 'divider'
@@ -700,12 +681,9 @@ export class CRUDPlugin extends BasePlugin {
700
681
  hiddenOn: 'this.mode && this.mode !== "table" || this.pickerMode'
701
682
  },
702
683
 
703
- {
684
+ getSchemaTpl('switch', {
704
685
  name: 'syncLocation',
705
686
  label: '同步地址栏',
706
- type: 'switch',
707
- mode: 'inline',
708
- className: 'block',
709
687
  pipeIn: defaultValue(true),
710
688
  labelRemark: {
711
689
  className: 'm-l-xs',
@@ -715,7 +693,7 @@ export class CRUDPlugin extends BasePlugin {
715
693
  '开启后会把查询条件数据和分页信息同步到地址栏中,页面中出现多个时,建议只保留一个同步地址栏,否则会相互影响。',
716
694
  placement: 'left'
717
695
  }
718
- },
696
+ }),
719
697
 
720
698
  {
721
699
  label: '默认参数',
@@ -734,12 +712,9 @@ export class CRUDPlugin extends BasePlugin {
734
712
  type: 'divider'
735
713
  },
736
714
 
737
- {
715
+ getSchemaTpl('switch', {
738
716
  name: 'keepItemSelectionOnPageChange',
739
717
  label: '保留条目选择',
740
- type: 'switch',
741
- mode: 'inline',
742
- className: 'block',
743
718
  visbileOn:
744
719
  'this.bulkActions && this.bulkActions.length || this.itemActions && this.itemActions.length',
745
720
  labelRemark: {
@@ -750,7 +725,7 @@ export class CRUDPlugin extends BasePlugin {
750
725
  '默认分页、搜索后,用户选择条目会被清空,开启此选项后会保留用户选择,可以实现跨页面批量操作。',
751
726
  placement: 'left'
752
727
  }
753
- },
728
+ }),
754
729
 
755
730
  {
756
731
  name: 'labelTpl',
@@ -782,23 +757,20 @@ export class CRUDPlugin extends BasePlugin {
782
757
  body: [
783
758
  getSchemaTpl('api', {
784
759
  label: '数据拉取接口',
785
- sampleBuilder: (schema: any) => {
760
+ sampleBuilder: () => {
786
761
  const data: any = {
787
762
  items: [],
788
763
  total: 0
789
764
  };
765
+ const columns: any[] = context?.schema?.columns ?? [];
766
+ const row = {};
790
767
 
791
- if (Array.isArray(schema.columns)) {
792
- const item = {};
793
- schema.columns.forEach((control: any) => {
794
- if (control.name) {
795
- setVariable(item, control.name, 'sample');
796
- }
797
- });
798
-
799
- data.items.push(item);
800
- }
801
-
768
+ columns.forEach(column => {
769
+ if (column.name) {
770
+ setVariable(row, column.name, 'sample');
771
+ }
772
+ });
773
+ data.items.push(row);
802
774
  return JSON.stringify(
803
775
  {
804
776
  status: 0,
@@ -847,12 +819,9 @@ export class CRUDPlugin extends BasePlugin {
847
819
  className: 'm-t-n-sm'
848
820
  },
849
821
 
850
- {
822
+ getSchemaTpl('switch', {
851
823
  name: 'loadDataOnce',
852
824
  label: '一次性拉取',
853
- type: 'switch',
854
- mode: 'inline',
855
- className: 'block',
856
825
  labelRemark: {
857
826
  className: 'm-l-xs',
858
827
  trigger: 'click',
@@ -861,18 +830,15 @@ export class CRUDPlugin extends BasePlugin {
861
830
  '开启后,数据只会在初始的时候拉取,后续分页、排序不再请求接口,都由前端直接完成。',
862
831
  placement: 'left'
863
832
  }
864
- },
833
+ }),
865
834
 
866
- {
835
+ getSchemaTpl('switch', {
867
836
  label: '开启定时刷新',
868
- type: 'switch',
869
837
  name: 'interval',
870
838
  visibleOn: 'data.api',
871
839
  pipeIn: (value: any) => !!value,
872
- pipeOut: (value: any) => (value ? 3000 : undefined),
873
- mode: 'inline',
874
- className: 'block'
875
- },
840
+ pipeOut: (value: any) => (value ? 3000 : undefined)
841
+ }),
876
842
 
877
843
  {
878
844
  name: 'interval',
@@ -883,14 +849,12 @@ export class CRUDPlugin extends BasePlugin {
883
849
  description: '设置后将自动定时刷新,单位 ms'
884
850
  },
885
851
 
886
- {
852
+ getSchemaTpl('switch', {
887
853
  name: 'silentPolling',
888
854
  label: '静默刷新',
889
- type: 'switch',
890
- mode: 'inline',
891
855
  visibleOn: '!!data.interval',
892
856
  description: '设置自动定时刷新时是否显示loading'
893
- },
857
+ }),
894
858
 
895
859
  {
896
860
  name: 'stopAutoRefreshWhen',
@@ -901,27 +865,21 @@ export class CRUDPlugin extends BasePlugin {
901
865
  '定时刷新一旦设置会一直刷新,除非给出表达式,条件满足后则不刷新了。'
902
866
  },
903
867
 
904
- {
868
+ getSchemaTpl('switch', {
905
869
  name: 'stopAutoRefreshWhenModalIsOpen',
906
870
  label: '当有弹框时关闭自动刷新',
907
- type: 'switch',
908
871
  visibleOn: '!!data.interval',
909
- mode: 'inline',
910
- className: 'block',
911
872
  description: '弹框打开关闭自动刷新,关闭弹框又恢复'
912
- },
873
+ }),
913
874
 
914
875
  {
915
876
  type: 'divider'
916
877
  },
917
878
 
918
- {
879
+ getSchemaTpl('switch', {
919
880
  name: 'draggable',
920
- label: '是否可拖拽排序',
921
- type: 'switch',
922
- mode: 'inline',
923
- className: 'block'
924
- },
881
+ label: '是否可拖拽排序'
882
+ }),
925
883
 
926
884
  getSchemaTpl('api', {
927
885
  label: '顺序保存接口',
@@ -1502,49 +1460,34 @@ export class CRUDPlugin extends BasePlugin {
1502
1460
  ]
1503
1461
  },
1504
1462
 
1505
- {
1463
+ getSchemaTpl('switch', {
1506
1464
  name: 'filterTogglable',
1507
- type: 'switch',
1508
1465
  label: '是否可显隐查询条件',
1509
- mode: 'inline',
1510
- className: 'block',
1511
1466
  visibleOn: 'data.filter'
1512
- },
1467
+ }),
1513
1468
 
1514
- {
1469
+ getSchemaTpl('switch', {
1515
1470
  name: 'filterDefaultVisible',
1516
- type: 'switch',
1517
1471
  label: '查询条件默认是否可见',
1518
- pipeIn: defaultValue(true),
1519
- mode: 'inline',
1520
- className: 'block',
1521
- visibleOn: 'data.filter && data.filterTogglable'
1522
- },
1472
+ visibleOn: 'data.filter && data.filterTogglable',
1473
+ pipeIn: defaultValue(true)
1474
+ }),
1523
1475
 
1524
- {
1476
+ getSchemaTpl('switch', {
1525
1477
  name: 'hideQuickSaveBtn',
1526
- label: '隐藏顶部快速保存提示',
1527
- type: 'switch',
1528
- mode: 'inline',
1529
- className: 'block'
1530
- },
1478
+ label: '隐藏顶部快速保存提示'
1479
+ }),
1531
1480
 
1532
- {
1481
+ getSchemaTpl('switch', {
1533
1482
  name: 'alwaysShowPagination',
1534
- label: '是否总是显示分页',
1535
- type: 'switch',
1536
- mode: 'inline',
1537
- className: 'block'
1538
- },
1483
+ label: '是否总是显示分页'
1484
+ }),
1539
1485
 
1540
- {
1486
+ getSchemaTpl('switch', {
1541
1487
  name: 'hideCheckToggler',
1542
- type: 'switch',
1543
1488
  label: '隐藏选择按钮',
1544
- mode: 'inline',
1545
- className: 'block',
1546
1489
  visibleOn: 'data.checkOnItemClick'
1547
- },
1490
+ }),
1548
1491
 
1549
1492
  getSchemaTpl('className'),
1550
1493
 
@@ -1573,13 +1516,10 @@ export class CRUDPlugin extends BasePlugin {
1573
1516
  type: 'input-number'
1574
1517
  },
1575
1518
 
1576
- {
1519
+ getSchemaTpl('switch', {
1577
1520
  name: 'keepItemSelectionOnPageChange',
1578
- label: '翻页时保留选择',
1579
- type: 'switch',
1580
- mode: 'inline',
1581
- className: 'block'
1582
- },
1521
+ label: '翻页时保留选择'
1522
+ }),
1583
1523
 
1584
1524
  {
1585
1525
  name: 'maxKeepItemSelectionLength',
@@ -1640,33 +1580,24 @@ export class CRUDPlugin extends BasePlugin {
1640
1580
  'data.bulkActions && data.bulkActions.length || data.pickerMode'
1641
1581
  },
1642
1582
 
1643
- {
1583
+ getSchemaTpl('switch', {
1644
1584
  name: 'checkOnItemClick',
1645
- type: 'switch',
1646
1585
  label: '开启单条点击整个区域选中',
1647
- mode: 'inline',
1648
- className: 'block',
1649
1586
  visibleOn:
1650
1587
  'data.bulkActions && data.bulkActions.length || data.pickerMode'
1651
- },
1588
+ }),
1652
1589
 
1653
- {
1590
+ getSchemaTpl('switch', {
1654
1591
  name: 'autoJumpToTopOnPagerChange',
1655
- type: 'switch',
1656
1592
  label: '自动跳顶部',
1657
- mode: 'inline',
1658
- className: 'block',
1659
1593
  description: '当切分页的时候,是否自动跳顶部'
1660
- },
1594
+ }),
1661
1595
 
1662
- {
1596
+ getSchemaTpl('switch', {
1663
1597
  name: 'syncResponse2Query',
1664
- type: 'switch',
1665
1598
  label: '同步查询条件',
1666
- mode: 'inline',
1667
- className: 'block',
1668
1599
  description: '查询后将返回的数据同步到查询条件上'
1669
- }
1600
+ })
1670
1601
  ]
1671
1602
  }
1672
1603
  ]);
@@ -1830,6 +1761,17 @@ export class CRUDPlugin extends BasePlugin {
1830
1761
  }, 20);
1831
1762
  }
1832
1763
  }
1764
+
1765
+ async buildDataSchemas(node: EditorNodeType, region?: EditorNodeType) {
1766
+ const child: EditorNodeType = node.children.find(
1767
+ item => !!~['table', 'table2', 'cards', 'list'].indexOf(item.type)
1768
+ );
1769
+
1770
+ if (!child?.info?.plugin?.buildDataSchemas) {
1771
+ return;
1772
+ }
1773
+ return child.info.plugin.buildDataSchemas(child);
1774
+ }
1833
1775
  }
1834
1776
 
1835
1777
  registerEditorPlugin(CRUDPlugin);
@@ -222,6 +222,7 @@ export class CardPlugin extends BasePlugin {
222
222
  const id = field.$$id;
223
223
  return (
224
224
  <VRenderer
225
+ type={info.type}
225
226
  plugin={info.plugin}
226
227
  renderer={info.renderer}
227
228
  multifactor
@@ -126,22 +126,18 @@ export class CardsPlugin extends BasePlugin {
126
126
  {
127
127
  title: '外观',
128
128
  body: [
129
- {
129
+ getSchemaTpl('switch', {
130
130
  name: 'showHeader',
131
- type: 'switch',
132
- mode: 'inline',
133
- className: 'block',
134
131
  label: '是否显示头部',
135
132
  pipeIn: defaultValue(true)
136
- },
137
- {
133
+ }),
134
+
135
+ getSchemaTpl('switch', {
138
136
  name: 'showFooter',
139
- type: 'switch',
140
- mode: 'inline',
141
- className: 'block',
142
137
  label: '是否显示底部',
143
138
  pipeIn: defaultValue(true)
144
- },
139
+ }),
140
+
145
141
  getSchemaTpl('className', {
146
142
  label: 'CSS 类名'
147
143
  }),
@@ -172,12 +168,10 @@ export class CardsPlugin extends BasePlugin {
172
168
  label: '每行显示个数',
173
169
  description: '不设置时,由卡片 CSS 类名决定'
174
170
  },
175
- {
171
+ getSchemaTpl('switch', {
176
172
  name: 'masonryLayout',
177
- type: 'switch',
178
- mode: 'inline',
179
173
  label: '启用瀑布流'
180
- }
174
+ })
181
175
  ]
182
176
  },
183
177
  {
@@ -374,4 +374,4 @@ export class CarouselPlugin extends BasePlugin {
374
374
  }
375
375
  }
376
376
 
377
- registerEditorPlugin(CarouselPlugin);
377
+ registerEditorPlugin(CarouselPlugin);
@@ -10,6 +10,7 @@ import {
10
10
  import {defaultValue, getSchemaTpl} from '../component/schemaTpl';
11
11
  import {diff} from '../util';
12
12
  import AMisCodeEditor from '../component/Panel/AMisCodeEditor';
13
+ import {RendererAction} from '../event-action';
13
14
 
14
15
  const ChartConfigEditor = ({value, onChange}: any) => {
15
16
  return (
@@ -55,6 +56,20 @@ export class ChartPlugin extends BasePlugin {
55
56
  ...this.scaffold
56
57
  };
57
58
 
59
+ // 动作定义
60
+ actions: RendererAction[] = [
61
+ {
62
+ actionType: 'reload',
63
+ actionLabel: '重新加载',
64
+ description: '触发组件数据刷新并重新渲染'
65
+ },
66
+ {
67
+ actionType: 'setValue',
68
+ actionLabel: '更新数据',
69
+ description: '触发组件数据更新'
70
+ }
71
+ ];
72
+
58
73
  panelTitle = '图表';
59
74
  panelBodyCreator = (context: BaseEventContext) => {
60
75
  return [
@@ -67,15 +82,14 @@ export class ChartPlugin extends BasePlugin {
67
82
  description:
68
83
  '接口可以返回配置,或者数据,建议返回数据可映射到 Echarts 配置中'
69
84
  }),
70
- {
85
+
86
+ getSchemaTpl('switch', {
71
87
  label: '初始是否拉取',
72
- type: 'switch',
73
88
  name: 'initFetch',
74
89
  visibleOn: 'data.api',
75
- pipeIn: defaultValue(true),
76
- mode: 'inline',
77
- className: 'block'
78
- },
90
+ pipeIn: defaultValue(true)
91
+ }),
92
+
79
93
  {
80
94
  name: 'interval',
81
95
  label: '定时刷新间隔',
@@ -144,8 +158,10 @@ export class ChartPlugin extends BasePlugin {
144
158
  <pre>debugger; // 可以浏览器中断点调试\n\n// 查看原始数据\nconsole.log(config)\n\n// 返回新的结果 \nreturn {}</pre>
145
159
  `
146
160
  },
147
- {
148
- label: 'Chart 配置完全替换?',
161
+
162
+ getSchemaTpl('switch', {
163
+ label: 'Chart 配置完全替换',
164
+ name: 'replaceChartOption',
149
165
  labelRemark: {
150
166
  trigger: 'click',
151
167
  className: 'm-l-xs',
@@ -153,12 +169,8 @@ export class ChartPlugin extends BasePlugin {
153
169
  content:
154
170
  '默认为追加模式,新的配置会跟旧的配置合并,如果勾选将直接完全覆盖。',
155
171
  placement: 'left'
156
- },
157
- name: 'replaceChartOption',
158
- type: 'switch',
159
- mode: 'inline',
160
- className: 'block'
161
- }
172
+ }
173
+ })
162
174
  ]
163
175
  },
164
176
  {