amis-editor 4.2.0-beta.2 → 5.1.9-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) 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/VRenderer.d.ts +10 -0
  5. package/dist/component/base/BackTop.d.ts +1 -1
  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 +44 -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 +1209 -474
  114. package/src/plugin/Alert.tsx +69 -48
  115. package/src/plugin/AnchorNav.tsx +1 -0
  116. package/src/plugin/Audio.tsx +9 -15
  117. package/src/plugin/Avatar.tsx +2 -1
  118. package/src/plugin/Breadcrumb.tsx +2 -1
  119. package/src/plugin/Button.tsx +257 -188
  120. package/src/plugin/ButtonGroup.tsx +99 -38
  121. package/src/plugin/ButtonToolbar.tsx +7 -13
  122. package/src/plugin/CRUD.tsx +78 -136
  123. package/src/plugin/Card.tsx +1 -0
  124. package/src/plugin/Cards.tsx +8 -14
  125. package/src/plugin/Carousel.tsx +1 -1
  126. package/src/plugin/Chart.tsx +26 -14
  127. package/src/plugin/Collapse.tsx +78 -78
  128. package/src/plugin/CollapseGroup.tsx +165 -83
  129. package/src/plugin/Container.tsx +59 -6
  130. package/src/plugin/Custom.tsx +2 -8
  131. package/src/plugin/CustomRegion.tsx +4 -3
  132. package/src/plugin/Dialog.tsx +55 -24
  133. package/src/plugin/Drawer.tsx +65 -35
  134. package/src/plugin/DropDownButton.tsx +95 -79
  135. package/src/plugin/Flex.tsx +123 -65
  136. package/src/plugin/Form/ButtonGroupSelect.tsx +114 -26
  137. package/src/plugin/Form/ButtonToolbar.tsx +62 -55
  138. package/src/plugin/Form/ChainedSelect.tsx +45 -0
  139. package/src/plugin/Form/Checkbox.tsx +122 -33
  140. package/src/plugin/Form/Checkboxes.tsx +154 -87
  141. package/src/plugin/Form/CodeEditor.tsx +163 -34
  142. package/src/plugin/Form/Combo.tsx +104 -65
  143. package/src/plugin/Form/Control.tsx +16 -70
  144. package/src/plugin/Form/DiffEditor.tsx +158 -54
  145. package/src/plugin/Form/FieldSet.tsx +6 -11
  146. package/src/plugin/Form/Form.tsx +277 -70
  147. package/src/plugin/Form/Formula.tsx +8 -14
  148. package/src/plugin/Form/InputArray.tsx +7 -16
  149. package/src/plugin/Form/InputCity.tsx +1 -1
  150. package/src/plugin/Form/InputDate.tsx +344 -121
  151. package/src/plugin/Form/InputDateRange.tsx +303 -161
  152. package/src/plugin/Form/InputDateTime.tsx +6 -150
  153. package/src/plugin/Form/InputDateTimeRange.tsx +7 -187
  154. package/src/plugin/Form/InputEmail.tsx +1 -0
  155. package/src/plugin/Form/InputExcel.tsx +70 -27
  156. package/src/plugin/Form/InputFile.tsx +326 -152
  157. package/src/plugin/Form/InputImage.tsx +1 -1
  158. package/src/plugin/Form/InputKV.tsx +61 -0
  159. package/src/plugin/Form/InputMonth.tsx +3 -1
  160. package/src/plugin/Form/InputMonthRange.tsx +6 -160
  161. package/src/plugin/Form/InputNumber.tsx +1 -1
  162. package/src/plugin/Form/InputPassword.tsx +2 -0
  163. package/src/plugin/Form/InputQuarter.tsx +3 -1
  164. package/src/plugin/Form/InputQuarterRange.tsx +6 -160
  165. package/src/plugin/Form/InputRange.tsx +74 -4
  166. package/src/plugin/Form/InputRating.tsx +347 -35
  167. package/src/plugin/Form/InputRichText.tsx +2 -3
  168. package/src/plugin/Form/InputTable.tsx +33 -49
  169. package/src/plugin/Form/InputTag.tsx +1 -1
  170. package/src/plugin/Form/InputText.tsx +310 -132
  171. package/src/plugin/Form/InputTime.tsx +4 -53
  172. package/src/plugin/Form/InputTimeRange.tsx +41 -0
  173. package/src/plugin/Form/InputTree.tsx +196 -46
  174. package/src/plugin/Form/InputURL.tsx +2 -0
  175. package/src/plugin/Form/InputYear.tsx +2 -0
  176. package/src/plugin/Form/InputYearRange.tsx +41 -0
  177. package/src/plugin/Form/Item.tsx +17 -18
  178. package/src/plugin/Form/ListSelect.tsx +75 -20
  179. package/src/plugin/Form/LocationPicker.tsx +2 -7
  180. package/src/plugin/Form/MatrixCheckboxes.tsx +1 -1
  181. package/src/plugin/Form/NestedSelect.tsx +110 -43
  182. package/src/plugin/Form/Picker.tsx +2 -5
  183. package/src/plugin/Form/Radios.tsx +122 -52
  184. package/src/plugin/Form/Select.tsx +239 -168
  185. package/src/plugin/Form/Static.tsx +1 -1
  186. package/src/plugin/Form/Switch.tsx +170 -58
  187. package/src/plugin/Form/TabsTransfer.tsx +175 -79
  188. package/src/plugin/Form/Textarea.tsx +146 -36
  189. package/src/plugin/Form/Transfer.tsx +295 -233
  190. package/src/plugin/Form/TreeSelect.tsx +287 -146
  191. package/src/plugin/Grid.tsx +340 -312
  192. package/src/plugin/HBox.tsx +1 -0
  193. package/src/plugin/IFrame.tsx +21 -12
  194. package/src/plugin/Image.tsx +7 -12
  195. package/src/plugin/Images.tsx +7 -12
  196. package/src/plugin/Link.tsx +6 -12
  197. package/src/plugin/List.tsx +6 -10
  198. package/src/plugin/ListItem.tsx +1 -0
  199. package/src/plugin/Nav.tsx +7 -9
  200. package/src/plugin/Others/Action.tsx +16 -10
  201. package/src/plugin/Others/BasicToolbar.tsx +4 -1
  202. package/src/plugin/Others/TableCell.tsx +19 -39
  203. package/src/plugin/Page.tsx +315 -229
  204. package/src/plugin/Panel.tsx +6 -7
  205. package/src/plugin/Plain.tsx +3 -6
  206. package/src/plugin/Progress.tsx +234 -94
  207. package/src/plugin/Service.tsx +10 -6
  208. package/src/plugin/Table.tsx +49 -20
  209. package/src/plugin/TableView.tsx +212 -106
  210. package/src/plugin/Tabs.tsx +306 -146
  211. package/src/plugin/TooltipWrapper.tsx +231 -135
  212. package/src/plugin/Tpl.tsx +68 -52
  213. package/src/plugin/Video.tsx +9 -20
  214. package/src/plugin/Wizard.tsx +537 -336
  215. package/src/plugin/Wrapper.tsx +82 -61
  216. package/src/plugin.ts +66 -4
  217. package/static/empty.png +0 -0
  218. package/dist/component/Control/APIControl.d.ts +0 -504
  219. package/dist/component/Control/ValidationControl.d.ts +0 -30
  220. 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',
@@ -397,7 +383,7 @@ export class CRUDPlugin extends BasePlugin {
397
383
 
398
384
  valueSchema.bulkActions = [];
399
385
  /** 统一api格式 */
400
- valueSchema.api = normalizeApi(valueSchema.api);
386
+ valueSchema.api = typeof valueSchema.api === 'string' ? valueSchema.api : normalizeApi(valueSchema.api);
401
387
  hasFeatures &&
402
388
  features.forEach((item: string) => {
403
389
  if (itemBtns.includes(item)) {
@@ -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
  {