antd-management-fast-framework 1.12.82 → 1.12.85

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 (63) hide show
  1. package/es/customComponents/AudioUpload/index.js +19 -18
  2. package/es/customComponents/Editor/TinymceWrapper/index.d.ts +1 -1
  3. package/es/customComponents/Editor/TinymceWrapper/index.js +66 -48
  4. package/es/customComponents/FileUpload/index.js +19 -18
  5. package/es/customComponents/FunctionComponent/index.d.ts +1 -1
  6. package/es/customComponents/FunctionComponent/index.js +44 -14
  7. package/es/customComponents/FunctionComponent/index.less +15 -2
  8. package/es/customComponents/VideoUpload/index.js +19 -18
  9. package/es/framework/Common/index.js +5 -1
  10. package/es/framework/DataListView/Base/index.d.ts +10 -6
  11. package/es/framework/DataListView/Base/index.js +44 -8
  12. package/es/framework/DataListView/BatchAction/index.js +22 -16
  13. package/es/framework/DataListView/DensityAction/index.js +27 -19
  14. package/es/utils/core.d.ts +1 -0
  15. package/es/utils/core.js +5 -0
  16. package/es/utils/tools.d.ts +3 -0
  17. package/es/utils/tools.js +37 -0
  18. package/package.json +2 -2
  19. package/es/customComponents/FlowEditor/EditorContextMenu/FlowContextMenu.d.ts +0 -2
  20. package/es/customComponents/FlowEditor/EditorContextMenu/FlowContextMenu.js +0 -57
  21. package/es/customComponents/FlowEditor/EditorContextMenu/KoniContextMenu.d.ts +0 -2
  22. package/es/customComponents/FlowEditor/EditorContextMenu/KoniContextMenu.js +0 -13
  23. package/es/customComponents/FlowEditor/EditorContextMenu/MenuItem.d.ts +0 -2
  24. package/es/customComponents/FlowEditor/EditorContextMenu/MenuItem.js +0 -38
  25. package/es/customComponents/FlowEditor/EditorContextMenu/MindContextMenu.d.ts +0 -2
  26. package/es/customComponents/FlowEditor/EditorContextMenu/MindContextMenu.js +0 -44
  27. package/es/customComponents/FlowEditor/EditorContextMenu/index.d.ts +0 -4
  28. package/es/customComponents/FlowEditor/EditorContextMenu/index.js +0 -31
  29. package/es/customComponents/FlowEditor/EditorContextMenu/index.less +0 -41
  30. package/es/customComponents/FlowEditor/EditorDetailPanel/DetailForm.d.ts +0 -3
  31. package/es/customComponents/FlowEditor/EditorDetailPanel/DetailForm.js +0 -223
  32. package/es/customComponents/FlowEditor/EditorDetailPanel/FlowDetailPanel.d.ts +0 -2
  33. package/es/customComponents/FlowEditor/EditorDetailPanel/FlowDetailPanel.js +0 -45
  34. package/es/customComponents/FlowEditor/EditorDetailPanel/KoniDetailPanel.d.ts +0 -2
  35. package/es/customComponents/FlowEditor/EditorDetailPanel/KoniDetailPanel.js +0 -13
  36. package/es/customComponents/FlowEditor/EditorDetailPanel/MindDetailPanel.d.ts +0 -2
  37. package/es/customComponents/FlowEditor/EditorDetailPanel/MindDetailPanel.js +0 -36
  38. package/es/customComponents/FlowEditor/EditorDetailPanel/index.d.ts +0 -4
  39. package/es/customComponents/FlowEditor/EditorDetailPanel/index.js +0 -31
  40. package/es/customComponents/FlowEditor/EditorDetailPanel/index.less +0 -6
  41. package/es/customComponents/FlowEditor/EditorItemPanel/FlowItemPanel.d.ts +0 -2
  42. package/es/customComponents/FlowEditor/EditorItemPanel/FlowItemPanel.js +0 -65
  43. package/es/customComponents/FlowEditor/EditorItemPanel/KoniItemPanel.d.ts +0 -2
  44. package/es/customComponents/FlowEditor/EditorItemPanel/KoniItemPanel.js +0 -62
  45. package/es/customComponents/FlowEditor/EditorItemPanel/index.d.ts +0 -3
  46. package/es/customComponents/FlowEditor/EditorItemPanel/index.js +0 -23
  47. package/es/customComponents/FlowEditor/EditorItemPanel/index.less +0 -21
  48. package/es/customComponents/FlowEditor/EditorMinimap/index.d.ts +0 -3
  49. package/es/customComponents/FlowEditor/EditorMinimap/index.js +0 -87
  50. package/es/customComponents/FlowEditor/EditorToolbar/FlowToolbar.d.ts +0 -2
  51. package/es/customComponents/FlowEditor/EditorToolbar/FlowToolbar.js +0 -83
  52. package/es/customComponents/FlowEditor/EditorToolbar/KoniToolbar.d.ts +0 -2
  53. package/es/customComponents/FlowEditor/EditorToolbar/KoniToolbar.js +0 -13
  54. package/es/customComponents/FlowEditor/EditorToolbar/MindToolbar.d.ts +0 -2
  55. package/es/customComponents/FlowEditor/EditorToolbar/MindToolbar.js +0 -68
  56. package/es/customComponents/FlowEditor/EditorToolbar/ToolbarButton.d.ts +0 -2
  57. package/es/customComponents/FlowEditor/EditorToolbar/ToolbarButton.js +0 -44
  58. package/es/customComponents/FlowEditor/EditorToolbar/index.d.ts +0 -4
  59. package/es/customComponents/FlowEditor/EditorToolbar/index.js +0 -31
  60. package/es/customComponents/FlowEditor/EditorToolbar/index.less +0 -40
  61. package/es/customComponents/FlowEditor/index.d.ts +0 -2
  62. package/es/customComponents/FlowEditor/index.js +0 -64
  63. package/es/customComponents/FlowEditor/index.less +0 -50
