amis 1.5.7 → 1.5.8-beta.2

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 (350) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/lib/Schema.d.ts +3 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/AssociatedSelection.d.ts +84 -84
  5. package/lib/components/AssociatedSelection.js +2 -2
  6. package/lib/components/AssociatedSelection.js.map +2 -2
  7. package/lib/components/Avatar.d.ts +135 -0
  8. package/lib/components/Avatar.js +120 -0
  9. package/lib/components/Avatar.js.map +13 -0
  10. package/lib/components/BaiduMapPicker.js.map +2 -2
  11. package/lib/components/CalendarMobile.d.ts +547 -0
  12. package/lib/components/CalendarMobile.js +432 -0
  13. package/lib/components/CalendarMobile.js.map +13 -0
  14. package/lib/components/Card.d.ts +20 -20
  15. package/lib/components/ChainedSelection.d.ts +84 -84
  16. package/lib/components/ChainedSelection.js +15 -3
  17. package/lib/components/ChainedSelection.js.map +2 -2
  18. package/lib/components/ColorPicker.d.ts +84 -84
  19. package/lib/components/ColorPicker.js.map +2 -2
  20. package/lib/components/DatePicker.d.ts +84 -84
  21. package/lib/components/DatePicker.js +10 -4
  22. package/lib/components/DatePicker.js.map +2 -2
  23. package/lib/components/DateRangePicker.d.ts +85 -84
  24. package/lib/components/DateRangePicker.js +21 -6
  25. package/lib/components/DateRangePicker.js.map +2 -2
  26. package/lib/components/GroupedSelection.d.ts +84 -84
  27. package/lib/components/GroupedSelection.js +14 -2
  28. package/lib/components/GroupedSelection.js.map +2 -2
  29. package/lib/components/MonthRangePicker.d.ts +85 -84
  30. package/lib/components/MonthRangePicker.js +19 -6
  31. package/lib/components/MonthRangePicker.js.map +2 -2
  32. package/lib/components/Overlay.d.ts +1 -1
  33. package/lib/components/Overlay.js.map +1 -1
  34. package/lib/components/Picker.js +9 -4
  35. package/lib/components/Picker.js.map +2 -2
  36. package/lib/components/PickerColumn.js +0 -1
  37. package/lib/components/PickerColumn.js.map +2 -2
  38. package/lib/components/PickerContainer.d.ts +3 -0
  39. package/lib/components/PickerContainer.js +12 -5
  40. package/lib/components/PickerContainer.js.map +2 -2
  41. package/lib/components/PopUp.d.ts +1 -0
  42. package/lib/components/PopUp.js +5 -5
  43. package/lib/components/PopUp.js.map +2 -2
  44. package/lib/components/ResultBox.js +2 -1
  45. package/lib/components/ResultBox.js.map +2 -2
  46. package/lib/components/ResultList.d.ts +9 -2
  47. package/lib/components/ResultList.js +22 -2
  48. package/lib/components/ResultList.js.map +2 -2
  49. package/lib/components/Select.d.ts +237 -237
  50. package/lib/components/Select.js +1 -1
  51. package/lib/components/Select.js.map +1 -1
  52. package/lib/components/Selection.d.ts +94 -86
  53. package/lib/components/Selection.js +11 -2
  54. package/lib/components/Selection.js.map +2 -2
  55. package/lib/components/Steps.js.map +2 -2
  56. package/lib/components/TableSelection.d.ts +85 -85
  57. package/lib/components/TableSelection.js +1 -9
  58. package/lib/components/TableSelection.js.map +2 -2
  59. package/lib/components/Tabs.js +31 -33
  60. package/lib/components/Tabs.js.map +2 -2
  61. package/lib/components/TabsTransfer.d.ts +87 -256
  62. package/lib/components/TabsTransfer.js +52 -9
  63. package/lib/components/TabsTransfer.js.map +2 -2
  64. package/lib/components/TabsTransferPicker.d.ts +1 -1
  65. package/lib/components/TabsTransferPicker.js +20 -18
  66. package/lib/components/TabsTransferPicker.js.map +2 -2
  67. package/lib/components/Timeline.d.ts +69 -0
  68. package/lib/components/Timeline.js +16 -0
  69. package/lib/components/Timeline.js.map +13 -0
  70. package/lib/components/TimelineItem.d.ts +516 -0
  71. package/lib/components/TimelineItem.js +41 -0
  72. package/lib/components/TimelineItem.js.map +13 -0
  73. package/lib/components/Transfer.d.ts +100 -98
  74. package/lib/components/Transfer.js +2 -3
  75. package/lib/components/Transfer.js.map +2 -2
  76. package/lib/components/TransferDropDown.d.ts +84 -84
  77. package/lib/components/TransferDropDown.js +1 -5
  78. package/lib/components/TransferDropDown.js.map +2 -2
  79. package/lib/components/TransferPicker.d.ts +1 -0
  80. package/lib/components/TransferPicker.js +19 -4
  81. package/lib/components/TransferPicker.js.map +2 -2
  82. package/lib/components/TreeSelection.d.ts +85 -85
  83. package/lib/components/TreeSelection.js +7 -1
  84. package/lib/components/TreeSelection.js.map +2 -2
  85. package/lib/components/calendar/Calendar.d.ts +5 -0
  86. package/lib/components/calendar/Calendar.js +15 -2
  87. package/lib/components/calendar/Calendar.js.map +2 -2
  88. package/lib/components/calendar/DaysView.d.ts +1 -0
  89. package/lib/components/calendar/DaysView.js +25 -13
  90. package/lib/components/calendar/DaysView.js.map +2 -2
  91. package/lib/components/calendar/MonthsView.d.ts +28 -0
  92. package/lib/components/calendar/MonthsView.js +79 -3
  93. package/lib/components/calendar/MonthsView.js.map +2 -2
  94. package/lib/components/calendar/QuartersView.d.ts +1 -0
  95. package/lib/components/calendar/QuartersView.js +2 -2
  96. package/lib/components/calendar/QuartersView.js.map +2 -2
  97. package/lib/components/calendar/TimeView.d.ts +5 -0
  98. package/lib/components/calendar/TimeView.js +8 -5
  99. package/lib/components/calendar/TimeView.js.map +2 -2
  100. package/lib/components/calendar/YearsView.js +6 -4
  101. package/lib/components/calendar/YearsView.js.map +2 -2
  102. package/lib/components/condition-builder/Field.js +1 -4
  103. package/lib/components/condition-builder/Field.js.map +2 -2
  104. package/lib/components/condition-builder/Func.js +1 -1
  105. package/lib/components/condition-builder/Func.js.map +2 -2
  106. package/lib/components/formula/Editor.d.ts +3 -0
  107. package/lib/components/formula/Editor.js +3 -2
  108. package/lib/components/formula/Editor.js.map +2 -2
  109. package/lib/components/formula/FuncList.js +2 -1
  110. package/lib/components/formula/FuncList.js.map +2 -2
  111. package/lib/components/formula/Picker.js +1 -1
  112. package/lib/components/formula/Picker.js.map +2 -2
  113. package/lib/components/icons.js +2 -0
  114. package/lib/components/icons.js.map +2 -2
  115. package/lib/components/index.d.ts +2 -1
  116. package/lib/components/index.js +4 -2
  117. package/lib/components/index.js.map +2 -2
  118. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  119. package/lib/components/virtual-list/index.js +1 -2
  120. package/lib/components/virtual-list/index.js.map +2 -2
  121. package/lib/factory.js +5 -0
  122. package/lib/factory.js.map +2 -2
  123. package/lib/icons/tree-down.js +7 -0
  124. package/lib/index.d.ts +1 -0
  125. package/lib/index.js +2 -1
  126. package/lib/index.js.map +2 -2
  127. package/lib/locale/de-DE.js +13 -2
  128. package/lib/locale/de-DE.js.map +2 -2
  129. package/lib/locale/en-US.js +13 -2
  130. package/lib/locale/en-US.js.map +2 -2
  131. package/lib/locale/zh-CN.js +12 -1
  132. package/lib/locale/zh-CN.js.map +2 -2
  133. package/lib/renderers/Avatar.d.ts +35 -26
  134. package/lib/renderers/Avatar.js +14 -19
  135. package/lib/renderers/Avatar.js.map +2 -2
  136. package/lib/renderers/Card.js +6 -5
  137. package/lib/renderers/Card.js.map +2 -2
  138. package/lib/renderers/Custom.js.map +2 -2
  139. package/lib/renderers/Each.js +5 -2
  140. package/lib/renderers/Each.js.map +2 -2
  141. package/lib/renderers/Flex.js +1 -5
  142. package/lib/renderers/Flex.js.map +2 -2
  143. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  144. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  145. package/lib/renderers/Form/DiffEditor.js +2 -1
  146. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  147. package/lib/renderers/Form/InputCity.d.ts +84 -84
  148. package/lib/renderers/Form/InputColor.d.ts +84 -84
  149. package/lib/renderers/Form/InputColor.js +1 -1
  150. package/lib/renderers/Form/InputColor.js.map +2 -2
  151. package/lib/renderers/Form/InputDate.js +6 -4
  152. package/lib/renderers/Form/InputDate.js.map +2 -2
  153. package/lib/renderers/Form/InputDateRange.js +1 -1
  154. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  155. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  156. package/lib/renderers/Form/InputFormula.js +2 -2
  157. package/lib/renderers/Form/InputFormula.js.map +2 -2
  158. package/lib/renderers/Form/InputImage.d.ts +1 -0
  159. package/lib/renderers/Form/InputImage.js +8 -4
  160. package/lib/renderers/Form/InputImage.js.map +2 -2
  161. package/lib/renderers/Form/InputMonthRange.js +1 -1
  162. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  163. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  164. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  165. package/lib/renderers/Form/InputYearRange.js +1 -1
  166. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  167. package/lib/renderers/Form/Item.js +11 -4
  168. package/lib/renderers/Form/Item.js.map +2 -2
  169. package/lib/renderers/Form/NestedSelect.js +1 -1
  170. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  171. package/lib/renderers/Form/Select.js +1 -1
  172. package/lib/renderers/Form/Select.js.map +2 -2
  173. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  174. package/lib/renderers/Form/TabsTransfer.js +20 -1
  175. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  176. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  177. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  178. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  179. package/lib/renderers/Form/Transfer.d.ts +15 -4
  180. package/lib/renderers/Form/Transfer.js +55 -18
  181. package/lib/renderers/Form/Transfer.js.map +2 -2
  182. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  183. package/lib/renderers/Form/TransferPicker.js +1 -1
  184. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  185. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  186. package/lib/renderers/IFrame.js +0 -2
  187. package/lib/renderers/IFrame.js.map +2 -2
  188. package/lib/renderers/Remark.d.ts +4 -0
  189. package/lib/renderers/Remark.js +38 -7
  190. package/lib/renderers/Remark.js.map +2 -2
  191. package/lib/renderers/Steps.js +5 -5
  192. package/lib/renderers/Steps.js.map +2 -2
  193. package/lib/renderers/Table/index.js +4 -1
  194. package/lib/renderers/Table/index.js.map +2 -2
  195. package/lib/renderers/Tabs.js +1 -1
  196. package/lib/renderers/Tabs.js.map +2 -2
  197. package/lib/renderers/Timeline.d.ts +65 -0
  198. package/lib/renderers/Timeline.js +54 -0
  199. package/lib/renderers/Timeline.js.map +13 -0
  200. package/lib/renderers/Video.js.map +2 -2
  201. package/lib/store/combo.js.map +2 -2
  202. package/lib/themes/ang-ie11.css +659 -25
  203. package/lib/themes/ang.css +659 -25
  204. package/lib/themes/ang.css.map +1 -1
  205. package/lib/themes/antd-ie11.css +694 -25
  206. package/lib/themes/antd.css +694 -25
  207. package/lib/themes/antd.css.map +1 -1
  208. package/lib/themes/cxd-ie11.css +696 -25
  209. package/lib/themes/cxd.css +696 -25
  210. package/lib/themes/cxd.css.map +1 -1
  211. package/lib/themes/dark-ie11.css +660 -25
  212. package/lib/themes/dark.css +660 -25
  213. package/lib/themes/dark.css.map +1 -1
  214. package/lib/themes/default.css +696 -25
  215. package/lib/themes/default.css.map +1 -1
  216. package/lib/utils/RootClose.js +3 -1
  217. package/lib/utils/RootClose.js.map +2 -2
  218. package/lib/utils/helper.d.ts +1 -1
  219. package/lib/utils/helper.js +1 -1
  220. package/lib/utils/helper.js.map +2 -2
  221. package/package.json +13 -6
  222. package/schema.json +1042 -541
  223. package/scss/_properties.scss +8 -0
  224. package/scss/components/_avatar.scss +27 -9
  225. package/scss/components/_calendar.scss +280 -0
  226. package/scss/components/_card.scss +1 -1
  227. package/scss/components/_collapse-group.scss +1 -3
  228. package/scss/components/_formula.scss +30 -6
  229. package/scss/components/_modal.scss +18 -0
  230. package/scss/components/_panel.scss +45 -0
  231. package/scss/components/_popup.scss +10 -6
  232. package/scss/components/_timeline.scss +198 -0
  233. package/scss/components/form/_form.scss +168 -0
  234. package/scss/components/form/_result-list.scss +2 -0
  235. package/scss/components/form/_selection.scss +5 -4
  236. package/scss/themes/_antd-variables.scss +42 -0
  237. package/scss/themes/_common.scss +1 -0
  238. package/scss/themes/_cxd-variables.scss +47 -0
  239. package/scss/themes/_dark-variables.scss +1 -0
  240. package/sdk/ang-ie11.css +782 -23
  241. package/sdk/ang.css +791 -26
  242. package/sdk/antd-ie11.css +782 -23
  243. package/sdk/antd.css +826 -26
  244. package/sdk/charts.js +17 -17
  245. package/sdk/codemirror.js +7 -7
  246. package/sdk/color-picker.js +65 -65
  247. package/sdk/cropperjs.js +3 -3
  248. package/sdk/cxd-ie11.css +782 -23
  249. package/sdk/cxd.css +828 -26
  250. package/sdk/dark-ie11.css +783 -24
  251. package/sdk/dark.css +792 -26
  252. package/sdk/exceljs.js +1 -1
  253. package/sdk/locale/de-DE.js +13 -2
  254. package/sdk/markdown.js +69 -69
  255. package/sdk/papaparse.js +1 -1
  256. package/sdk/renderers/Form/CityDB.js +1 -1
  257. package/sdk/rest.js +18 -18
  258. package/sdk/rich-text.js +62 -62
  259. package/sdk/sdk-ie11.css +782 -23
  260. package/sdk/sdk.css +828 -26
  261. package/sdk/sdk.js +1225 -1285
  262. package/sdk/thirds/hls.js/hls.js +18 -18
  263. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  264. package/sdk/tinymce.js +57 -57
  265. package/src/Schema.ts +3 -0
  266. package/src/components/AssociatedSelection.tsx +5 -1
  267. package/src/components/Avatar.tsx +253 -0
  268. package/src/components/BaiduMapPicker.tsx +19 -14
  269. package/src/components/CalendarMobile.tsx +563 -0
  270. package/src/components/ChainedSelection.tsx +16 -3
  271. package/src/components/ColorPicker.tsx +37 -39
  272. package/src/components/DatePicker.tsx +41 -35
  273. package/src/components/DateRangePicker.tsx +61 -16
  274. package/src/components/GroupedSelection.tsx +14 -2
  275. package/src/components/MonthRangePicker.tsx +57 -17
  276. package/src/components/Overlay.tsx +1 -1
  277. package/src/components/Picker.tsx +41 -36
  278. package/src/components/PickerColumn.tsx +22 -25
  279. package/src/components/PickerContainer.tsx +13 -1
  280. package/src/components/PopUp.tsx +34 -49
  281. package/src/components/ResultBox.tsx +4 -1
  282. package/src/components/ResultList.tsx +36 -6
  283. package/src/components/Select.tsx +1 -1
  284. package/src/components/Selection.tsx +21 -3
  285. package/src/components/Steps.tsx +23 -10
  286. package/src/components/TableSelection.tsx +1 -44
  287. package/src/components/Tabs.tsx +65 -54
  288. package/src/components/TabsTransfer.tsx +78 -9
  289. package/src/components/TabsTransferPicker.tsx +25 -13
  290. package/src/components/Timeline.tsx +31 -0
  291. package/src/components/TimelineItem.tsx +107 -0
  292. package/src/components/Transfer.tsx +11 -8
  293. package/src/components/TransferDropDown.tsx +1 -7
  294. package/src/components/TransferPicker.tsx +25 -4
  295. package/src/components/TreeSelection.tsx +7 -1
  296. package/src/components/calendar/Calendar.tsx +26 -6
  297. package/src/components/calendar/DaysView.tsx +79 -31
  298. package/src/components/calendar/MonthsView.tsx +116 -2
  299. package/src/components/calendar/QuartersView.tsx +3 -2
  300. package/src/components/calendar/TimeView.tsx +26 -16
  301. package/src/components/calendar/YearsView.tsx +14 -16
  302. package/src/components/condition-builder/Field.tsx +1 -3
  303. package/src/components/condition-builder/Func.tsx +1 -1
  304. package/src/components/formula/Editor.tsx +16 -11
  305. package/src/components/formula/FuncList.tsx +3 -1
  306. package/src/components/formula/Picker.tsx +2 -1
  307. package/src/components/icons.tsx +2 -0
  308. package/src/components/index.tsx +2 -0
  309. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  310. package/src/components/virtual-list/index.tsx +4 -6
  311. package/src/factory.tsx +6 -0
  312. package/src/icons/tree-down.svg +5 -0
  313. package/src/index.tsx +1 -0
  314. package/src/locale/de-DE.ts +13 -2
  315. package/src/locale/en-US.ts +13 -2
  316. package/src/locale/zh-CN.ts +12 -1
  317. package/src/renderers/Avatar.tsx +83 -74
  318. package/src/renderers/Card.tsx +10 -6
  319. package/src/renderers/Custom.tsx +6 -3
  320. package/src/renderers/Each.tsx +4 -4
  321. package/src/renderers/Flex.tsx +3 -7
  322. package/src/renderers/Form/ChartRadios.tsx +2 -7
  323. package/src/renderers/Form/Checkboxes.tsx +1 -1
  324. package/src/renderers/Form/DiffEditor.tsx +2 -3
  325. package/src/renderers/Form/InputColor.tsx +1 -1
  326. package/src/renderers/Form/InputDate.tsx +38 -19
  327. package/src/renderers/Form/InputDateRange.tsx +0 -1
  328. package/src/renderers/Form/InputFormula.tsx +9 -4
  329. package/src/renderers/Form/InputImage.tsx +9 -4
  330. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  331. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  332. package/src/renderers/Form/InputYearRange.tsx +0 -1
  333. package/src/renderers/Form/Item.tsx +15 -4
  334. package/src/renderers/Form/NestedSelect.tsx +1 -1
  335. package/src/renderers/Form/Select.tsx +0 -1
  336. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  337. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  338. package/src/renderers/Form/Transfer.tsx +75 -24
  339. package/src/renderers/Form/TransferPicker.tsx +6 -38
  340. package/src/renderers/Form/TreeSelect.tsx +12 -14
  341. package/src/renderers/IFrame.tsx +0 -2
  342. package/src/renderers/Remark.tsx +67 -18
  343. package/src/renderers/Steps.tsx +11 -13
  344. package/src/renderers/Table/index.tsx +7 -1
  345. package/src/renderers/Tabs.tsx +6 -2
  346. package/src/renderers/Timeline.tsx +141 -0
  347. package/src/renderers/Video.tsx +4 -20
  348. package/src/store/combo.ts +1 -3
  349. package/src/utils/RootClose.ts +5 -1
  350. package/src/utils/helper.ts +1 -1