@@ -324,27 +324,26 @@ var AudioUpload = /*#__PURE__*/function (_PureComponent) {
324
324
  onChange: this.handleUploadChange,
325
325
  headers: _objectSpread({}, tokenSet)
326
326
  };
327
-
328
- var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
329
- onClick: this.handleMenuClick
330
- }, /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
331
- key: "changeUrl"
332
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
333
- icon: _constants.iconCollection.swap,
334
- text: "\u66F4\u6362\u5730\u5740"
335
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
336
- key: "copyUrl",
337
- disabled: (0, _tools.stringIsNullOrWhiteSpace)(audioUrl)
338
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
327
+ var items = [{
328
+ key: 'changeUrl',
329
+ label: '更换地址',
330
+ icon: _constants.iconCollection.swap
331
+ }, {
332
+ key: 'copyUrl',
333
+ label: '复制地址',
339
334
  icon: _constants.iconCollection.copy,
340
- text: "\u590D\u5236\u5730\u5740"
341
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Divider, null), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
342
- key: "clearUrl",
343
335
  disabled: (0, _tools.stringIsNullOrWhiteSpace)(audioUrl)
344
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
336
+ }, {
337
+ key: 'clearUrl',
338
+ label: '清空视频',
345
339
  icon: _constants.iconCollection.delete,
346
- text: "\u6E05\u7A7A\u97F3\u9891"
347
- })));
340
+ disabled: (0, _tools.stringIsNullOrWhiteSpace)(audioUrl)
341
+ }];
342
+
343
+ var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
344
+ items: items,
345
+ onClick: this.handleMenuClick
346
+ });
348
347
 