@@ -5,7 +5,7 @@ import type {FuncGroup, VariableItem} from '../../components/formula/Editor';
5
5
 
6
6
  /**
7
7
  * InputFormula 公式编辑器
8
- * 文档:https://baidu.gitee.io/amis/docs/components/form/input-formula
8
+ * 文档:https://baidu.gitee.io/amis/zh-CN/components/form/input-formula
9
9
  */
10
10
  export interface InputFormulaControlSchema extends FormBaseControl {
11
11
  type: 'input-formula';
@@ -22,6 +22,9 @@ export interface InputFormulaControlSchema extends FormBaseControl {
22
22
  */
23
23
  variables: Array<VariableItem>;
24
24
 
25
+ /**
26
+ * 变量展现模式,可选值:'tabs' | 'tree'
27
+ */
25
28
  variableMode?: 'tabs' | 'tree';
26
29
 
27
30
  /**
@@ -56,19 +59,21 @@ export class InputFormulaRenderer extends React.Component<InputFormulaProps> {
56
59
  variables,
57
60
  variableMode,
58
61
  functions,
59
- header
62
+ header,
63
+ label,
64
+ value
60
65
  } = this.props;
61
66
 
62
67
  return (
63
68
  <FormulaPicker
64
- value={selectedOptions}
69
+ value={value}
65
70
  disabled={disabled}
66
71
  onChange={onChange}
67
72
  evalMode={evalMode}
68
73
  variables={variables}
69
74
  variableMode={variableMode}
70
75
  functions={functions}
71
- header={header}
76
+ header={header || label || ''}
72
77
  />
73
78
  );
74
79
  }
@@ -283,6 +283,7 @@ export interface ImageState {
283
283
  crop?: any;
284
284
  error?: string;
285
285
  cropFile?: FileValue;
286
+ cropFileName?: string; // 主要是用于后续上传的时候获得用户名
286
287
  submitOnChange?: boolean;
287
288
  frameImageWidth?: number;
288
289
  }
@@ -651,7 +652,7 @@ export default class ImageControl extends React.Component<
651
652
  env.notify('error', error || __('File.errorRetry'));
652
653
  } else {
653
654
  newFile = {
654
- name: file.name,
655
+ name: file.name || this.state.cropFileName,
655
656
  ...obj,
656
657
  preview: file.preview
657
658
  } as FileValue;
@@ -748,8 +749,10 @@ export default class ImageControl extends React.Component<
748
749
  this.setState({
749
750
  cropFile: {
750
751
  preview: files[index].preview || (files[index].url as string),
752
+ name: files[index].name,
751
753
  state: 'init'
752
- }
754
+ },
755
+ cropFileName: files[index].name
753
756
  });
754
757
  }
755
758
 
@@ -848,7 +851,8 @@ export default class ImageControl extends React.Component<
848
851
  }
849
852
 
850
853
  return this.setState({
851
- cropFile: file
854
+ cropFile: file,
855
+ cropFileName: file.name
852
856
  });
853
857
  }
854
858
 
@@ -899,6 +903,7 @@ export default class ImageControl extends React.Component<
899
903
  this.setState(
900
904
  {
901
905
  cropFile: undefined,
906
+ cropFileName: undefined,
902
907
  locked: false,
903
908
  lockedReason: ''
904
909
  },
@@ -1086,7 +1091,7 @@ export default class ImageControl extends React.Component<
1086
1091
  }
1087
1092
 
1088
1093
  // Note: File类型字段放在后面,可以支持第三方云存储鉴权
1089
- fd.append(fileField, file, (file as File).name);
1094
+ fd.append(fileField, file, (file as File).name || this.state.cropFileName);
1090
1095
 
1091
1096
  const env = this.props.env;
1092
1097
 
@@ -185,7 +185,6 @@ export default class MonthRangeControl extends React.Component<MonthRangeProps>
185
185
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
186
186
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
187
187
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
188
- useMobileUI={env.useMobileUI}
189
188
  />
190
189
  </div>
191
190
  );
@@ -45,7 +45,6 @@ export default class QuarterRangeControl extends InputDateRange {
45
45
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
46
46
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
47
47
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
48
- useMobileUI={env.useMobileUI}
49
48
  />
50
49
  </div>
51
50
  );
@@ -45,7 +45,6 @@ export default class YearRangeControl extends InputDateRange {
45
45
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
46
46
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
47
47
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
48
- useMobileUI={env.useMobileUI}
49
48
  />
50
49
  </div>
51
50
  );
@@ -519,7 +519,8 @@ export class FormItemWrap extends React.Component<FormItemProps> {
519
519
  renderDescription,
520
520
  hint,
521
521
  data,
522
- showErrorMsg
522
+ showErrorMsg,
523
+ useMobileUI
523
524
  } = props;
524
525
 
525
526
  // 强制不渲染 label 的话
@@ -575,6 +576,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
575
576
  type: 'remark',
576
577
  icon: labelRemark.icon || 'warning-mark',
577
578
  tooltip: labelRemark,
579
+ useMobileUI,
578
580
  className: cx(`Form-labelRemark`),
579
581
  container: props.popOverContainer
580
582
  ? props.popOverContainer
@@ -608,6 +610,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
608
610
  icon: remark.icon || 'warning-mark',
609
611
  tooltip: remark,
610
612
  className: cx(`Form-remark`),
613
+ useMobileUI,
611
614
  container: props.popOverContainer
612
615
  ? props.popOverContainer
613
616
  : env && env.getModalContainer
@@ -664,7 +667,8 @@ export class FormItemWrap extends React.Component<FormItemProps> {
664
667
  renderDescription,
665
668
  hint,
666
669
  data,
667
- showErrorMsg
670
+ showErrorMsg,
671
+ useMobileUI
668
672
  } = props;
669
673
 
670
674
  description = description || desc;
@@ -700,6 +704,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
700
704
  icon: labelRemark.icon || 'warning-mark',
701
705
  tooltip: labelRemark,
702
706
  className: cx(`Form-lableRemark`),
707
+ useMobileUI,
703
708
  container: props.popOverContainer
704
709
  ? props.popOverContainer
705
710
  : env && env.getModalContainer
@@ -725,6 +730,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
725
730
  icon: remark.icon || 'warning-mark',
726
731
  className: cx(`Form-remark`),
727
732
  tooltip: remark,
733
+ useMobileUI,
728
734
  container:
729
735
  env && env.getModalContainer
730
736
  ? env.getModalContainer
@@ -779,7 +785,8 @@ export class FormItemWrap extends React.Component<FormItemProps> {
779
785
  renderLabel,
780
786
  renderDescription,
781
787
  data,
782
- showErrorMsg
788
+ showErrorMsg,
789
+ useMobileUI
783
790
  } = props;
784
791
 
785
792
  description = description || desc;
@@ -815,6 +822,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
815
822
  icon: labelRemark.icon || 'warning-mark',
816
823
  tooltip: labelRemark,
817
824
  className: cx(`Form-lableRemark`),
825
+ useMobileUI,
818
826
  container: props.popOverContainer
819
827
  ? props.popOverContainer
820
828
  : env && env.getModalContainer
@@ -841,6 +849,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
841
849
  icon: remark.icon || 'warning-mark',
842
850
  className: cx(`Form-remark`),
843
851
  tooltip: remark,
852
+ useMobileUI,
844
853
  container: props.popOverContainer
845
854
  ? props.popOverContainer
846
855
  : env && env.getModalContainer
@@ -897,7 +906,8 @@ export class FormItemWrap extends React.Component<FormItemProps> {
897
906
  renderDescription,
898
907
  hint,
899
908
  data,
900
- showErrorMsg
909
+ showErrorMsg,
910
+ useMobileUI
901
911
  } = props;
902
912
 
903
913
  description = description || desc;
@@ -932,6 +942,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
932
942
  icon: labelRemark.icon || 'warning-mark',
933
943
  tooltip: labelRemark,
934
944
  className: cx(`Form-lableRemark`),
945
+ useMobileUI,
935
946
  container: props.popOverContainer
936
947
  ? props.popOverContainer
937
948
  : env && env.getModalContainer
@@ -647,7 +647,7 @@ export default class NestedSelectControl extends React.Component<
647
647
  multiple
648
648
  ? selectedOptions
649
649
  : selectedOptions.length
650
- ? this.renderValue(selectedOptions[0])
650
+ ? selectedOptions[0]
651
651
  : ''
652
652
  }
653
653
  onResultClick={this.handleOutClick}
@@ -314,7 +314,6 @@ export default class SelectControl extends React.Component<SelectProps, any> {
314
314
  ) : (
315
315
  <Select
316
316
  {...rest}
317
- useMobileUI={env.useMobileUI}
318
317
  borderMode={borderMode}
319
318
  placeholder={placeholder}
320
319
  multiple={multiple || multi}
@@ -6,51 +6,19 @@ import {
6
6
  import React from 'react';
7
7
  import {Api} from '../../types';
8
8
  import Spinner from '../../components/Spinner';
9
- import {BaseTransferRenderer} from './Transfer';
9
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
10
10
  import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
11
+ import {SchemaApi, SchemaObject} from '../../Schema';
12
+ import {autobind, createObject} from '../../utils/helper';
13
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
12
14
 
13
15
  /**
14
16
  * TabsTransfer
15
17
  * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer
16
18
  */
17
- export interface TabsTransferControlSchema extends FormOptionsControl {
19
+ export interface TabsTransferControlSchema
20
+ extends Omit<TransferControlSchema, 'type'> {
18
21
  type: 'tabs-transfer';
19
-
20
- /**
21
- * 是否显示剪头
22
- */
23
- showArrow?: boolean;
24
-
25
- /**
26
- * 可排序?
27
- */
28
- sortable?: boolean;
29
-
30
- /**
31
- * 搜索结果展示模式
32
- */
33
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
34
-
35
- /**
36
- * 可搜索?
37
- */
38
- searchable?: boolean;
39
-
40
- /**
41
- * 搜索 API
42
- */
43
- searchApi?: SchemaApi;
44
-
45
- /**
46
- * 左侧的标题文字
47
- */
48
- selectTitle?: string;
49
-
50
- /**
51
- * 右侧结果的标题文字
52
- */
53
- resultTitle?: string;
54
22
  }
55
23
 
56
24
  export interface TabsTransferProps
@@ -68,6 +36,26 @@ export interface TabsTransferProps
68
36
  type: 'tabs-transfer'
69
37
  })
70
38
  export class TabsTransferRenderer extends BaseTransferRenderer<TabsTransferProps> {
39
+ @autobind
40
+ optionItemRender(option: any, states: ItemRenderStates) {
41
+ const {menuTpl, render, data} = this.props;
42
+ const ctx = arguments[2] || {};
43
+
44
+ if (menuTpl) {
45
+ return render(`item/${states.index}`, menuTpl, {
46
+ data: createObject(
47
+ createObject(data, {
48
+ ...states,
49
+ ...ctx
50
+ }),
51
+ option
52
+ )
53
+ });
54
+ }
55
+
56
+ return BaseSelection.itemRender(option, states);
57
+ }
58
+
71
59
  render() {
72
60
  const {
73
61
  className,
@@ -100,6 +88,8 @@ export class TabsTransferRenderer extends BaseTransferRenderer<TabsTransferProps
100
88
  onDeferLoad={deferLoad}
101
89
  selectTitle={selectTitle}
102
90
  resultTitle={resultTitle}
91
+ optionItemRender={this.optionItemRender}
92
+ resultItemRender={this.resultItemRender}
103
93
  />
104
94
 
105
95
  <Spinner overlay key="info" show={loading} />
@@ -4,60 +4,21 @@ import {
4
4
  FormOptionsControl
5
5
  } from './Options';
6
6
  import React from 'react';
7
- import {Api} from '../../types';
8
7
  import Spinner from '../../components/Spinner';
9
8
  import {BaseTransferRenderer} from './Transfer';
10
- import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
12
- import TransferPicker from '../../components/TransferPicker';
9
+ import {SchemaApi, SchemaObject} from '../../Schema';
13
10
  import TabsTransferPicker from '../../components/TabsTransferPicker';
11
+ import {TabsTransferControlSchema} from './TabsTransfer';
12
+ import {autobind, createObject} from '../../utils/helper';
13
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
14
14
 
15
15
  /**
16
16
  * TabsTransferPicker 穿梭器的弹框形态
17
17
  * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer-picker
18
18
  */
19
- export interface TabsTransferPickerControlSchema extends FormOptionsControl {
19
+ export interface TabsTransferPickerControlSchema
20
+ extends Omit<TabsTransferControlSchema, 'type'> {
20
21
  type: 'tabs-transfer-picker';
21
-
22
- /**
23
- * 是否显示剪头
24
- */
25
- showArrow?: boolean;
26
-
27
- /**
28
- * 可排序?
29
- */
30
- sortable?: boolean;
31
-
32
- /**
33
- * 搜索结果展示模式
34
- */
35
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
36
-
37
- /**
38
- * 可搜索?
39
- */
40
- searchable?: boolean;
41
-
42
- /**
43
- * 搜索 API
44
- */
45
- searchApi?: SchemaApi;
46
-
47
- /**
48
- * 左侧的标题文字
49
- */
50
- selectTitle?: string;
51
-
52
- /**
53
- * 右侧结果的标题文字
54
- */
55
- resultTitle?: string;
56
-
57
- /**
58
- * 弹窗大小
59
- */
60
- pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
61
22
  }
62
23
 
63
24
  export interface TabsTransferProps
@@ -75,6 +36,26 @@ export interface TabsTransferProps
75
36
  type: 'tabs-transfer-picker'
76
37
  })
77
38
  export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
39
+ @autobind
40
+ optionItemRender(option: any, states: ItemRenderStates) {
41
+ const {menuTpl, render, data} = this.props;
42
+ const ctx = arguments[2] || {};
43
+
44
+ if (menuTpl) {
45
+ return render(`item/${states.index}`, menuTpl, {
46
+ data: createObject(
47
+ createObject(data, {
48
+ ...states,
49
+ ...ctx
50
+ }),
51
+ option
52
+ )
53
+ });
54
+ }
55
+
56
+ return BaseSelection.itemRender(option, states);
57
+ }
58
+
78
59
  render() {
79
60
  const {
80
61
  className,
@@ -91,7 +72,6 @@ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransfe
91
72
  selectTitle,
92
73
  resultTitle,
93
74
  pickerSize,
94
- columns,
95
75
  leftMode,
96
76
  leftOptions
97
77
  } = this.props;
@@ -114,6 +94,8 @@ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransfe
114
94
  size={pickerSize}
115
95
  leftMode={leftMode}
116
96
  leftOptions={leftOptions}
97
+ optionItemRender={this.optionItemRender}
98
+ resultItemRender={this.resultItemRender}
117
99
  />
118
100
 
119
101
  <Spinner overlay key="info" show={loading} />
@@ -5,20 +5,28 @@ import {
5
5
  } from './Options';
6
6
  import React from 'react';
7
7
  import Transfer from '../../components/Transfer';
8
- import {Option} from './Options';
8
+ import type {Option} from './Options';
9
9
  import {
10
10
  autobind,
11
11
  filterTree,
12
12
  string2regExp,
13
13
  createObject,
14
- findTree
14
+ findTree,
15
+ findTreeIndex,
16
+ getTree,
17
+ spliceTree
15
18
  } from '../../utils/helper';
16
19
  import {Api} from '../../types';
17
20
  import Spinner from '../../components/Spinner';
18
21
  import find from 'lodash/find';
19
22
  import {optionValueCompare} from '../../components/Select';
20
23
  import {resolveVariable} from '../../utils/tpl-builtin';
21
- import {SchemaApi} from '../../Schema';
24
+ import {SchemaApi, SchemaObject} from '../../Schema';
25
+ import {BaseSelection, ItemRenderStates} from '../../components/Selection';
26
+ import {
27
+ ItemRenderStates as ResultItemRenderStates,
28
+ ResultList
29
+ } from '../../components/ResultList';
22
30
 
23
31
  /**
24
32
  * Transfer
@@ -91,6 +99,16 @@ export interface TransferControlSchema extends FormOptionsControl {
91
99
  * 右侧结果的标题文字
92
100
  */
93
101
  resultTitle?: string;
102
+
103
+ /**
104
+ * 用来丰富选项展示
105
+ */
106
+ menuTpl?: SchemaObject;
107
+
108
+ /**
109
+ * 用来丰富值的展示
110
+ */
111
+ valueTpl?: SchemaObject;
94
112
  }
95
113
 
96
114
  export interface BaseTransferProps
@@ -103,7 +121,6 @@ export interface BaseTransferProps
103
121
  | 'descriptionClassName'
104
122
  | 'inputClassName'
105
123
  > {
106
- optionItemRender?: (option: Option) => JSX.Element;
107
124
  resultItemRender?: (option: Option) => JSX.Element;
108
125
  }
109
126
 
@@ -111,7 +128,7 @@ export class BaseTransferRenderer<
111
128
  T extends OptionsControlProps = BaseTransferProps
112
129
  > extends React.Component<T> {
113
130
  @autobind
114
- handleChange(value: Array<Option>) {
131
+ handleChange(value: Array<Option>, optionModified?: boolean) {
115
132
  const {
116
133
  onChange,
117
134
  joinValues,
@@ -125,30 +142,37 @@ export class BaseTransferRenderer<
125
142
  let newOptions = options.concat();
126
143
 
127
144
  if (Array.isArray(value)) {
128
- if (joinValues || extractValue) {
129
- newValue = value.map(item => {
130
- const resolved = findTree(
131
- options,
132
- optionValueCompare(
133
- item[(valueField as string) || 'value'],
134
- (valueField as string) || 'value'
135
- )
136
- );
145
+ newValue = value.map(item => {
146
+ const indexes = findTreeIndex(
147
+ options,
148
+ optionValueCompare(
149
+ item[(valueField as string) || 'value'],
150
+ (valueField as string) || 'value'
151
+ )
152
+ );
137
153
 
138
- if (!resolved) {
139
- newOptions.push(item);
140
- }
154
+ if (!indexes) {
155
+ newOptions.push(item);
156
+ } else if (optionModified) {
157
+ const origin = getTree(newOptions, indexes);
158
+ newOptions = spliceTree(newOptions, indexes, 1, {
159
+ ...origin,
160
+ ...item
161
+ });
162
+ }
141
163
 
142
- return item[(valueField as string) || 'value'];
143
- });
144
- }
164
+ return joinValues || extractValue
165
+ ? item[(valueField as string) || 'value']
166
+ : item;
167
+ });
145
168
 
146
169
  if (joinValues) {
147
170
  newValue = newValue.join(delimiter || ',');
148
171
  }
149
172
  }
150
173
 
151
- newOptions.length > options.length && setOptions(newOptions, true);
174
+ (newOptions.length > options.length || optionModified) &&
175
+ setOptions(newOptions, true);
152
176
  onChange(newValue);
153
177
  }
154
178
 
@@ -220,6 +244,33 @@ export class BaseTransferRenderer<
220
244
  }
221
245
  }
222
246
 
247
+ @autobind
248
+ optionItemRender(option: Option, states: ItemRenderStates) {
249
+ const {menuTpl, render, data} = this.props;
250
+
251
+ if (menuTpl) {
252
+ return render(`item/${states.index}`, menuTpl, {
253
+ data: createObject(createObject(data, states), option)
254
+ });
255
+ }
256
+
257
+ return BaseSelection.itemRender(option, states);
258
+ }
259
+
260
+ @autobind
261
+ resultItemRender(option: Option, states: ResultItemRenderStates) {
262
+ const {valueTpl, render, data} = this.props;
263
+
264
+ if (valueTpl) {
265
+ return render(`value/${states.index}`, valueTpl, {
266
+ onChange: states.onChange,
267
+ data: createObject(createObject(data, states), option)
268
+ });
269
+ }
270
+
271
+ return ResultList.itemRender(option);
272
+ }
273
+
223
274
  @autobind
224
275
  renderCell(
225
276
  column: {
@@ -264,7 +315,7 @@ export class BaseTransferRenderer<
264
315
  disabled,
265
316
  selectTitle,
266
317
  resultTitle,
267
- optionItemRender,
318
+ menuTpl,
268
319
  resultItemRender
269
320
  } = this.props;
270
321
 
@@ -306,8 +357,8 @@ export class BaseTransferRenderer<
306
357
  cellRender={this.renderCell}
307
358
  selectTitle={selectTitle}
308
359
  resultTitle={resultTitle}
309
- optionItemRender={optionItemRender}
310
- resultItemRender={resultItemRender}
360
+ optionItemRender={this.optionItemRender}
361
+ resultItemRender={this.resultItemRender}
311
362
  />
312
363
 
313
364
  <Spinner overlay key="info" show={loading} />
@@ -6,57 +6,23 @@ import {
6
6
  import React from 'react';
7
7
  import {Api} from '../../types';
8
8
  import Spinner from '../../components/Spinner';
9
- import {BaseTransferRenderer} from './Transfer';
9
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
10
10
  import TabsTransfer from '../../components/TabsTransfer';
11
- import {SchemaApi} from '../../Schema';
11
+ import {SchemaApi, SchemaObject} from '../../Schema';
12
12
  import TransferPicker from '../../components/TransferPicker';
13
13
 
14
14
  /**
15
15
  * TransferPicker 穿梭器的弹框形态
16
16
  * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer-picker
17
17
  */
18
- export interface TransferPickerControlSchema extends FormOptionsControl {
18
+ export interface TransferPickerControlSchema
19
+ extends Omit<TransferControlSchema, 'type'> {
19
20
  type: 'transfer-picker';
20
21
  /**
21
22
  * 边框模式,全边框,还是半边框,或者没边框。
22
23
  */
23
24
  borderMode?: 'full' | 'half' | 'none';
24
25
 
25
- /**
26
- * 是否显示剪头
27
- */
28
- showArrow?: boolean;
29
-
30
- /**
31
- * 可排序?
32
- */
33
- sortable?: boolean;
34
-
35
- /**
36
- * 搜索结果展示模式
37
- */
38
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
39
-
40
- /**
41
- * 可搜索?
42
- */
43
- searchable?: boolean;
44
-
45
- /**
46
- * 搜索 API
47
- */
48
- searchApi?: SchemaApi;
49
-
50
- /**
51
- * 左侧的标题文字
52
- */
53
- selectTitle?: string;
54
-
55
- /**
56
- * 右侧结果的标题文字
57
- */
58
- resultTitle?: string;
59
-
60
26
  /**
61
27
  * 弹窗大小
62
28
  */
@@ -136,6 +102,8 @@ export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferPro
136
102
  columns={columns}
137
103
  leftMode={leftMode}
138
104
  leftOptions={leftOptions}
105
+ optionItemRender={this.optionItemRender}
106
+ resultItemRender={this.resultItemRender}
139
107
  />
140
108
 
141
109
  <Spinner overlay key="info" show={loading} />