349
348
  var addonAfter = /*#__PURE__*/_react.default.createElement(_space.default, {
350
349
  split: /*#__PURE__*/_react.default.createElement(_divider.default, {
@@ -384,6 +383,8 @@ var AudioUpload = /*#__PURE__*/function (_PureComponent) {
384
383
  placement: "top",
385
384
  title: "\u66F4\u591A\u64CD\u4F5C"
386
385
  }, /*#__PURE__*/_react.default.createElement(_dropdown.default, {
386
+ arrow: true,
387
+ placement: "bottomRight",
387
388
  overlay: menu,
388
389
  style: {
389
390
  border: '0px solid #d9d9d9',
@@ -4,7 +4,7 @@ declare class TinymceWrapper extends React.PureComponent<any, any, any> {
4
4
  constructor(props: any, context: any);
5
5
  editor: React.RefObject<any>;
6
6
  buildConfig: () => any;
7
- imageUploadHandler: (blobInfo: any, success: any, failure: any, progress: any) => void;
7
+ imageUploadHandler: (blobInfo: any, progress: any) => Promise<any>;
8
8
  handleEditorChange: (newValue: any, editor: any) => void;
9
9
  render(): JSX.Element;
10
10
  }
@@ -68,15 +68,15 @@ var TinymceWrapper = /*#__PURE__*/function (_PureComponent) {
68
68
 
69
69
  _this.buildConfig = function () {
70
70
  var initConfig = _this.props.initConfig;
71
- var useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
72
71
 
73
72
  var config = _objectSpread(_objectSpread({}, {
74
73
  language: 'zh_CN',
75
74
  height: 690,
76
- plugins_ignore: 'tinydrive powerpaste imagetools advcode formatpainter pageembed permanentpen casechange checklist advtable export tinymcespellchecker linkchecker mentions tinycomments toc',
77
- plugins: 'print preview importcss searchreplace autolink autosave save directionality visualblocks visualchars fullscreen image link media mediaembed template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount a11ychecker textpattern noneditable help charmap quickbars emoticons',
75
+ // plugins_ignore:
76
+ // 'tinydrive powerpaste imagetools advcode formatpainter pageembed permanentpen casechange checklist advtable export tinymcespellchecker linkchecker mentions tinycomments toc',
77
+ plugins: 'preview importcss searchreplace autolink autosave save directionality visualblocks visualchars fullscreen image link media template codesample code table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons autoresize',
78
78
  mobile: {
79
- plugins: 'print preview importcss tinydrive searchreplace autolink autosave save directionality visualblocks visualchars fullscreen image link media mediaembed template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount a11ychecker textpattern noneditable help charmap quickbars emoticons'
79
+ plugins: 'preview importcss searchreplace autolink autosave save directionality visualblocks visualchars fullscreen image link media template codesample code table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons autoresize'
80
80
  },
81
81
  menu: {
82
82
  tc: {
@@ -85,7 +85,7 @@ var TinymceWrapper = /*#__PURE__*/function (_PureComponent) {
85
85
  }
86
86
  },
87
87
  menubar: 'file edit view insert format tools table tc help',
88
- toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | a11ycheck ltr rtl | showcomments addcomment',
88
+ toolbar: 'undo redo bold italic underline strikethrough fontselect fontsizeselect formatselect alignleft aligncenter alignright alignjustify outdent indent numlist bullist forecolor backcolor removeformat visualblocks visualchars table tabledelete tableprops tablerowprops tablecellprops tableinsertrowbefore tableinsertrowafter tabledeleterow tableinsertcolbefore tableinsertcolafter tabledeletecol searchreplace pagebreak nonbreaking charmap emoticons fullscreen preview wordcount save insertdatetime insertfile image media template link anchor codesample code ltr rtl showcomments addcomment restoredraft help',
89
89
  autosave_ask_before_unload: true,
90
90
  autosave_interval: '30s',
91
91
  autosave_prefix: '{path}{query}-{id}-',
@@ -119,67 +119,85 @@ var TinymceWrapper = /*#__PURE__*/function (_PureComponent) {
119
119
  // spellchecker_ignore_list: ['Ephox', 'Moxiecode'],
120
120
  // tinycomments_mode: 'embedded',
121
121
  content_style: '.mymention{ color: gray; }',
122
- contextmenu_ignore: 'imagetools configurepermanentpen',
122
+ // contextmenu_ignore: 'imagetools configurepermanentpen',
123
123
  contextmenu: 'link image table',
124
124
  a11y_advanced_options: true,
125
- skin: useDarkMode ? 'oxide-dark' : 'oxide',
126
- content_css: useDarkMode ? 'dark' : 'default',
125
+ skin: 'oxide',
126
+ content_css: 'default',
127
127
  // mentions_selector: '.mymention',
128
128
  // mentions_item_type: 'profile',
129
129
  automatic_uploads: true,
130
130
  images_upload_url: '',
131
+ min_height: 700,
131
132
  images_upload_handler: _this.imageUploadHandler
132
133
  }), initConfig || {});
133
134
 
135
+ (0, _tools.recordObject)({
136
+ tinymceCustomConfig: initConfig || {},
137
+ tinymceMergeConfig: config
138
+ });
134
139
  return config;
135
140
  };
136
141
 
137
- _this.imageUploadHandler = function (blobInfo, success, failure, progress) {
138
- var imagesUploadUrl = _this.props.imagesUploadUrl;
139
- var corsUrl = (0, _tools.corsTarget)();
140
- var images_upload_url = "".concat(corsUrl).concat(imagesUploadUrl);
141
- var xhr, formData;
142
- xhr = new XMLHttpRequest();
143
- xhr.withCredentials = false;
144
- xhr.open('POST', images_upload_url);
145
- xhr.setRequestHeader((0, _globalStorageAssist.getTokenKeyName)(), (0, _globalStorageAssist.getToken)() || 'anonymous');
146
-
147
- xhr.upload.onprogress = function (e) {
148
- progress(e.loaded / e.total * 100);
149
- };
150
-
151
- xhr.onload = function () {
152
- if (xhr.status === 403) {
153
- failure('HTTP Error: ' + xhr.status, {
154
- remove: true
155
- });
156
- return;
157
- }
142
+ _this.imageUploadHandler = function (blobInfo, progress) {
143
+ return new Promise(function (resolve, reject) {
144
+ var imagesUploadUrl = _this.props.imagesUploadUrl;
145
+ var corsUrl = (0, _tools.corsTarget)();
146
+ var images_upload_url = "".concat(corsUrl).concat(imagesUploadUrl);
147
+ var xhr, formData;
148
+ xhr = new XMLHttpRequest();
149
+ xhr.withCredentials = false;
150
+ xhr.open('POST', images_upload_url);
151
+ xhr.setRequestHeader((0, _globalStorageAssist.getTokenKeyName)(), (0, _globalStorageAssist.getToken)() || 'anonymous');
152
+
153
+ xhr.upload.onprogress = function (e) {
154
+ progress(e.loaded / e.total * 100);
155
+ };
156
+
157
+ xhr.onload = function () {
158
+ if (xhr.status === 403) {
159
+ reject({
160
+ message: 'HTTP Error: ' + xhr.status,
161
+ remove: true
162
+ });
163
+ return;
164
+ }
158
165
 
159
- if (xhr.status < 200 || xhr.status >= 300) {
160
- failure('HTTP Error: ' + xhr.status);
161
- return;
162
- }
166
+ if (xhr.status < 200 || xhr.status >= 300) {
167
+ reject('HTTP Error: ' + xhr.status);
168
+ return;
169
+ }
163
170
 
164
- var v = (0, _requestAssistor.pretreatmentRemoteSingleData)(JSON.parse(xhr.responseText));
165
- var dataSuccess = v.dataSuccess;
171
+ var json = {};
166
172
 
167
- if (!dataSuccess) {
168
- failure("\u56FE\u7247\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u786E\u8BA4\u4E0A\u4F20\u5730\u5740\u6709\u6548\u53EF\u7528,\u5F53\u524D\u4E0A\u4F20\u5730\u5740\u4E3A: ".concat(images_upload_url));
169
- return;
170
- }
173
+ try {
174
+ json = JSON.parse(xhr.responseText);
175
+ } catch (e) {
176
+ reject("\u56FE\u7247\u4E0A\u4F20\u5931\u8D25, \u8FD4\u56DE\u6570\u636E\u975EJson\u683C\u5F0F, \u8BF7\u68C0\u67E5");
177
+ (0, _tools.notifyError)(xhr.responseText);
178
+ return;
179
+ }
180
+
181
+ var v = (0, _requestAssistor.pretreatmentRemoteSingleData)(json);
182
+ var dataSuccess = v.dataSuccess;
183
+
184
+ if (!dataSuccess) {
185
+ reject("\u56FE\u7247\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u786E\u8BA4\u4E0A\u4F20\u5730\u5740\u6709\u6548\u53EF\u7528,\u5F53\u524D\u4E0A\u4F20\u5730\u5740\u4E3A: ".concat(images_upload_url));
186
+ return;
187
+ }
171
188
 
172
- var imageUrl = v.data.imageUrl;
173
- success(imageUrl || '');
174
- };
189
+ var imageUrl = v.data.imageUrl;
190
+ resolve(imageUrl || '');
191
+ };
175
192
 
176
- xhr.onerror = function () {
177
- failure('图片上传失败,请确认上传地址有效可用. Code: ' + xhr.status);
178
- };
193
+ xhr.onerror = function () {
194
+ reject('图片上传失败,请确认上传地址有效可用. Code: ' + xhr.status);
195
+ };
179
196
 
180
- formData = new FormData();
181
- formData.append('file', blobInfo.blob(), blobInfo.filename());
182
- xhr.send(formData);
197
+ formData = new FormData();
198
+ formData.append('file', blobInfo.blob(), blobInfo.filename());
199
+ xhr.send(formData);
200
+ });
183
201
  };
184
202
 
185
203
  _this.handleEditorChange = function (newValue, editor) {
@@ -281,27 +281,26 @@ var VideoUpload = /*#__PURE__*/function (_PureComponent) {
281
281
  onChange: this.handleUploadChange,
282
282
  headers: _objectSpread({}, tokenSet)
283
283
  };
284
-
285
- var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
286
- onClick: this.handleMenuClick
287
- }, /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
288
- key: "changeUrl"
289
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
290
- icon: _constants.iconCollection.swap,
291
- text: "\u66F4\u6362\u5730\u5740"
292
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
293
- key: "copyUrl",
294
- disabled: (0, _tools.stringIsNullOrWhiteSpace)(fileUrl)
295
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
284
+ var items = [{
285
+ key: 'changeUrl',
286
+ label: '更换地址',
287
+ icon: _constants.iconCollection.swap
288
+ }, {
289
+ key: 'copyUrl',
290
+ label: '复制地址',
296
291
  icon: _constants.iconCollection.copy,
297
- text: "\u590D\u5236\u5730\u5740"
298
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Divider, null), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
299
- key: "clearUrl",
300
292
  disabled: (0, _tools.stringIsNullOrWhiteSpace)(fileUrl)
301
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
293
+ }, {
294
+ key: 'clearUrl',
295
+ label: '清空视频',
302
296
  icon: _constants.iconCollection.delete,
303
- text: "\u6E05\u7A7A\u6587\u4EF6"
304
- })));
297
+ disabled: (0, _tools.stringIsNullOrWhiteSpace)(fileUrl)
298
+ }];
299
+
300
+ var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
301
+ items: items,
302
+ onClick: this.handleMenuClick
303
+ });
305
304
 
306
305
  var addonAfter = /*#__PURE__*/_react.default.createElement(_space.default, {
307
306
  split: /*#__PURE__*/_react.default.createElement(_divider.default, {
@@ -325,6 +324,8 @@ var VideoUpload = /*#__PURE__*/function (_PureComponent) {
325
324
  placement: "top",
326
325
  title: "\u66F4\u591A\u64CD\u4F5C"
327
326
  }, /*#__PURE__*/_react.default.createElement(_dropdown.default, {
327
+ arrow: true,
328
+ placement: "bottomRight",
328
329
  overlay: menu,
329
330
  style: {
330
331
  border: '0px solid #d9d9d9',
@@ -388,7 +388,7 @@ export function buildFormTimePicker({ label, name, required, helper, timePickerP
388
388
  export function buildColumnList({ columnList, attachedTargetName }: {
389
389
  columnList: any;
390
390
  attachedTargetName?: string | undefined;
391
- }): any;
391
+ }): any[];
392
392
  export function buildColumnItem({ column: columnConfig, attachedTargetName, }: {
393
393
  column: any;
394
394
  attachedTargetName?: string | undefined;
@@ -584,6 +584,8 @@ function buildDropdown(_ref4) {
584
584
  var otherProps = tooltipAdjust ? {} : {
585
585
  key: key || (0, _tools.getGuid)()
586
586
  };
587
+ var placementAdjust = (0, _tools.lowerFirst)(placementDropdown || 'bottomRight');
588
+ var overlayClassNameAdjust = placementAdjust.startsWith('bottom') ? _index.default.dropdownExpandOverlayBottom : placementAdjust.startsWith('top') ? _index.default.dropdownExpandOverlayTop : {};
587
589
  var hasHandleButtonClick = false;
588
590
 
589
591
  if ((handleButtonClick || null) != null) {
@@ -680,7 +682,7 @@ function buildDropdown(_ref4) {
680
682
  text: text || ''
681
683
  }))),
682
684
  right: /*#__PURE__*/_react.default.createElement(_popover.default, _extends({}, otherProps, {
683
- placement: placementDropdown || 'bottomRight',
685
+ placement: placementAdjust,
684
686
  arrow: arrow,
685
687
  content: buildMenu({
686
688
  handleData: r,
@@ -688,7 +690,7 @@ function buildDropdown(_ref4) {
688
690
  items: items
689
691
  }),
690
692
  title: itemPanelTitle,
691
- overlayClassName: _index.default.dropdownExpandOverlay
693
+ overlayClassName: overlayClassNameAdjust
692
694
  }), /*#__PURE__*/_react.default.createElement(_button.default, {
693
695
  style: {
694
696
  height: '100%',
@@ -731,7 +733,7 @@ function buildDropdown(_ref4) {
731
733
  text: text || ''
732
734
  })),
733
735
  right: /*#__PURE__*/_react.default.createElement(_popover.default, _extends({}, otherProps, {
734
- placement: placementDropdown || 'bottomRight',
736
+ placement: placementAdjust,
735
737
  arrow: arrow,
736
738
  content: buildMenu({
737
739
  handleData: r,
@@ -739,7 +741,7 @@ function buildDropdown(_ref4) {
739
741
  items: items
740
742
  }),
741
743
  title: itemPanelTitle,
742
- overlayClassName: _index.default.dropdownExpandOverlay
744
+ overlayClassName: overlayClassNameAdjust
743
745
  }), /*#__PURE__*/_react.default.createElement(_button.default, {
744
746
  style: {
745
747
  height: '100%',
@@ -765,7 +767,7 @@ function buildDropdown(_ref4) {
765
767
  icon: icon || null,
766
768
  text: text || ''
767
769
  })) : /*#__PURE__*/_react.default.createElement(_popover.default, _extends({}, otherProps, {
768
- placement: placementDropdown || 'bottomRight',
770
+ placement: placementAdjust,
769
771
  arrow: arrow,
770
772
  content: buildMenu({
771
773
  handleData: r,
@@ -773,7 +775,7 @@ function buildDropdown(_ref4) {
773
775
  items: items
774
776
  }),
775
777
  title: itemPanelTitle,
776
- overlayClassName: _index.default.dropdownExpandOverlay
778
+ overlayClassName: overlayClassNameAdjust
777
779
  }), /*#__PURE__*/_react.default.createElement(_button.default, {
778
780
  type: typeSource || 'default',
779
781
  size: size !== null && size !== void 0 ? size : 'default'
@@ -831,6 +833,7 @@ function buildMenu(_ref5) {
831
833
  disabled: false,
832
834
  hidden: false,
833
835
  type: _constants.dropdownExpandItemType.item,
836
+ color: null,
834
837
  confirm: false
835
838
  }), o || {});
836
839
 
@@ -927,7 +930,8 @@ function buildMenu(_ref5) {
927
930
  text = o.text,
928
931
  disabled = o.disabled,
929
932
  hidden = o.hidden,
930
- confirm = o.confirm;
933
+ confirm = o.confirm,
934
+ color = o.color;
931
935
 
932
936
  if ((0, _tools.stringIsNullOrWhiteSpace)(key)) {
933
937
  (0, _tools.showErrorMessage)({
@@ -977,7 +981,10 @@ function buildMenu(_ref5) {
977
981
  disabled: disabled
978
982
  }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
979
983
  icon: icon || _constants.iconCollection.edit,
980
- text: text
984
+ text: text,
985
+ style: (color || null) == null ? null : {
986
+ color: color
987
+ }
981
988
  })));
982
989
  }
983
990
 
@@ -1003,16 +1010,21 @@ function buildMenu(_ref5) {
1003
1010
  }
1004
1011
  }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
1005
1012
  icon: icon || _constants.iconCollection.edit,
1006
- text: text
1013
+ text: text,
1014
+ style: (color || null) == null ? null : {
1015
+ color: color
1016
+ }
1007
1017
  }));
1008
1018
  }
1009
1019
 
1010
1020
  if (type === _constants.dropdownExpandItemType.divider) {
1011
1021
  return /*#__PURE__*/_react.default.createElement(_divider.default, {
1012
1022
  key: key,
1013
- style: {
1023
+ style: _objectSpread({
1014
1024
  margin: 0
1015
- }
1025
+ }, (color || null) == null ? {} : {
1026
+ borderColor: color
1027
+ })
1016
1028
  });
1017
1029
  }
1018
1030
 
@@ -2881,12 +2893,25 @@ function buildColumnList(_ref51) {
2881
2893
  var columnList = _ref51.columnList,
2882
2894
  _ref51$attachedTarget = _ref51.attachedTargetName,
2883
2895
  attachedTargetName = _ref51$attachedTarget === void 0 ? '' : _ref51$attachedTarget;
2884
- return ((0, _tools.isArray)(columnList) ? columnList : []).map(function (o) {
2885
- return buildColumnItem({
2896
+ var list = [];
2897
+ ((0, _tools.isArray)(columnList) ? columnList : []).forEach(function (o) {
2898
+ var c = buildColumnItem({
2886
2899
  column: o,
2887
2900
  attachedTargetName: attachedTargetName
2888
2901
  });
2902
+
2903
+ if ((c || null) != null) {
2904
+ var _hidden$c = _objectSpread(_objectSpread({}, {
2905
+ hidden: false
2906
+ }), c),
2907
+ hidden = _hidden$c.hidden;
2908
+
2909
+ if (!hidden) {
2910
+ list.push(c);
2911
+ }
2912
+ }
2889
2913
  });
2914
+ return list;
2890
2915
  }
2891
2916
 
2892
2917
  function buildColumnItem(_ref52) {
@@ -3178,7 +3203,12 @@ function buildColumnItem(_ref52) {
3178
3203
  }
3179
3204
 
3180
3205
  var operateConfig = d.configBuilder(value, record, index);
3181
- return buildDropdown(operateConfig);
3206
+
3207
+ if ((operateConfig || null) == null) {
3208
+ return null;
3209
+ } else {
3210
+ return buildDropdown(operateConfig);
3211
+ }
3182
3212
  }
3183
3213
 
3184
3214
  throw new Error("\u65E0\u6548\u7684\u6E32\u67D3\u6A21\u5F0F\uFF1A".concat(facadeMode));
@@ -16,12 +16,25 @@
16
16
  }
17
17
  }
18
18
 
19
- .dropdownExpandOverlay {
19
+ .dropdownExpandOverlayBottom {
20
20
  padding: 0;
21
21
 
22
22
  :global {
23
23
  .ant-popover-inner-content {
24
- margin-top: 12px;
24
+ margin-top: 10px;
25
+ padding: 0;
26
+ background-color: #fff;
27
+ border-radius: 4px;
28
+ }
29
+ }
30
+ }
31
+
32
+ .dropdownExpandOverlayTop {
33
+ padding: 0;
34
+
35
+ :global {
36
+ .ant-popover-inner-content {
37
+ margin-bottom: 10px;
25
38
  padding: 0;
26
39
  background-color: #fff;
27
40
  border-radius: 4px;
@@ -324,27 +324,26 @@ var VideoUpload = /*#__PURE__*/function (_PureComponent) {
324
324
  onChange: this.handleUploadChange,
325
325
  headers: _objectSpread({}, tokenSet)
326
326
  };
327
-
328
- var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
329
- onClick: this.handleMenuClick
330
- }, /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
331
- key: "changeUrl"
332
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
333
- icon: _constants.iconCollection.swap,
334
- text: "\u66F4\u6362\u5730\u5740"
335
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
336
- key: "copyUrl",
337
- disabled: (0, _tools.stringIsNullOrWhiteSpace)(videoUrl)
338
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
327
+ var items = [{
328
+ key: 'changeUrl',
329
+ label: '更换地址',
330
+ icon: _constants.iconCollection.swap
331
+ }, {
332
+ key: 'copyUrl',
333
+ label: '复制地址',
339
334
  icon: _constants.iconCollection.copy,
340
- text: "\u590D\u5236\u5730\u5740"
341
- })), /*#__PURE__*/_react.default.createElement(_menu.default.Divider, null), /*#__PURE__*/_react.default.createElement(_menu.default.Item, {
342
- key: "clearUrl",
343
335
  disabled: (0, _tools.stringIsNullOrWhiteSpace)(videoUrl)
344
- }, /*#__PURE__*/_react.default.createElement(_IconInfo.default, {
336
+ }, {
337
+ key: 'clearUrl',
338
+ label: '清空视频',
345
339
  icon: _constants.iconCollection.delete,
346
- text: "\u6E05\u7A7A\u89C6\u9891"
347
- })));
340
+ disabled: (0, _tools.stringIsNullOrWhiteSpace)(videoUrl)
341
+ }];
342
+
343
+ var menu = /*#__PURE__*/_react.default.createElement(_menu.default, {
344
+ items: items,
345
+ onClick: this.handleMenuClick
346
+ });
348
347
 
349
348
  var addonAfter = /*#__PURE__*/_react.default.createElement(_space.default, {
350
349
  split: /*#__PURE__*/_react.default.createElement(_divider.default, {
@@ -384,6 +383,8 @@ var VideoUpload = /*#__PURE__*/function (_PureComponent) {
384
383
  placement: "top",
385
384
  title: "\u66F4\u591A\u64CD\u4F5C"
386
385
  }, /*#__PURE__*/_react.default.createElement(_dropdown.default, {
386
+ arrow: true,
387
+ placement: "bottomRight",
387
388
  overlay: menu,
388
389
  style: {
389
390
  border: '0px solid #d9d9d9',
@@ -1804,7 +1804,11 @@ var Common = /*#__PURE__*/function (_Core) {
1804
1804
  md: lg || md,
1805
1805
  sm: lg || sm,
1806
1806
  xs: lg || xs
1807
- }, /*#__PURE__*/_react.default.createElement(_divider.default, _objectSpread(_objectSpread({}, {}), contentItem.otherProps || {}), (0, _tools.stringIsNullOrWhiteSpace)(contentItem.text || '') ? null : contentItem.text));
1807
+ }, /*#__PURE__*/_react.default.createElement(_divider.default, _objectSpread(_objectSpread({}, {
1808
+ style: {
1809
+ margin: '4px 0'
1810
+ }
1811
+ }), contentItem.otherProps || {}), (contentItem.text || null) == null ? null : contentItem.text));
1808
1812
  }
1809
1813
 
1810
1814
  if (type === _constants.cardConfig.contentItemType.customGrid) {
@@ -13,6 +13,9 @@ declare class ListBase extends AuthorizationWrapper {
13
13
  affixPaginationBar: boolean;
14
14
  formRef: React.RefObject<any>;
15
15
  pageSizeAdditional: number;
16
+ columnOperateVisible: boolean;
17
+ columnOperateWidth: number;
18
+ columnOperateFixed: string;
16
19
  lastLoadParams: any;
17
20
  columnsOtherConfig: any[];
18
21
  state: any;
@@ -39,11 +42,10 @@ declare class ListBase extends AuthorizationWrapper {
39
42
  afterSetSearchFormFieldsValue: (v: any) => void;
40
43
  getPageName: () => any;
41
44
  getColumnWrapper: () => never[];
42
- buildColumnFromWrapper: () => any;
43
- buildColumnList: (list: any) => any;
44
- buildColumnItem: (o: any) => any;
45
- getColumn: () => any;
46
- getColumnMerged: () => any;
45
+ buildColumnFromWrapper: () => any[];
46
+ buildColumnList: (list: any) => any[];
47
+ getColumn: () => any[];
48
+ getColumnMerged: () => any[];
47
49
  handleSearchReset: () => void;
48
50
  handleAdditionalSearchReset: () => void;
49
51
  handleSearch: () => void;
@@ -75,7 +77,7 @@ declare class ListBase extends AuthorizationWrapper {
75
77
  establishTableExpandableConfig: () => null;
76
78
  restoreColumnsOtherConfigArray: () => void;
77
79
  buildTableConfig: () => {
78
- columns: any;
80
+ columns: any[];
79
81
  size: any;
80
82
  tableLayout: string;
81
83
  expandable: null;
@@ -210,6 +212,8 @@ declare class ListBase extends AuthorizationWrapper {
210
212
  renderContentArea: () => JSX.Element;
211
213
  establishPageContentLayoutSiderConfig: () => {};
212
214
  establishPageContentLayoutConfig: () => {};
215
+ establishListItemDropdownConfig: (record: any) => null;
216
+ renderListItemDropdown: (record: any) => JSX.Element | null;
213
217
  renderPageContent: () => JSX.Element;
214
218
  renderPageBody: () => JSX.Element;
215
219
  renderFurther(): JSX.Element;
@@ -173,6 +173,9 @@ var ListBase = /*#__PURE__*/function (_AuthorizationWrapper) {
173
173
  _this.affixPaginationBar = true;
174
174
  _this.formRef = /*#__PURE__*/_react.default.createRef();
175
175
  _this.pageSizeAdditional = 0;
176
+ _this.columnOperateVisible = true;
177
+ _this.columnOperateWidth = 106;
178
+ _this.columnOperateFixed = 'right';
176
179
 
177
180
  _this.afterDidMount = function () {
178
181
  var pageSize = _this.state.pageSize;
@@ -274,7 +277,35 @@ var ListBase = /*#__PURE__*/function (_AuthorizationWrapper) {
274
277
 
275
278
  _this.buildColumnFromWrapper = function () {
276
279
  var list = _this.getColumnWrapper() || [];
277
- return _this.buildColumnList(list);
280
+ var hasCustomOperate = false;
281
+ list.forEach(function (o) {
282
+ var _dataTarget$o = _objectSpread(_objectSpread({}, {
283
+ dataTarget: {}
284
+ }), o),
285
+ dt = _dataTarget$o.dataTarget;
286
+
287
+ var _name$dt = _objectSpread(_objectSpread({}, {
288
+ name: ''
289
+ }), dt),
290
+ name = _name$dt.name;
291
+
292
+ if (name === _constants.formNameCollection.customOperate.name) {
293
+ hasCustomOperate = true;
294
+ }
295
+ });
296
+ return _this.buildColumnList([].concat(_toConsumableArray(list), _toConsumableArray(hasCustomOperate ? [] : [{
297
+ dataTarget: _constants.formNameCollection.customOperate,
298
+ width: _this.columnOperateWidth,
299
+ fixed: _this.columnOperateFixed,
300
+ showRichFacade: true,
301
+ facadeMode: _constants.columnFacadeMode.dropdown,
302
+ hidden: !_this.columnOperateVisible,
303
+ configBuilder: function configBuilder(val, record) {
304
+ var o = _this.establishListItemDropdownConfig(record);
305
+
306
+ return o || null;
307
+ }
308
+ }])));
278
309
  };
279
310
 
280
311
  _this.buildColumnList = function (list) {
@@ -284,13 +315,6 @@ var ListBase = /*#__PURE__*/function (_AuthorizationWrapper) {
284
315
  });
285
316
  };
286
317
 
287
- _this.buildColumnItem = function (o) {
288
- return (0, _FunctionComponent.buildColumnItem)({
289
- column: o,
290
- attachedTargetName: _this.constructor.name
291
- });
292
- };
293
-
294
318
  _this.getColumn = function () {
295
319
  return _this.buildColumnFromWrapper();
296
320
  };
@@ -1389,6 +1413,18 @@ var ListBase = /*#__PURE__*/function (_AuthorizationWrapper) {
1389
1413
  return {};
1390
1414
  };
1391
1415
 
1416
+ _this.establishListItemDropdownConfig = function (record) {
1417
+ if ((record || null) == null) {
1418
+ return null;
1419
+ }
1420
+
1421
+ return null;
1422
+ };
1423
+
1424
+ _this.renderListItemDropdown = function (record) {
1425
+ return (0, _FunctionComponent.buildDropdown)(_this.establishListItemDropdownConfig(record));
1426
+ };
1427
+
1392
1428
  _this.renderPageContent = function () {
1393
1429
  var siderArea = _this.renderSiderArea();
1394
1430