@oinone/kunlun-vue-admin-base 6.3.8 → 6.4.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 (815) hide show
  1. package/dist/oinone-kunlun-vue-admin-base.css +1 -1
  2. package/dist/oinone-kunlun-vue-admin-base.esm.js +51429 -38937
  3. package/dist/oinone-kunlun-vue-admin-base.scss +1 -1
  4. package/dist/types/src/action/client-actions/SaveDraftActionWidget.d.ts +75 -0
  5. package/dist/types/src/action/client-actions/TableAddOneAction.d.ts +2 -2
  6. package/dist/types/src/action/client-actions/TableCopyOneAction.d.ts +2 -2
  7. package/dist/types/src/action/client-actions/TableEditOneAction.d.ts +2 -0
  8. package/dist/types/src/action/client-actions/index.d.ts +1 -0
  9. package/dist/types/src/action/component/action/ActionWidget.d.ts +31 -4
  10. package/dist/types/src/action/component/action/DefaultAction.vue.d.ts +9 -0
  11. package/dist/types/src/action/component/action/typing.d.ts +8 -0
  12. package/dist/types/src/action/component/action-bar/ActionBarWidget.d.ts +15 -3
  13. package/dist/types/src/action/component/action-bar/DefaultActionBar.vue.d.ts +12 -0
  14. package/dist/types/src/action/component/action-bar/DefaultMoreActionItem.vue.d.ts +54 -0
  15. package/dist/types/src/action/component/action-bar/RowActionBarWidget.d.ts +4 -0
  16. package/dist/types/src/action/component/index.d.ts +1 -0
  17. package/dist/types/src/action/component/typing/action-bar.d.ts +10 -0
  18. package/dist/types/src/action/component/typing/index.d.ts +1 -0
  19. package/dist/types/src/action/composition-actions/CompositionAction.vue.d.ts +9 -0
  20. package/dist/types/src/action/server-actions/ServerActionWidget.d.ts +3 -0
  21. package/dist/types/src/action/view-actions/ExportActionWidget/ExportActionWidget.vue.d.ts +9 -0
  22. package/dist/types/src/action/view-actions/ImportActionWidget/ImportActionWidget.vue.d.ts +9 -0
  23. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordDetail.vue.d.ts +3 -7
  24. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordDetailList.vue.d.ts +8 -1
  25. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordDetailListWidget.d.ts +1 -0
  26. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordViewAction.d.ts +1 -0
  27. package/dist/types/src/basic/BaseSearchWidget.d.ts +3 -0
  28. package/dist/types/src/basic/common/BaseDataWidget.d.ts +1 -1
  29. package/dist/types/src/basic/common/BaseRuntimePropertiesWidget.d.ts +3 -1
  30. package/dist/types/src/basic/constant/call-chaining.d.ts +10 -2
  31. package/dist/types/src/basic/element/BaseElementListViewWidget.d.ts +33 -8
  32. package/dist/types/src/basic/element/BaseElementObjectViewWidget.d.ts +17 -1
  33. package/dist/types/src/basic/field/FormFieldWidget.d.ts +8 -1
  34. package/dist/types/src/basic/field/complex/select/BaseSelectFieldWidget.d.ts +36 -1
  35. package/dist/types/src/basic/field/complex/select/FormSelectComplexFieldWidget.d.ts +11 -8
  36. package/dist/types/src/basic/field/complex/select/SelectFieldWidget.d.ts +23 -0
  37. package/dist/types/src/basic/field/complex/select/SelectModalFieldWidget.d.ts +22 -0
  38. package/dist/types/src/basic/field/complex/select/SelectTableFieldWidget.d.ts +21 -0
  39. package/dist/types/src/basic/field/complex/select/index.d.ts +3 -0
  40. package/dist/types/src/basic/field/complex/subview/FormSubviewListFieldWidget.d.ts +1 -1
  41. package/dist/types/src/basic/field/complex/table/TableComplexFieldWidget.d.ts +1 -0
  42. package/dist/types/src/basic/form/BaseFormWidget.d.ts +2 -0
  43. package/dist/types/src/basic/form/DefaultForm.vue.d.ts +7 -0
  44. package/dist/types/src/basic/form/index.d.ts +0 -1
  45. package/dist/types/src/basic/form-item/BaseFormItemWidget.d.ts +3 -0
  46. package/dist/types/src/basic/form-item/DefaultFormItem.vue.d.ts +7 -0
  47. package/dist/types/src/basic/gallery-item/DefaultGalleryItem.vue.d.ts +6 -0
  48. package/dist/types/src/basic/gallery-item/props.d.ts +5 -0
  49. package/dist/types/src/basic/table/BaseTableWidget.d.ts +130 -27
  50. package/dist/types/src/basic/table-column/BaseTableColumnWidget.d.ts +42 -6
  51. package/dist/types/src/basic/table-column/BaseTableFieldWidget.d.ts +26 -3
  52. package/dist/types/src/basic/table-column/DefaultGroupCell.vue.d.ts +58 -0
  53. package/dist/types/src/basic/table-column/DefaultQuickOperationColumn.vue.d.ts +25 -0
  54. package/dist/types/src/basic/table-column/DefaultTableColumn.vue.d.ts +43 -11
  55. package/dist/types/src/basic/token/BaseActionWidget.d.ts +7 -2
  56. package/dist/types/src/basic/token/BaseFieldWidget.d.ts +7 -0
  57. package/dist/types/src/basic/token/BaseView.d.ts +6 -1
  58. package/dist/types/src/basic/types/typing.d.ts +8 -0
  59. package/dist/types/src/components/index.d.ts +8 -0
  60. package/dist/types/src/components/oio-full-screen/OioFullScreen.vue.d.ts +21 -0
  61. package/dist/types/src/components/oio-full-screen/index.d.ts +1 -0
  62. package/dist/types/src/components/oio-manage-group/index.d.ts +1 -1
  63. package/dist/types/src/components/oio-simple-pagination/OioSimplePagination.vue.d.ts +39 -0
  64. package/dist/types/src/components/oio-simple-pagination/index.d.ts +1 -0
  65. package/dist/types/src/components/quick-utils/CheckedHelper.d.ts +5 -0
  66. package/dist/types/src/components/quick-utils/index.d.ts +5 -0
  67. package/dist/types/src/components/quick-utils/useListChecked.d.ts +25 -0
  68. package/dist/types/src/components/quick-utils/useListState.d.ts +45 -0
  69. package/dist/types/src/components/quick-utils/useTreeChecked.d.ts +26 -0
  70. package/dist/types/src/components/quick-utils/useTreeState.d.ts +52 -0
  71. package/dist/types/src/components/select/base/BaseSelect.vue.d.ts +223 -0
  72. package/dist/types/src/components/select/base/DefaultSelect.vue.d.ts +203 -0
  73. package/dist/types/src/components/select/base/index.d.ts +4 -0
  74. package/dist/types/src/components/select/base/props.d.ts +174 -0
  75. package/dist/types/src/components/select/base/typing.d.ts +6 -0
  76. package/dist/types/src/components/select/company-select/CompanySelect.vue.d.ts +202 -0
  77. package/dist/types/src/components/select/company-select/index.d.ts +2 -0
  78. package/dist/types/src/components/select/company-select/render/index.d.ts +1 -0
  79. package/dist/types/src/components/select/company-select/render/logo.d.ts +4 -0
  80. package/dist/types/src/components/select/company-select/render/optionRender.d.ts +15 -0
  81. package/dist/types/src/components/select/company-select/render/style1.d.ts +4 -0
  82. package/dist/types/src/components/select/company-select/render/style2.d.ts +4 -0
  83. package/dist/types/src/components/select/department-select/DepartmentModal.vue.d.ts +333 -0
  84. package/dist/types/src/components/select/department-select/DepartmentSelect.vue.d.ts +232 -0
  85. package/dist/types/src/components/select/department-select/DepartmentTree.vue.d.ts +103 -0
  86. package/dist/types/src/components/select/department-select/constant.d.ts +4 -0
  87. package/dist/types/src/components/select/department-select/index.d.ts +3 -0
  88. package/dist/types/src/components/select/department-select/init.d.ts +25 -0
  89. package/dist/types/src/components/select/employee-select/DepartmentEmployeeSelectPanel.vue.d.ts +114 -0
  90. package/dist/types/src/components/select/employee-select/EmployeeList.vue.d.ts +85 -0
  91. package/dist/types/src/components/select/employee-select/EmployeeModal.vue.d.ts +345 -0
  92. package/dist/types/src/components/select/employee-select/EmployeeSelect.vue.d.ts +238 -0
  93. package/dist/types/src/components/select/employee-select/RoleEmployeeSelectPanel.vue.d.ts +78 -0
  94. package/dist/types/src/components/select/employee-select/index.d.ts +3 -0
  95. package/dist/types/src/components/select/employee-select/init.d.ts +24 -0
  96. package/dist/types/src/components/select/index.d.ts +6 -0
  97. package/dist/types/src/components/select/organizational-structure-tree/OrganizationalStructureTree.vue.d.ts +119 -0
  98. package/dist/types/src/components/select/organizational-structure-tree/index.d.ts +1 -0
  99. package/dist/types/src/components/select/organizational-structure-tree/init.d.ts +25 -0
  100. package/dist/types/src/components/select/role-select/RoleList.vue.d.ts +99 -0
  101. package/dist/types/src/components/select/role-select/RoleModal.vue.d.ts +314 -0
  102. package/dist/types/src/components/select/role-select/RoleSelect.vue.d.ts +214 -0
  103. package/dist/types/src/components/select/role-select/index.d.ts +3 -0
  104. package/dist/types/src/components/select/role-select/init.d.ts +23 -0
  105. package/dist/types/src/components/select-modal/SelectModal.vue.d.ts +322 -0
  106. package/dist/types/src/components/select-modal/index.d.ts +1 -0
  107. package/dist/types/src/{field/form/m2m/select/SelectWidget.vue.d.ts → components/select-table/SelectTable.vue.d.ts} +84 -3
  108. package/dist/types/src/components/select-table/index.d.ts +1 -0
  109. package/dist/types/src/components/sortable-group/SortableGroup.vue.d.ts +77 -0
  110. package/dist/types/src/components/sortable-group/index.d.ts +2 -0
  111. package/dist/types/src/components/sortable-group/typing.d.ts +5 -0
  112. package/dist/types/src/components/table-line-height/TableLineHeight.vue.d.ts +26 -0
  113. package/dist/types/src/components/table-line-height/index.d.ts +1 -0
  114. package/dist/types/src/components/user-prefer/DefaultUserPrefer.vue.d.ts +6 -0
  115. package/dist/types/src/components/user-prefer/StandardUserPreferSetting.vue.d.ts +9 -0
  116. package/dist/types/src/container/block/DefaultBlock.vue.d.ts +0 -7
  117. package/dist/types/src/container/block/DefaultCol.vue.d.ts +0 -7
  118. package/dist/types/src/container/block/DefaultContainer.vue.d.ts +0 -7
  119. package/dist/types/src/container/block/DefaultContainerWidget.d.ts +2 -1
  120. package/dist/types/src/container/block/DefaultContainers.vue.d.ts +0 -7
  121. package/dist/types/src/container/block/DefaultRow.vue.d.ts +0 -7
  122. package/dist/types/src/container/collapse/DefaultCollapse.vue.d.ts +0 -7
  123. package/dist/types/src/container/group/DefaultGroup.vue.d.ts +31 -0
  124. package/dist/types/src/container/group/DefaultGroupWidget.d.ts +10 -4
  125. package/dist/types/src/container/media/icon/DefaultIcon.vue.d.ts +3 -1
  126. package/dist/types/src/container/media/paragraph/DefaultParagraph.vue.d.ts +5 -3
  127. package/dist/types/src/container/media/picture/DefaultPicture.vue.d.ts +3 -1
  128. package/dist/types/src/container/tabs/DefaultTabs.vue.d.ts +7 -1
  129. package/dist/types/src/container/tabs/DefaultTabsWidget.d.ts +1 -0
  130. package/dist/types/src/field/cascader/FormCascaderFieldWidget.d.ts +2 -1
  131. package/dist/types/src/field/detail/map/DefaultReadonlyMap.vue.d.ts +18 -0
  132. package/dist/types/src/field/detail/map/DetailMapFieldWidget.d.ts +1 -0
  133. package/dist/types/src/field/form/{o2m/select/SelectWidget.vue.d.ts → abstract/select/DefaultMultipleSelect.vue.d.ts} +47 -10
  134. package/dist/types/src/field/form/{m2o/select/SelectWidget.vue.d.ts → abstract/select/DefaultSingleSelect.vue.d.ts} +52 -14
  135. package/dist/types/src/field/form/date/FormDateTimeFieldWidget.d.ts +0 -1
  136. package/dist/types/src/field/form/enum/radio/FormEnumRadioWidget.d.ts +1 -1
  137. package/dist/types/src/field/form/enum/select/multi/MultiEnumSelect.vue.d.ts +16 -2
  138. package/dist/types/src/field/form/enum/select/single/EnumSelect.vue.d.ts +11 -1
  139. package/dist/types/src/field/form/enum/thumbnail/FormEnumThumbnailFieldWidget.d.ts +1 -1
  140. package/dist/types/src/field/form/float/Plat.vue.d.ts +4 -4
  141. package/dist/types/src/field/form/index.d.ts +0 -1
  142. package/dist/types/src/field/form/m2m/company/FormM2MCompanyFieldWidget.d.ts +8 -3
  143. package/dist/types/src/field/form/m2m/department/FormM2MDepartmentFieldWidget.d.ts +12 -3
  144. package/dist/types/src/field/form/m2m/employee/FormM2MEmployeeFieldWidget.d.ts +14 -3
  145. package/dist/types/src/field/form/m2m/index.d.ts +2 -1
  146. package/dist/types/src/field/form/m2m/role/FormM2MRoleFieldWidget.d.ts +11 -0
  147. package/dist/types/src/field/form/m2m/select/{FormM2MFieldSelectWidget.d.ts → FormM2MSelectFieldWidget.d.ts} +2 -2
  148. package/dist/types/src/field/form/m2m/select/FormM2MSelectModalFieldWidget.d.ts +9 -0
  149. package/dist/types/src/field/form/m2m/select/FormM2MSelectTableFieldWidget.d.ts +8 -0
  150. package/dist/types/src/field/form/m2m/select/index.d.ts +3 -0
  151. package/dist/types/src/field/form/m2o/address/FormM2OAddressFieldWidget.d.ts +3 -3
  152. package/dist/types/src/field/form/m2o/company/FormM2OCompanyFieldWidget.d.ts +6 -3
  153. package/dist/types/src/field/form/m2o/department/FormM2ODepartmentFieldWidget.d.ts +10 -3
  154. package/dist/types/src/field/form/m2o/employee/FormM2OEmployeeFieldWidget.d.ts +12 -3
  155. package/dist/types/src/field/form/m2o/index.d.ts +2 -2
  156. package/dist/types/src/field/form/m2o/role/FormM2ORoleFieldWidget.d.ts +9 -0
  157. package/dist/types/src/field/form/m2o/select/FormM2OSelectFieldWidget.d.ts +3 -7
  158. package/dist/types/src/field/form/m2o/select/FormM2OSelectModalFieldWidget.d.ts +7 -0
  159. package/dist/types/src/field/form/m2o/select/FormM2OSelectTableFieldWidget.d.ts +7 -0
  160. package/dist/types/src/field/form/m2o/select/index.d.ts +4 -0
  161. package/dist/types/src/field/form/o2m/cascader/index.d.ts +1 -0
  162. package/dist/types/src/field/form/o2m/index.d.ts +2 -2
  163. package/dist/types/src/field/form/o2m/select/FormO2MSelectFieldWidget.d.ts +1 -5
  164. package/dist/types/src/field/form/o2m/select/FormO2MSelectModalFieldWidget.d.ts +7 -0
  165. package/dist/types/src/field/form/o2m/select/FormO2MSelectTableFieldWidget.d.ts +6 -0
  166. package/dist/types/src/field/form/o2m/select/index.d.ts +3 -0
  167. package/dist/types/src/field/form/o2m/table/FormO2MTableFieldWidget.d.ts +8 -0
  168. package/dist/types/src/field/form/o2o/index.d.ts +1 -1
  169. package/dist/types/src/field/form/o2o/select/FormO2OSelectModalFieldWidget.d.ts +4 -0
  170. package/dist/types/src/field/form/o2o/select/FormO2OSelectTableFieldWidget.d.ts +4 -0
  171. package/dist/types/src/field/form/o2o/select/index.d.ts +3 -0
  172. package/dist/types/src/field/form/string/input/FormStringInputFieldWidget.d.ts +1 -1
  173. package/dist/types/src/field/form/string/tag/FormStringMultiTagFieldWidget.d.ts +1 -0
  174. package/dist/types/src/field/form/string/tag/Tag.vue.d.ts +14 -2
  175. package/dist/types/src/field/gallery/date/range/ReadonlyDateTimeRangePicker.vue.d.ts +6 -0
  176. package/dist/types/src/field/gallery/string/tag/GalleryStringTagFieldWidget.d.ts +5 -0
  177. package/dist/types/src/field/gallery/string/tag/GalleryTag.vue.d.ts +8 -1
  178. package/dist/types/src/field/prop/RelationSelectProps.d.ts +20 -1
  179. package/dist/types/src/field/range/SearchRangeFieldWidget.d.ts +0 -1
  180. package/dist/types/src/field/resource/language-badge/FormResourceLangBadge.vue.d.ts +26 -0
  181. package/dist/types/src/field/search/m2o/SearchM2OMultiSelectFieldWidget.d.ts +2 -2
  182. package/dist/types/src/field/table/boolean/TableBooleanSwitchFieldWidget.d.ts +4 -0
  183. package/dist/types/src/field/table/date/range/TableDateTimeRangeFieldWidget.d.ts +6 -0
  184. package/dist/types/src/field/table/enum/checkbox/TableEditorCheckboxFieldWidget.d.ts +3 -0
  185. package/dist/types/src/field/table/enum/checkbox/index.d.ts +1 -0
  186. package/dist/types/src/field/table/enum/index.d.ts +4 -0
  187. package/dist/types/src/field/table/enum/radio/TableEditorRadioFieldWidget.d.ts +3 -0
  188. package/dist/types/src/field/table/enum/radio/index.d.ts +1 -0
  189. package/dist/types/src/field/table/enum/select/TableEditorEnumFieldWidget.d.ts +5 -0
  190. package/dist/types/src/field/table/enum/select/TableEditorMultiEnumFieldWidget.d.ts +5 -0
  191. package/dist/types/src/field/table/enum/select/index.d.ts +2 -0
  192. package/dist/types/src/field/table/enum/thumbnail/TableEditorEnumThumbnailFieldWidget.d.ts +3 -0
  193. package/dist/types/src/field/table/enum/thumbnail/index.d.ts +1 -0
  194. package/dist/types/src/field/table/html/TableEditorHtmlFieldWidget.d.ts +4 -0
  195. package/dist/types/src/field/table/html/TableHtmlFieldWidget.d.ts +18 -0
  196. package/dist/types/src/field/table/html/index.d.ts +2 -1
  197. package/dist/types/src/field/table/index.d.ts +2 -1
  198. package/dist/types/src/field/table/m2m/company/TableEditorM2MCompanyFieldWidget.d.ts +5 -0
  199. package/dist/types/src/field/table/m2m/company/index.d.ts +1 -0
  200. package/dist/types/src/field/table/m2m/department/TableEditorM2MDepartmentFieldWidget.d.ts +3 -0
  201. package/dist/types/src/field/table/m2m/department/index.d.ts +1 -0
  202. package/dist/types/src/field/table/m2m/employee/TableEditorM2MEmployeeFieldWidget.d.ts +3 -0
  203. package/dist/types/src/field/table/m2m/employee/index.d.ts +1 -0
  204. package/dist/types/src/field/table/m2m/index.d.ts +8 -1
  205. package/dist/types/src/field/table/m2m/role/TableEditorM2MRoleFieldWidget.d.ts +3 -0
  206. package/dist/types/src/field/table/m2m/role/index.d.ts +1 -0
  207. package/dist/types/src/field/table/m2m/select/TableEditorM2MFieldWidget.d.ts +5 -0
  208. package/dist/types/src/field/table/m2m/select/index.d.ts +2 -0
  209. package/dist/types/src/field/table/m2m/select-modal/TableEditorM2MSelectModalFieldWidget.d.ts +3 -0
  210. package/dist/types/src/field/table/m2m/select-modal/index.d.ts +1 -0
  211. package/dist/types/src/field/table/m2m/select-table/TableEditorM2MSelectTableFieldWidget.d.ts +3 -0
  212. package/dist/types/src/field/table/m2m/select-table/index.d.ts +1 -0
  213. package/dist/types/src/field/table/m2m/upload/index.d.ts +1 -0
  214. package/dist/types/src/field/table/m2o/address/TableM2OAddressFieldWidget.d.ts +2 -2
  215. package/dist/types/src/field/table/m2o/address/index.d.ts +2 -0
  216. package/dist/types/src/field/table/m2o/company/TableEditorM2OCompanyFieldWidget.d.ts +5 -0
  217. package/dist/types/src/field/table/m2o/company/index.d.ts +1 -0
  218. package/dist/types/src/field/table/m2o/department/TableEditorM2ODepartmentFieldWidget.d.ts +3 -0
  219. package/dist/types/src/field/table/m2o/department/index.d.ts +1 -0
  220. package/dist/types/src/field/table/m2o/download/TableM2ODownloadWidget.d.ts +2 -2
  221. package/dist/types/src/field/table/m2o/download/index.d.ts +1 -0
  222. package/dist/types/src/field/table/m2o/employee/TableEditorM2OEmployeeFieldWidget.d.ts +3 -0
  223. package/dist/types/src/field/table/m2o/employee/index.d.ts +1 -0
  224. package/dist/types/src/field/table/m2o/index.d.ts +10 -4
  225. package/dist/types/src/field/table/m2o/role/TableEditorM2ORoleFieldWidget.d.ts +3 -0
  226. package/dist/types/src/field/table/m2o/role/index.d.ts +1 -0
  227. package/dist/types/src/field/table/m2o/select/TableEditorM2OFieldWidget.d.ts +5 -0
  228. package/dist/types/src/field/table/m2o/select/index.d.ts +2 -0
  229. package/dist/types/src/field/table/m2o/select-modal/TableEditorM2OSelectModalFieldWidget.d.ts +3 -0
  230. package/dist/types/src/field/table/m2o/select-modal/index.d.ts +1 -0
  231. package/dist/types/src/field/table/m2o/select-table/TableEditorM2OSelectTableFieldWidget.d.ts +3 -0
  232. package/dist/types/src/field/table/m2o/select-table/index.d.ts +1 -0
  233. package/dist/types/src/field/table/m2o/upload/index.d.ts +1 -0
  234. package/dist/types/src/field/table/number/TableEditorMultiNumberFieldWidget.d.ts +5 -0
  235. package/dist/types/src/field/table/number/index.d.ts +1 -0
  236. package/dist/types/src/field/table/o2m/index.d.ts +3 -0
  237. package/dist/types/src/field/table/o2m/select/TableEditorO2MFieldWidget.d.ts +5 -0
  238. package/dist/types/src/field/table/o2m/select/index.d.ts +2 -0
  239. package/dist/types/src/field/table/o2m/select-modal/TableEditorO2MSelectModalFieldWidget.d.ts +3 -0
  240. package/dist/types/src/field/table/o2m/select-modal/index.d.ts +1 -0
  241. package/dist/types/src/field/table/o2m/select-table/TableEditorO2MSelectTableFieldWidget.d.ts +3 -0
  242. package/dist/types/src/field/table/o2m/select-table/index.d.ts +1 -0
  243. package/dist/types/src/field/table/o2o/index.d.ts +3 -0
  244. package/dist/types/src/field/table/o2o/select/TableEditorO2OFieldWidget.d.ts +5 -0
  245. package/dist/types/src/field/table/o2o/select/index.d.ts +2 -0
  246. package/dist/types/src/field/table/o2o/select-modal/TableEditorO2OSelectModalFieldWidget.d.ts +3 -0
  247. package/dist/types/src/field/table/o2o/select-modal/index.d.ts +1 -0
  248. package/dist/types/src/field/table/o2o/select-table/TableEditorO2OSelectTableFieldWidget.d.ts +3 -0
  249. package/dist/types/src/field/table/o2o/select-table/index.d.ts +1 -0
  250. package/dist/types/src/field/table/string/tag/TableEditorStringTagFieldWidget.d.ts +5 -0
  251. package/dist/types/src/field/table/string/tag/index.d.ts +1 -0
  252. package/dist/types/src/field/table/text/TableTextFieldWidget.d.ts +3 -0
  253. package/dist/types/src/field/table-operation-column/TableOperationColumn.vue.d.ts +9 -0
  254. package/dist/types/src/field/transfer/FormTransferFieldWidget.d.ts +2 -2
  255. package/dist/types/src/field/tree/FormTreeFieldWidget.d.ts +1 -1
  256. package/dist/types/src/field/tree-select/AbstractTreeFieldWidget.d.ts +2 -2
  257. package/dist/types/src/field/tree-select/FormTreeSelectFieldWidget.d.ts +2 -1
  258. package/dist/types/src/icon-manage/view/search/IconSearchWidget.d.ts +1 -0
  259. package/dist/types/src/index.d.ts +1 -1
  260. package/dist/types/src/permission/permission/field/ActionPermissionWidget.d.ts +1 -1
  261. package/dist/types/src/permission/role-permission/resource-permission/FormManagementPermissionFieldWidget.d.ts +1 -1
  262. package/dist/types/src/permission/role-permission/resource-permission/FormResourcePermissionFieldWidget.d.ts +1 -1
  263. package/dist/types/src/permission/types.d.ts +2 -0
  264. package/dist/types/src/service/tree/tree-service.d.ts +1 -1
  265. package/dist/types/src/tags/context/index.d.ts +0 -1
  266. package/dist/types/src/tags/resolve/helper.d.ts +0 -16
  267. package/dist/types/src/typing/action.d.ts +0 -5
  268. package/dist/types/src/typing/card-cascader.d.ts +1 -1
  269. package/dist/types/src/typing/control-icon.d.ts +7 -0
  270. package/dist/types/src/typing/event/index.d.ts +1 -0
  271. package/dist/types/src/typing/event/table.d.ts +38 -0
  272. package/dist/types/src/typing/index.d.ts +3 -0
  273. package/dist/types/src/typing/view.d.ts +12 -0
  274. package/dist/types/src/util/default-tree-definition.d.ts +15 -1
  275. package/dist/types/src/util/tree-utils.d.ts +1 -1
  276. package/dist/types/src/view/application-screen/gallery/field/select/AppsModuleUpstreamSelectWidget.d.ts +2 -2
  277. package/dist/types/src/view/card/CardWidget.d.ts +12 -0
  278. package/dist/types/src/view/card/DefaultCard.vue.d.ts +32 -0
  279. package/dist/types/src/view/card/DefaultCardContent.vue.d.ts +8 -0
  280. package/dist/types/src/view/card/DefaultCardTitle.vue.d.ts +8 -0
  281. package/dist/types/src/view/card-cascader/AbstractCardCascaderElementWidget.d.ts +1 -2
  282. package/dist/types/src/view/card-cascader/CardCascaderWidget.d.ts +1 -1
  283. package/dist/types/src/view/card-cascader/DefaultCardCascader.vue.d.ts +1 -1
  284. package/dist/types/src/view/card-cascader/TableSearchCardCascaderWidget.d.ts +1 -1
  285. package/dist/types/src/view/detail/DetailWidget.d.ts +2 -0
  286. package/dist/types/src/view/gallery/DefaultGallery.vue.d.ts +7 -0
  287. package/dist/types/src/view/gallery/GalleryWidget.d.ts +18 -0
  288. package/dist/types/src/view/homepage-setting/components/MultiSelect.vue.d.ts +26 -0
  289. package/dist/types/src/view/homepage-setting/components/SingleSelect.vue.d.ts +26 -0
  290. package/dist/types/src/view/index.d.ts +2 -0
  291. package/dist/types/src/view/popup/PopupWidget.d.ts +33 -3
  292. package/dist/types/src/view/popup/dialog/DefaultDialog.vue.d.ts +65 -1
  293. package/dist/types/src/view/popup/dialog/DialogWidget.d.ts +3 -1
  294. package/dist/types/src/view/popup/dialog/StaticDialogWidget.d.ts +1 -1
  295. package/dist/types/src/view/popup/drawer/DefaultDrawer.vue.d.ts +66 -2
  296. package/dist/types/src/view/popup/drawer/DrawerWidget.d.ts +3 -1
  297. package/dist/types/src/view/popup/drawer/StaticDrawerWidget.d.ts +1 -1
  298. package/dist/types/src/view/popup/inner/DefaultInnerPopup.vue.d.ts +2 -2
  299. package/dist/types/src/view/popup/inner/InnerPopupWidget.d.ts +0 -1
  300. package/dist/types/src/view/quick-fill/Excel.vue.d.ts +30 -0
  301. package/dist/types/src/view/quick-fill/QuickFill.vue.d.ts +108 -0
  302. package/dist/types/src/view/quick-fill/QuickFillWidget.d.ts +87 -0
  303. package/dist/types/src/view/quick-fill/index.d.ts +1 -0
  304. package/dist/types/src/view/quick-fill/type.d.ts +12 -0
  305. package/dist/types/src/view/search/DefaultSearch.vue.d.ts +0 -5
  306. package/dist/types/src/view/search/SearchWidget.d.ts +1 -0
  307. package/dist/types/src/view/table/DefaultTable.vue.d.ts +139 -10
  308. package/dist/types/src/view/table/DefaultTableFooterOperator.vue.d.ts +31 -0
  309. package/dist/types/src/view/table/DefaultTableGroupCollapse.vue.d.ts +41 -0
  310. package/dist/types/src/view/table/TableUserPrefer.vue.d.ts +6 -0
  311. package/dist/types/src/view/table/TableUserPreferWidget.d.ts +1 -0
  312. package/dist/types/src/view/table/TableWidget.d.ts +119 -8
  313. package/dist/types/src/view/table/index.d.ts +0 -2
  314. package/dist/types/src/view/tree/AbstractTreeElementWidget.d.ts +1 -2
  315. package/dist/types/src/view/tree/TableSearchTreeWidget.d.ts +1 -2
  316. package/dist/types/src/view/tree/TreeWidget.d.ts +3 -1
  317. package/dist/types/src/view/tree/props.d.ts +1 -1
  318. package/dist/types/src/view/view/DefaultView.vue.d.ts +10 -8
  319. package/dist/types/src/view/view/DetailView.d.ts +1 -0
  320. package/dist/types/src/view/view/FormView.d.ts +1 -0
  321. package/dist/types/src/view/view/SearchView.d.ts +1 -0
  322. package/dist/types/src/view/view/TableView.d.ts +3 -3
  323. package/dist/types/src/view/view-control/DefaultViewControl.vue.d.ts +24 -0
  324. package/dist/types/src/view/view-control/ViewControlWidget.d.ts +11 -0
  325. package/dist/types/src/view/view-control/card-col-control/CardColControlWidget.d.ts +14 -0
  326. package/dist/types/src/view/view-control/card-col-control/DefaultCardColControl.vue.d.ts +28 -0
  327. package/dist/types/src/view/view-control/full-screen-control/DefaultFullScreenControl.vue.d.ts +5 -0
  328. package/dist/types/src/view/view-control/full-screen-control/FullScreenControlWidget.d.ts +4 -0
  329. package/dist/types/src/view/view-control/group-control/DefaultGroupControl.vue.d.ts +45 -0
  330. package/dist/types/src/view/view-control/group-control/GroupControlWidget.d.ts +26 -0
  331. package/dist/types/src/view/view-control/index.d.ts +7 -0
  332. package/dist/types/src/view/view-control/keyboard-shortcut/DefaultKeyboardShortcut.vue.d.ts +30 -0
  333. package/dist/types/src/view/view-control/keyboard-shortcut/KeyboardShortcutWidget.d.ts +10 -0
  334. package/dist/types/src/view/view-control/line-height-control/DefaultLineHeightControl.vue.d.ts +18 -0
  335. package/dist/types/src/view/view-control/line-height-control/LineHeightControlWidget.d.ts +15 -0
  336. package/dist/types/src/view/view-control/sort-control/DefaultSortControl.vue.d.ts +45 -0
  337. package/dist/types/src/view/view-control/sort-control/SortControlWidget.d.ts +27 -0
  338. package/package.json +22 -22
  339. package/src/action/client-actions/SaveDraftActionWidget.ts +486 -0
  340. package/src/action/client-actions/TableAddOneAction.ts +10 -15
  341. package/src/action/client-actions/TableCopyOneAction.ts +13 -27
  342. package/src/action/client-actions/TableEditOneAction.ts +23 -2
  343. package/src/action/client-actions/index.ts +1 -0
  344. package/src/action/component/action/ActionWidget.ts +84 -35
  345. package/src/action/component/action/DefaultAction.vue +5 -4
  346. package/src/action/component/action/typing.ts +4 -0
  347. package/src/action/component/action-bar/ActionBarWidget.ts +130 -3
  348. package/src/action/component/action-bar/DefaultActionBar.vue +74 -25
  349. package/src/action/component/action-bar/DefaultMoreActionItem.vue +172 -0
  350. package/src/action/component/action-bar/RowActionBarWidget.ts +30 -1
  351. package/src/action/component/action-bar/style/index.scss +7 -48
  352. package/src/action/component/dropdown/DefaultDropdown.vue +2 -98
  353. package/src/action/component/dropdown/style/index.scss +99 -0
  354. package/src/action/component/index.ts +1 -0
  355. package/src/action/component/typing/action-bar.ts +10 -0
  356. package/src/action/component/typing/index.ts +1 -0
  357. package/src/action/index.scss +1 -0
  358. package/src/action/server-actions/ServerActionWidget.ts +6 -13
  359. package/src/action/view-actions/biz-audit/BizAuditRecordDetail.vue +18 -19
  360. package/src/action/view-actions/biz-audit/BizAuditRecordDetailList.vue +69 -30
  361. package/src/action/view-actions/biz-audit/BizAuditRecordDetailListWidget.ts +5 -0
  362. package/src/action/view-actions/biz-audit/BizAuditRecordViewAction.ts +7 -0
  363. package/src/basic/BaseSearchWidget.ts +9 -1
  364. package/src/basic/common/BaseDataWidget.ts +1 -1
  365. package/src/basic/common/BaseRuntimePropertiesWidget.ts +31 -2
  366. package/src/basic/constant/call-chaining.ts +12 -2
  367. package/src/basic/element/BaseElementListViewWidget.ts +135 -67
  368. package/src/basic/element/BaseElementObjectViewWidget.ts +33 -13
  369. package/src/basic/element/utils.ts +1 -1
  370. package/src/basic/field/FormFieldWidget.ts +13 -3
  371. package/src/basic/field/complex/select/BaseSelectFieldWidget.ts +253 -24
  372. package/src/basic/field/complex/select/FormSelectComplexFieldWidget.ts +104 -38
  373. package/src/basic/field/complex/select/SelectFieldWidget.ts +189 -0
  374. package/src/basic/field/complex/select/SelectModalFieldWidget.ts +76 -0
  375. package/src/basic/field/complex/select/SelectTableFieldWidget.ts +143 -0
  376. package/src/basic/field/complex/select/index.ts +3 -0
  377. package/src/basic/field/complex/subview/FormSubviewListFieldWidget.ts +2 -2
  378. package/src/basic/field/complex/table/TableComplexFieldWidget.ts +5 -0
  379. package/src/basic/form/BaseFormWidget.ts +7 -1
  380. package/src/basic/form/DefaultForm.vue +18 -8
  381. package/src/basic/form/index.ts +0 -1
  382. package/src/basic/form/style/index.scss +1 -0
  383. package/src/basic/form/style/word-form.scss +287 -0
  384. package/src/basic/form-item/BaseFormItemWidget.ts +24 -0
  385. package/src/basic/form-item/DefaultFormItem.vue +9 -2
  386. package/src/basic/form-item/style/index.scss +1 -1
  387. package/src/basic/gallery-item/DefaultGalleryItem.vue +5 -1
  388. package/src/basic/gallery-item/props.ts +6 -0
  389. package/src/basic/gallery-item/style/index.scss +17 -5
  390. package/src/basic/mixin/ManualWidget.ts +1 -1
  391. package/src/basic/table/BaseTableWidget.ts +746 -150
  392. package/src/basic/table/style/index.scss +2 -11
  393. package/src/basic/table-column/BaseTableColumnWidget.ts +131 -15
  394. package/src/basic/table-column/BaseTableFieldWidget.ts +81 -22
  395. package/src/basic/table-column/BaseTableQuickOperationColumnWidget.ts +3 -0
  396. package/src/basic/table-column/DefaultGroupCell.vue +431 -0
  397. package/src/basic/table-column/DefaultQuickOperationColumn.vue +40 -3
  398. package/src/basic/table-column/DefaultTableColumn.vue +43 -3
  399. package/src/basic/token/BaseActionWidget.ts +58 -2
  400. package/src/basic/token/BaseElementWidget.ts +1 -1
  401. package/src/basic/token/BaseFieldWidget.ts +13 -1
  402. package/src/basic/token/BaseView.ts +32 -1
  403. package/src/basic/token/extend/EditorFieldWidget.ts +1 -1
  404. package/src/basic/types/typing.ts +9 -0
  405. package/src/basic/view/MetadataView.vue +1 -2
  406. package/src/components/common/close-icon/CloseIcon.vue +0 -1
  407. package/src/components/index.ts +8 -0
  408. package/src/components/oio-full-screen/OioFullScreen.vue +45 -0
  409. package/src/components/oio-full-screen/index.ts +1 -0
  410. package/src/components/oio-manage-group/index.ts +1 -1
  411. package/src/components/oio-simple-pagination/OioSimplePagination.vue +89 -0
  412. package/src/components/oio-simple-pagination/index.ts +1 -0
  413. package/src/components/prop/UploadProps.ts +0 -1
  414. package/src/components/quick-utils/CheckedHelper.ts +77 -0
  415. package/src/components/quick-utils/index.ts +5 -0
  416. package/src/components/quick-utils/useListChecked.ts +230 -0
  417. package/src/components/quick-utils/useListState.ts +227 -0
  418. package/src/components/quick-utils/useTreeChecked.ts +271 -0
  419. package/src/components/quick-utils/useTreeState.ts +248 -0
  420. package/src/components/select/base/BaseSelect.vue +476 -0
  421. package/src/components/select/base/DefaultSelect.vue +129 -0
  422. package/src/components/select/base/index.ts +4 -0
  423. package/src/components/select/base/props.ts +96 -0
  424. package/src/components/select/base/typing.ts +6 -0
  425. package/src/components/select/company-select/CompanySelect.vue +159 -0
  426. package/src/components/select/company-select/index.ts +2 -0
  427. package/src/components/select/company-select/render/index.ts +1 -0
  428. package/src/components/select/company-select/render/logo.ts +18 -0
  429. package/src/components/select/company-select/render/optionRender.ts +55 -0
  430. package/src/components/select/company-select/render/style1.ts +11 -0
  431. package/src/components/select/company-select/render/style2.ts +33 -0
  432. package/src/components/select/department-select/DepartmentModal.vue +433 -0
  433. package/src/components/select/department-select/DepartmentSelect.vue +168 -0
  434. package/src/components/select/department-select/DepartmentTree.vue +244 -0
  435. package/src/components/select/department-select/constant.ts +10 -0
  436. package/src/components/select/department-select/index.ts +3 -0
  437. package/src/components/select/department-select/init.ts +22 -0
  438. package/src/components/select/employee-select/DepartmentEmployeeSelectPanel.vue +287 -0
  439. package/src/components/select/employee-select/EmployeeList.vue +146 -0
  440. package/src/components/select/employee-select/EmployeeModal.vue +464 -0
  441. package/src/components/select/employee-select/EmployeeSelect.vue +163 -0
  442. package/src/components/select/employee-select/RoleEmployeeSelectPanel.vue +255 -0
  443. package/src/components/select/employee-select/index.ts +3 -0
  444. package/src/components/select/employee-select/init.ts +31 -0
  445. package/src/components/select/index.ts +6 -0
  446. package/src/components/select/organizational-structure-tree/OrganizationalStructureTree.vue +262 -0
  447. package/src/components/select/organizational-structure-tree/index.ts +1 -0
  448. package/src/components/select/organizational-structure-tree/init.ts +30 -0
  449. package/src/components/select/role-select/RoleList.vue +159 -0
  450. package/src/components/select/role-select/RoleModal.vue +357 -0
  451. package/src/components/select/role-select/RoleSelect.vue +146 -0
  452. package/src/components/select/role-select/index.ts +3 -0
  453. package/src/components/select/role-select/init.ts +29 -0
  454. package/src/components/select-modal/SelectModal.vue +335 -0
  455. package/src/components/select-modal/index.ts +1 -0
  456. package/src/components/select-table/SelectTable.vue +306 -0
  457. package/src/components/select-table/index.ts +1 -0
  458. package/src/components/sortable-group/SortableGroup.vue +346 -0
  459. package/src/components/sortable-group/index.ts +2 -0
  460. package/src/components/sortable-group/typing.ts +5 -0
  461. package/src/components/table-line-height/TableLineHeight.vue +111 -0
  462. package/src/components/table-line-height/index.ts +1 -0
  463. package/src/components/user-prefer/DefaultUserPrefer.vue +5 -0
  464. package/src/components/user-prefer/StandardUserPreferSetting.vue +6 -2
  465. package/src/container/block/DefaultBlock.vue +2 -10
  466. package/src/container/block/DefaultCol.vue +3 -11
  467. package/src/container/block/DefaultContainer.vue +3 -13
  468. package/src/container/block/DefaultContainerWidget.ts +9 -4
  469. package/src/container/block/DefaultContainers.vue +3 -13
  470. package/src/container/block/DefaultRow.vue +4 -13
  471. package/src/container/collapse/DefaultCollapse.vue +2 -12
  472. package/src/container/collapse/DefaultCollapsePanelWidget.ts +2 -0
  473. package/src/container/collapse/DefaultCollapseWidget.ts +1 -1
  474. package/src/container/group/DefaultGroup.vue +39 -18
  475. package/src/container/group/DefaultGroupTitleToolbar.vue +1 -1
  476. package/src/container/group/DefaultGroupWidget.ts +45 -11
  477. package/src/container/media/icon/DefaultIcon.vue +15 -7
  478. package/src/container/media/paragraph/DefaultParagraph.vue +13 -4
  479. package/src/container/media/picture/DefaultPicture.vue +16 -3
  480. package/src/container/media/text-info/DefaultTextInfo.vue +14 -6
  481. package/src/container/spin/DefaultSpin.vue +1 -7
  482. package/src/container/tabs/DefaultTab.vue +5 -1
  483. package/src/container/tabs/DefaultTabWidget.ts +2 -0
  484. package/src/container/tabs/DefaultTabs.vue +7 -1
  485. package/src/container/tabs/DefaultTabsWidget.ts +5 -0
  486. package/src/field/cascader/DefaultCascader.vue +3 -2
  487. package/src/field/cascader/FormCascaderFieldWidget.ts +2 -2
  488. package/src/field/detail/date/range/ReadonlyDateTimeRangePicker.vue +2 -0
  489. package/src/field/detail/enum/Enum.vue +11 -8
  490. package/src/field/detail/map/DefaultReadonlyMap.vue +33 -0
  491. package/src/field/detail/map/DetailMapFieldWidget.ts +8 -1
  492. package/src/field/detail/o2m/select/Select.vue +7 -8
  493. package/src/field/detail/string/string-with-copy/String.vue +4 -22
  494. package/src/field/detail/string/tag/DetailTag.vue +6 -7
  495. package/src/field/eip/form/work-scope/service.ts +0 -1
  496. package/src/field/form/{m2m/select/SelectWidget.vue → abstract/select/DefaultMultipleSelect.vue} +44 -19
  497. package/src/field/form/{m2o/select/SelectWidget.vue → abstract/select/DefaultSingleSelect.vue} +39 -17
  498. package/src/field/form/date/DefaultDatePicker.vue +3 -4
  499. package/src/field/form/date/DefaultDateTimePicker.vue +3 -4
  500. package/src/field/form/date/DefaultTimePicker.vue +2 -3
  501. package/src/field/form/date/DefaultYearPicker.vue +2 -3
  502. package/src/field/form/date/FormDateTimeFieldWidget.ts +0 -7
  503. package/src/field/form/date/range/DefaultDateRangePicker.vue +7 -8
  504. package/src/field/form/date/range/DefaultDateTimeRangePicker.vue +8 -9
  505. package/src/field/form/date/range/DefaultTimeRangePicker.vue +7 -8
  506. package/src/field/form/date/range/DefaultYearRangePicker.vue +7 -8
  507. package/src/field/form/enum/radio/FormEnumRadioWidget.ts +4 -6
  508. package/src/field/form/enum/select/multi/MultiEnumSelect.vue +42 -15
  509. package/src/field/form/enum/select/single/EnumSelect.vue +64 -10
  510. package/src/field/form/enum/thumbnail/FormEnumThumbnailFieldWidget.ts +2 -6
  511. package/src/field/form/float/Plat.vue +21 -9
  512. package/src/field/form/index.ts +0 -1
  513. package/src/field/form/m2m/company/FormM2MCompanyFieldWidget.ts +33 -6
  514. package/src/field/form/m2m/department/FormM2MDepartmentFieldWidget.ts +56 -6
  515. package/src/field/form/m2m/employee/FormM2MEmployeeFieldWidget.ts +62 -6
  516. package/src/field/form/m2m/index.ts +2 -1
  517. package/src/field/form/m2m/role/FormM2MRoleFieldWidget.ts +54 -0
  518. package/src/field/form/m2m/select/FormM2MSelectFieldWidget.ts +37 -0
  519. package/src/field/form/m2m/select/FormM2MSelectModalFieldWidget.ts +33 -0
  520. package/src/field/form/m2m/select/FormM2MSelectTableFieldWidget.ts +29 -0
  521. package/src/field/form/m2m/select/index.ts +3 -0
  522. package/src/field/form/m2o/address/FormM2OAddressFieldWidget.ts +14 -3
  523. package/src/field/form/m2o/company/FormM2OCompanyFieldWidget.ts +29 -6
  524. package/src/field/form/m2o/department/FormM2ODepartmentFieldWidget.ts +52 -6
  525. package/src/field/form/m2o/employee/FormM2OEmployeeFieldWidget.ts +58 -6
  526. package/src/field/form/m2o/index.ts +2 -2
  527. package/src/field/form/m2o/role/FormM2ORoleFieldWidget.ts +50 -0
  528. package/src/field/form/m2o/select/FormM2OSelectFieldWidget.ts +33 -88
  529. package/src/field/form/m2o/select/FormM2OSelectModalFieldWidget.ts +39 -0
  530. package/src/field/form/m2o/select/FormM2OSelectTableFieldWidget.ts +38 -0
  531. package/src/field/form/m2o/select/index.ts +4 -0
  532. package/src/field/form/map/DefaultMap.vue +1 -1
  533. package/src/field/form/map/style/index.scss +5 -0
  534. package/src/field/form/o2m/cascader/index.ts +1 -0
  535. package/src/field/form/o2m/index.ts +2 -2
  536. package/src/field/form/o2m/select/FormO2MSelectFieldWidget.ts +4 -51
  537. package/src/field/form/o2m/select/FormO2MSelectModalFieldWidget.ts +27 -0
  538. package/src/field/form/o2m/select/FormO2MSelectTableFieldWidget.ts +23 -0
  539. package/src/field/form/o2m/select/index.ts +3 -0
  540. package/src/field/form/o2m/table/FormO2MTableFieldWidget.ts +26 -1
  541. package/src/field/form/o2o/index.ts +1 -1
  542. package/src/field/form/o2o/select/FormO2OSelectModalFieldWidget.ts +34 -0
  543. package/src/field/form/o2o/select/FormO2OSelectTableFieldWidget.ts +35 -0
  544. package/src/field/form/o2o/select/index.ts +3 -0
  545. package/src/field/form/string/input/FormStringInputFieldWidget.ts +1 -1
  546. package/src/field/form/string/tag/FormStringMultiTagFieldWidget.ts +5 -0
  547. package/src/field/form/string/tag/Tag.vue +95 -28
  548. package/src/field/form/text/DomainExpGenerator/ExpRight.vue +1 -0
  549. package/src/field/gallery/common/style/index.scss +18 -0
  550. package/src/field/gallery/string/default/GalleryString.vue +8 -0
  551. package/src/field/gallery/string/hyperlinks/GalleryHyperlinks.vue +8 -0
  552. package/src/field/gallery/string/media-player/GalleryMediaPlayer.vue +15 -19
  553. package/src/field/gallery/string/tag/GalleryStringTagFieldWidget.ts +32 -1
  554. package/src/field/gallery/string/tag/GalleryTag.vue +99 -51
  555. package/src/field/prop/RelationSelectProps.ts +149 -4
  556. package/src/field/range/SearchRangeFieldWidget.ts +0 -8
  557. package/src/field/resource/language-badge/FormResourceLangBadge.vue +3 -3
  558. package/src/field/search/enum/TabSelect.vue +2 -2
  559. package/src/field/search/enum/TagSelect.vue +2 -2
  560. package/src/field/search/m2o/SearchM2OMultiSelectFieldWidget.ts +2 -2
  561. package/src/field/table/boolean/TableBooleanSwitchFieldWidget.ts +22 -2
  562. package/src/field/table/date/range/TableDateTimeRangeFieldWidget.ts +16 -1
  563. package/src/field/table/date/range/editor/DefaultEditorDateRangePicker.vue +5 -8
  564. package/src/field/table/date/range/editor/DefaultEditorDateTimeRangePicker.vue +5 -8
  565. package/src/field/table/date/range/editor/DefaultEditorTimeRangePicker.vue +5 -8
  566. package/src/field/table/date/range/editor/DefaultEditorYearRangePicker.vue +5 -8
  567. package/src/field/table/enum/TableEnum.vue +0 -1
  568. package/src/field/table/enum/checkbox/TableEditorCheckboxFieldWidget.ts +14 -0
  569. package/src/field/table/enum/checkbox/index.ts +1 -0
  570. package/src/field/table/enum/index.ts +4 -0
  571. package/src/field/table/enum/radio/TableEditorRadioFieldWidget.ts +13 -0
  572. package/src/field/table/enum/radio/index.ts +1 -0
  573. package/src/field/table/enum/select/TableEditorEnumFieldWidget.ts +18 -0
  574. package/src/field/table/enum/select/TableEditorMultiEnumFieldWidget.ts +19 -0
  575. package/src/field/table/enum/select/index.ts +2 -0
  576. package/src/field/table/enum/thumbnail/TableEditorEnumThumbnailFieldWidget.ts +13 -0
  577. package/src/field/table/enum/thumbnail/index.ts +1 -0
  578. package/src/field/table/html/TableEditorHtmlFieldWidget.ts +23 -0
  579. package/src/field/table/html/TableHtmlFieldWidget.ts +51 -0
  580. package/src/field/table/html/{richtext/TableRichText.vue → TableRichText.vue} +1 -1
  581. package/src/field/table/html/index.ts +2 -1
  582. package/src/field/table/index.ts +2 -1
  583. package/src/field/table/m2m/company/TableEditorM2MCompanyFieldWidget.ts +19 -0
  584. package/src/field/table/m2m/company/index.ts +1 -0
  585. package/src/field/table/m2m/department/TableEditorM2MDepartmentFieldWidget.ts +13 -0
  586. package/src/field/table/m2m/department/index.ts +1 -0
  587. package/src/field/table/m2m/employee/TableEditorM2MEmployeeFieldWidget.ts +13 -0
  588. package/src/field/table/m2m/employee/index.ts +1 -0
  589. package/src/field/table/m2m/index.ts +8 -1
  590. package/src/field/table/m2m/role/TableEditorM2MRoleFieldWidget.ts +13 -0
  591. package/src/field/table/m2m/role/index.ts +1 -0
  592. package/src/field/table/m2m/select/TableEditorM2MFieldWidget.ts +18 -0
  593. package/src/field/table/{relation/m2m → m2m/select}/TableM2MFieldWidget.ts +6 -1
  594. package/src/field/table/m2m/select/index.ts +2 -0
  595. package/src/field/table/m2m/select-modal/TableEditorM2MSelectModalFieldWidget.ts +13 -0
  596. package/src/field/table/m2m/select-modal/index.ts +1 -0
  597. package/src/field/table/m2m/select-table/TableEditorM2MSelectTableFieldWidget.ts +13 -0
  598. package/src/field/table/m2m/select-table/index.ts +1 -0
  599. package/src/field/table/m2m/upload/index.ts +1 -0
  600. package/src/field/table/m2o/address/TableM2OAddressFieldWidget.ts +2 -3
  601. package/src/field/table/m2o/address/index.ts +2 -0
  602. package/src/field/table/m2o/company/TableEditorM2OCompanyFieldWidget.ts +19 -0
  603. package/src/field/table/m2o/company/index.ts +1 -0
  604. package/src/field/table/m2o/department/TableEditorM2ODepartmentFieldWidget.ts +13 -0
  605. package/src/field/table/m2o/department/index.ts +1 -0
  606. package/src/field/table/m2o/download/TableM2ODownloadWidget.ts +2 -3
  607. package/src/field/table/m2o/download/index.ts +1 -0
  608. package/src/field/table/m2o/employee/TableEditorM2OEmployeeFieldWidget.ts +13 -0
  609. package/src/field/table/m2o/employee/index.ts +1 -0
  610. package/src/field/table/m2o/index.ts +10 -4
  611. package/src/field/table/m2o/role/TableEditorM2ORoleFieldWidget.ts +13 -0
  612. package/src/field/table/m2o/role/index.ts +1 -0
  613. package/src/field/table/m2o/select/TableEditorM2OFieldWidget.ts +18 -0
  614. package/src/field/table/{relation/m2o → m2o/select}/TableM2OFieldWidget.ts +6 -1
  615. package/src/field/table/m2o/select/index.ts +2 -0
  616. package/src/field/table/m2o/select-modal/TableEditorM2OSelectModalFieldWidget.ts +13 -0
  617. package/src/field/table/m2o/select-modal/index.ts +1 -0
  618. package/src/field/table/m2o/select-table/TableEditorM2OSelectTableFieldWidget.ts +13 -0
  619. package/src/field/table/m2o/select-table/index.ts +1 -0
  620. package/src/field/table/m2o/upload/index.ts +1 -0
  621. package/src/field/table/number/TableEditorMultiNumberFieldWidget.ts +19 -0
  622. package/src/field/table/number/index.ts +1 -0
  623. package/src/field/table/o2m/index.ts +3 -0
  624. package/src/field/table/o2m/select/TableEditorO2MFieldWidget.ts +18 -0
  625. package/src/field/table/{relation/o2m → o2m/select}/TableO2MFieldWidget.ts +6 -1
  626. package/src/field/table/o2m/select/index.ts +2 -0
  627. package/src/field/table/o2m/select-modal/TableEditorO2MSelectModalFieldWidget.ts +13 -0
  628. package/src/field/table/o2m/select-modal/index.ts +1 -0
  629. package/src/field/table/o2m/select-table/TableEditorO2MSelectTableFieldWidget.ts +13 -0
  630. package/src/field/table/o2m/select-table/index.ts +1 -0
  631. package/src/field/table/o2o/index.ts +3 -0
  632. package/src/field/table/o2o/select/TableEditorO2OFieldWidget.ts +18 -0
  633. package/src/field/table/{relation/o2o → o2o/select}/TableO2OFieldWidget.ts +6 -1
  634. package/src/field/table/o2o/select/index.ts +2 -0
  635. package/src/field/table/o2o/select-modal/TableEditorO2OSelectModalFieldWidget.ts +13 -0
  636. package/src/field/table/o2o/select-modal/index.ts +1 -0
  637. package/src/field/table/o2o/select-table/TableEditorO2OSelectTableFieldWidget.ts +13 -0
  638. package/src/field/table/o2o/select-table/index.ts +1 -0
  639. package/src/field/table/string/tag/TableEditorStringTagFieldWidget.ts +19 -0
  640. package/src/field/table/string/tag/index.ts +1 -0
  641. package/src/field/table/text/TableTextFieldWidget.ts +12 -0
  642. package/src/field/table-operation-column/TableOperationColumn.vue +12 -2
  643. package/src/field/transfer/FormTransferFieldWidget.ts +2 -2
  644. package/src/field/tree/FormTreeFieldWidget.ts +2 -2
  645. package/src/field/tree-select/AbstractTreeFieldWidget.ts +2 -1
  646. package/src/field/tree-select/DefaultTreeSelect.vue +3 -3
  647. package/src/field/tree-select/FormTreeSelectFieldWidget.ts +2 -8
  648. package/src/field/util.ts +1 -1
  649. package/src/file/excel/action/ExportWorkbookActionWidget.ts +2 -15
  650. package/src/icon-manage/view/search/IconSearch.vue +6 -2
  651. package/src/index.ts +1 -0
  652. package/src/main-view/DefaultMainView.vue +1 -2
  653. package/src/main-view/DefaultMainViewWidget.ts +3 -5
  654. package/src/main-view/DefaultMetadataMainView.vue +1 -2
  655. package/src/main-view/shared/SharedMainView.vue +1 -1
  656. package/src/permission/permission/field/ActionPermissionWidget.ts +2 -2
  657. package/src/permission/role-permission/resource-permission/FormManagementPermissionFieldWidget.ts +1 -1
  658. package/src/permission/role-permission/resource-permission/FormResourcePermissionFieldWidget.ts +3 -3
  659. package/src/permission/system-permission/components/data-permission/data-permission-table.vue +0 -1
  660. package/src/permission/types.ts +2 -0
  661. package/src/service/tree/tree-service.ts +8 -2
  662. package/src/style/antdComponents/All.scss +5 -9
  663. package/src/style/basic.scss +2 -1
  664. package/src/style/components/implementation/form/select.scss +2 -21
  665. package/src/style/components/implementation/form/string.scss +18 -0
  666. package/src/style/components/index.scss +0 -1
  667. package/src/style/index.scss +1 -0
  668. package/src/tags/ActionBar.vue +2 -3
  669. package/src/tags/Row.vue +1 -2
  670. package/src/tags/View.vue +10 -2
  671. package/src/tags/context/index.ts +0 -1
  672. package/src/tags/context/runtime-context-helper.ts +2 -1
  673. package/src/tags/internal/EditorField.vue +2 -3
  674. package/src/tags/mixin/BaseWidgetTagMixin.ts +2 -1
  675. package/src/tags/mixin/use-widget-tag.ts +2 -1
  676. package/src/tags/resolve/helper.ts +6 -183
  677. package/src/tags/resolve/internal/widget-resolve.ts +11 -4
  678. package/src/tags/resolve/widget-resolve.ts +1 -2
  679. package/src/typing/action.ts +0 -6
  680. package/src/typing/card-cascader.ts +1 -1
  681. package/src/typing/control-icon.ts +7 -0
  682. package/src/typing/event/index.ts +1 -0
  683. package/src/typing/event/table.ts +44 -0
  684. package/src/typing/index.ts +3 -0
  685. package/src/typing/view.ts +14 -0
  686. package/src/util/default-tree-definition.ts +100 -1
  687. package/src/util/jumpDesignerPage.ts +11 -3
  688. package/src/util/tree-utils.ts +1 -2
  689. package/src/view/application-screen/gallery/Gallery.vue +6 -0
  690. package/src/view/application-screen/gallery/field/select/AppsModuleUpstreamSelectWidget.ts +2 -2
  691. package/src/view/card/CardWidget.ts +87 -4
  692. package/src/view/card/DefaultCard.vue +124 -42
  693. package/src/view/card/DefaultCardContent.vue +25 -0
  694. package/src/view/card/DefaultCardTitle.vue +25 -0
  695. package/src/view/card/DefaultCardTitleToolbar.vue +1 -1
  696. package/src/view/card/style/index.scss +26 -8
  697. package/src/view/card-cascader/AbstractCardCascaderElementWidget.ts +1 -2
  698. package/src/view/card-cascader/CardCascaderWidget.ts +1 -1
  699. package/src/view/card-cascader/DefaultCardCascader.vue +2 -1
  700. package/src/view/card-cascader/TableSearchCardCascaderWidget.ts +1 -1
  701. package/src/view/detail/DetailWidget.ts +7 -0
  702. package/src/view/detail/style/index.scss +18 -0
  703. package/src/view/gallery/DefaultGallery.vue +15 -1
  704. package/src/view/gallery/GalleryWidget.ts +111 -4
  705. package/src/view/gallery/style/index.scss +1 -0
  706. package/src/view/homepage-setting/components/MultiSelect.vue +3 -3
  707. package/src/view/homepage-setting/components/SingleSelect.vue +2 -3
  708. package/src/view/index.ts +2 -0
  709. package/src/view/login/LoginWidget.ts +1 -1
  710. package/src/view/popup/PopupWidget.ts +111 -12
  711. package/src/view/popup/dialog/DefaultDialog.vue +127 -6
  712. package/src/view/popup/dialog/DialogWidget.ts +14 -6
  713. package/src/view/popup/dialog/StaticDialogWidget.ts +2 -2
  714. package/src/view/popup/dialog/style/index.scss +24 -0
  715. package/src/view/popup/drawer/DefaultDrawer.vue +146 -7
  716. package/src/view/popup/drawer/DrawerWidget.ts +15 -8
  717. package/src/view/popup/drawer/StaticDrawerWidget.ts +2 -2
  718. package/src/view/popup/drawer/style/index.scss +183 -2
  719. package/src/view/popup/inner/DefaultInnerPopup.vue +17 -12
  720. package/src/view/popup/inner/InnerPopupWidget.ts +2 -7
  721. package/src/view/quick-fill/Excel.vue +951 -0
  722. package/src/view/quick-fill/QuickFill.vue +358 -0
  723. package/src/view/quick-fill/QuickFillWidget.ts +704 -0
  724. package/src/view/quick-fill/index.ts +1 -0
  725. package/src/view/quick-fill/type.ts +14 -0
  726. package/src/view/search/DefaultSearch.vue +161 -134
  727. package/src/view/system-style/SystemStyle.vue +70 -31
  728. package/src/view/system-style/SystemStyleWidget.ts +4 -3
  729. package/src/view/table/DefaultTable.vue +335 -51
  730. package/src/view/table/DefaultTableFooterOperator.vue +58 -0
  731. package/src/view/table/DefaultTableGroupCollapse.vue +69 -0
  732. package/src/view/table/TableUserPrefer.vue +4 -0
  733. package/src/view/table/TableUserPreferWidget.ts +7 -2
  734. package/src/view/table/TableWidget.ts +676 -22
  735. package/src/view/table/index.ts +0 -3
  736. package/src/view/table/style/index.scss +39 -1
  737. package/src/view/translate/translate-page-util/translate-box/TranslateBoxWidget.vue +9 -3
  738. package/src/view/tree/AbstractTreeElementWidget.ts +2 -2
  739. package/src/view/tree/TableSearchTreeWidget.ts +1 -2
  740. package/src/view/tree/TreeWidget.ts +8 -2
  741. package/src/view/tree/props.ts +1 -1
  742. package/src/view/view/DefaultView.vue +38 -13
  743. package/src/view/view/DetailView.ts +6 -1
  744. package/src/view/view/FormView.ts +5 -0
  745. package/src/view/view/SearchView.ts +6 -1
  746. package/src/view/view/TableView.ts +8 -3
  747. package/src/view/view/style/index.scss +158 -0
  748. package/src/view/view-control/DefaultViewControl.vue +132 -0
  749. package/src/view/view-control/ViewControlWidget.ts +64 -0
  750. package/src/view/view-control/card-col-control/CardColControlWidget.ts +33 -0
  751. package/src/view/view-control/card-col-control/DefaultCardColControl.vue +125 -0
  752. package/src/view/view-control/full-screen-control/DefaultFullScreenControl.vue +28 -0
  753. package/src/view/view-control/full-screen-control/FullScreenControlWidget.ts +17 -0
  754. package/src/view/view-control/group-control/DefaultGroupControl.vue +88 -0
  755. package/src/view/view-control/group-control/GroupControlWidget.ts +87 -0
  756. package/src/view/view-control/index.ts +7 -0
  757. package/src/view/view-control/keyboard-shortcut/DefaultKeyboardShortcut.vue +172 -0
  758. package/src/view/view-control/keyboard-shortcut/KeyboardShortcutWidget.ts +66 -0
  759. package/src/view/view-control/line-height-control/DefaultLineHeightControl.vue +26 -0
  760. package/src/view/view-control/line-height-control/LineHeightControlWidget.ts +39 -0
  761. package/src/view/view-control/sort-control/DefaultSortControl.vue +85 -0
  762. package/src/view/view-control/sort-control/SortControlWidget.ts +89 -0
  763. package/src/view/workbench/Workbench.vue +1 -0
  764. package/src/view/workbench/services.ts +22 -23
  765. package/dist/types/src/basic/form/context.d.ts +0 -7
  766. package/dist/types/src/field/form/metadata-area/SelectDefault/SelectActionWidget.d.ts +0 -6
  767. package/dist/types/src/field/form/metadata-area/SelectDefault/SelectFieldAction.vue.d.ts +0 -105
  768. package/dist/types/src/field/form/metadata-area/SelectDefault/SelectFieldActionNode.vue.d.ts +0 -76
  769. package/dist/types/src/field/form/metadata-area/SelectDefault/SelectFieldWidget.d.ts +0 -6
  770. package/dist/types/src/field/form/metadata-area/SelectFieldActionWidget.d.ts +0 -33
  771. package/dist/types/src/field/form/metadata-area/index.d.ts +0 -4
  772. package/dist/types/src/field/form/metadata-area/service.d.ts +0 -2
  773. package/dist/types/src/field/form/metadata-area/typing.d.ts +0 -73
  774. package/dist/types/src/field/table/html/richtext/TableHtmlRichTextFieldWidget.d.ts +0 -11
  775. package/dist/types/src/field/table/html/richtext/index.d.ts +0 -1
  776. package/dist/types/src/field/table/relation/index.d.ts +0 -4
  777. package/dist/types/src/field/table/relation/m2m/index.d.ts +0 -1
  778. package/dist/types/src/field/table/relation/m2o/index.d.ts +0 -1
  779. package/dist/types/src/field/table/relation/o2m/index.d.ts +0 -1
  780. package/dist/types/src/field/table/relation/o2o/index.d.ts +0 -1
  781. package/dist/types/src/tags/context/context.d.ts +0 -41
  782. package/dist/types/src/tags/resolve/internal/row-col-resolve.d.ts +0 -76
  783. package/dist/types/src/view/table/config.d.ts +0 -22
  784. package/dist/types/src/view/table/typing.d.ts +0 -4
  785. package/src/basic/form/context.ts +0 -51
  786. package/src/field/form/m2m/select/FormM2MFieldSelectWidget.ts +0 -55
  787. package/src/field/form/metadata-area/SelectDefault/SelectActionWidget.ts +0 -24
  788. package/src/field/form/metadata-area/SelectDefault/SelectFieldAction.vue +0 -257
  789. package/src/field/form/metadata-area/SelectDefault/SelectFieldActionNode.vue +0 -277
  790. package/src/field/form/metadata-area/SelectDefault/SelectFieldWidget.ts +0 -22
  791. package/src/field/form/metadata-area/SelectFieldActionWidget.ts +0 -378
  792. package/src/field/form/metadata-area/index.ts +0 -6
  793. package/src/field/form/metadata-area/service.ts +0 -46
  794. package/src/field/form/metadata-area/typing.ts +0 -114
  795. package/src/field/form/o2m/select/SelectWidget.vue +0 -111
  796. package/src/field/form/o2o/select/SelectWidget.vue +0 -119
  797. package/src/field/table/html/richtext/TableHtmlRichTextFieldWidget.ts +0 -30
  798. package/src/field/table/html/richtext/index.ts +0 -1
  799. package/src/field/table/relation/index.ts +0 -4
  800. package/src/field/table/relation/m2m/index.ts +0 -1
  801. package/src/field/table/relation/m2o/index.ts +0 -1
  802. package/src/field/table/relation/o2m/index.ts +0 -1
  803. package/src/field/table/relation/o2o/index.ts +0 -1
  804. package/src/style/components/drawer.scss +0 -151
  805. package/src/tags/context/context.ts +0 -57
  806. package/src/tags/resolve/internal/row-col-resolve.ts +0 -358
  807. package/src/view/table/config.ts +0 -30
  808. package/src/view/table/typing.ts +0 -4
  809. /package/dist/types/src/components/oio-manage-group/{oio-manage-group.vue.d.ts → OioManageGroup.vue.d.ts} +0 -0
  810. /package/dist/types/src/field/table/html/{richtext/TableRichText.vue.d.ts → TableRichText.vue.d.ts} +0 -0
  811. /package/dist/types/src/field/table/{relation/m2m → m2m/select}/TableM2MFieldWidget.d.ts +0 -0
  812. /package/dist/types/src/field/table/{relation/m2o → m2o/select}/TableM2OFieldWidget.d.ts +0 -0
  813. /package/dist/types/src/field/table/{relation/o2m → o2m/select}/TableO2MFieldWidget.d.ts +0 -0
  814. /package/dist/types/src/field/table/{relation/o2o → o2o/select}/TableO2OFieldWidget.d.ts +0 -0
  815. /package/src/components/oio-manage-group/{oio-manage-group.vue → OioManageGroup.vue} +0 -0
@@ -1,12 +1,16 @@
1
- import { DEFAULT_SLOT_NAME } from '@oinone/kunlun-dsl';
1
+ import { DEFAULT_SLOT_NAME, DslDefinition, DslDefinitionType } from '@oinone/kunlun-dsl';
2
2
  import {
3
3
  ActiveRecord,
4
4
  ActiveRecords,
5
+ activeRecordsClone,
5
6
  ActiveRecordsOperator,
7
+ formValidateErrorProcess,
6
8
  FunctionCache,
7
9
  FunctionMetadata,
8
10
  FunctionService,
11
+ GroupingField,
9
12
  isRelation2MField,
13
+ KeyboardConfig,
10
14
  parseConfigs,
11
15
  RuntimeAction,
12
16
  RuntimeFunctionDefinition,
@@ -14,14 +18,17 @@ import {
14
18
  RuntimeO2MField,
15
19
  SubmitCacheManager,
16
20
  SubmitValue,
17
- translateValueByKey,
18
- RelationUpdateType
21
+ TableKeyboardConfig,
22
+ translateValueByKey
19
23
  } from '@oinone/kunlun-engine';
20
24
  import { Expression, ExpressionRunParam } from '@oinone/kunlun-expression';
21
- import { MessageHub } from '@oinone/kunlun-request';
22
- import { BooleanHelper, CallChaining, Optional, ReturnPromise } from '@oinone/kunlun-shared';
25
+ import { HttpClientError, MessageHub } from '@oinone/kunlun-request';
26
+ import { EDirection, ISort } from '@oinone/kunlun-service';
27
+ import { BooleanHelper, Optional, ReturnPromise, StringHelper } from '@oinone/kunlun-shared';
23
28
  import {
24
29
  ActiveEditorContext,
30
+ CheckedChangeEvent,
31
+ GROUP_TREE_KEY,
25
32
  OioTableInstance,
26
33
  RowContext,
27
34
  TableEditorCloseTrigger,
@@ -30,41 +37,44 @@ import {
30
37
  VxeTableHelper
31
38
  } from '@oinone/kunlun-vue-ui';
32
39
  import { ListSelectMode, OioNotification, StyleHelper } from '@oinone/kunlun-vue-ui-antd';
33
- import { Widget } from '@oinone/kunlun-vue-widget';
34
- import { cloneDeep, isEmpty, isEqual, isNil, isPlainObject, omitBy } from 'lodash-es';
40
+ import { isTableViewState, OioAnyViewState, OioTableViewState, Widget } from '@oinone/kunlun-vue-widget';
41
+ import { cloneDeep, isEmpty, isEqual, isNil, isPlainObject, omitBy, toString } from 'lodash-es';
35
42
  import { nextTick } from 'vue';
36
- import { UserPreferEventManager, UserPreferService } from '../../service';
37
- import { UserTablePrefer } from '../../typing';
38
- import { TableRowEditMode } from '../../typing/action';
43
+ import { VxeTablePropTypes } from 'vxe-table';
44
+ import {
45
+ BaseTableEvent,
46
+ TableAddEvent,
47
+ TableCopyEvent,
48
+ TableEditEvent,
49
+ TableEventCallChaining,
50
+ TableEventType
51
+ } from '../../typing';
39
52
  import { FetchUtil } from '../../util';
40
- import { BaseElementListViewWidget, BaseElementListViewWidgetProps } from '../element';
53
+ import { BaseElementListViewWidget, BaseElementListViewWidgetProps, getSortFieldDirection } from '../element';
41
54
  import { BaseTableColumnWidget } from '../table-column';
42
- import { FieldWidgetComponentFunction, IFormSubviewListFieldWidget } from '../types';
55
+ import { FieldWidgetComponentFunction, IFormSubviewListFieldWidget, UrlQueryParameters } from '../types';
43
56
 
44
57
  interface ColumnWidgetEntity {
45
58
  widget: BaseTableColumnWidget;
46
59
  index: number;
47
60
  }
48
61
 
49
- function isActiveRecordArray(value: ActiveRecords): value is ActiveRecord[] {
50
- return Array.isArray(value);
62
+ export interface TableBindingKeyboardConfig {
63
+ key: string;
64
+ ctrl: boolean;
65
+ shift: boolean;
66
+ alt: boolean;
67
+ fn: (e: KeyboardEvent) => void;
51
68
  }
52
69
 
70
+ const URL_SPLIT_SEPARATOR = ',';
71
+ const ORDERING_SEPARATOR = ',';
72
+
53
73
  export class BaseTableWidget<
54
74
  Props extends BaseElementListViewWidgetProps = BaseElementListViewWidgetProps
55
75
  > extends BaseElementListViewWidget<Props> {
56
76
  protected tableInstance: OioTableInstance | undefined;
57
77
 
58
- protected tableRowEditMode: TableRowEditMode | undefined;
59
-
60
- @Widget.Reactive()
61
- @Widget.Provide('tableForceEditable')
62
- protected createMode: boolean | undefined;
63
-
64
- protected cachedEditActiveRecords: ActiveRecord | undefined;
65
-
66
- protected currentTriggerCreateAction: RuntimeAction | undefined;
67
-
68
78
  public getTableInstance() {
69
79
  return this.tableInstance;
70
80
  }
@@ -74,6 +84,10 @@ export class BaseTableWidget<
74
84
  this.tableInstance = tableInstance;
75
85
  }
76
86
 
87
+ protected get tableConfig() {
88
+ return this.getMergeConfig('table');
89
+ }
90
+
77
91
  @Widget.Method()
78
92
  @Widget.Provide()
79
93
  protected getFieldWidgetComponent: FieldWidgetComponentFunction | undefined;
@@ -118,7 +132,7 @@ export class BaseTableWidget<
118
132
  protected get height(): string | undefined {
119
133
  let height = StyleHelper.px(this.getDsl().height);
120
134
  if (this.inline && !height) {
121
- height = '300px';
135
+ height = '400px';
122
136
  }
123
137
  return height;
124
138
  }
@@ -136,7 +150,81 @@ export class BaseTableWidget<
136
150
  @Widget.Reactive()
137
151
  @Widget.Provide()
138
152
  protected get sortable() {
139
- return super.sortable;
153
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.tableConfig.sortable)).orElse(true);
154
+ }
155
+
156
+ @Widget.Reactive()
157
+ protected get enableViewControl() {
158
+ return BooleanHelper.toBoolean(this.tableConfig.enableViewControl);
159
+ }
160
+
161
+ /**
162
+ * 视图控制组,包含所有子组件
163
+ */
164
+ @Widget.Reactive()
165
+ protected get viewControlWidget(): DslDefinition | undefined {
166
+ if (this.enableViewControl === false) {
167
+ return undefined;
168
+ }
169
+ if (!this.viewControlChildren.length) {
170
+ return undefined;
171
+ }
172
+ return {
173
+ dslNodeType: DslDefinitionType.ELEMENT,
174
+ widget: 'ViewControl',
175
+ widgets: this.viewControlChildren
176
+ };
177
+ }
178
+
179
+ /**
180
+ * 视图控制相关的子组件, 可能包含(排序、分组、行高切换、全屏)
181
+ */
182
+ @Widget.Reactive()
183
+ protected get viewControlChildren(): DslDefinition[] {
184
+ const controls: { enabled: boolean; widget: string; props?: Record<string, unknown> }[] = [
185
+ {
186
+ enabled: this.sortable,
187
+ widget: 'SortControl'
188
+ },
189
+ {
190
+ enabled: this.enableGrouping,
191
+ widget: 'GroupControl'
192
+ },
193
+ {
194
+ enabled: this.enabledFullScreen,
195
+ widget: 'FullScreenControl'
196
+ },
197
+ {
198
+ enabled: this.switchLineHeight,
199
+ widget: 'LineHeightControl'
200
+ },
201
+ {
202
+ enabled: this.enabledKeyboard,
203
+ widget: 'KeyboardShortcut'
204
+ }
205
+ ];
206
+ return controls
207
+ .filter(({ enabled }) => enabled)
208
+ .map(({ widget, props }) => ({
209
+ dslNodeType: DslDefinitionType.ELEMENT,
210
+ ...props,
211
+ widget,
212
+ widgets: []
213
+ }));
214
+ }
215
+
216
+ /**
217
+ * 启用切换行高
218
+ * @protected
219
+ */
220
+ @Widget.Reactive()
221
+ protected get switchLineHeight() {
222
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.tableConfig.switchLineHeight)).orElse(true);
223
+ }
224
+
225
+ @Widget.Reactive()
226
+ protected get enabledFullScreen(): boolean {
227
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.tableConfig.enabledFullScreen)).orElse(true);
140
228
  }
141
229
 
142
230
  // region 行内编辑
@@ -148,7 +236,13 @@ export class BaseTableWidget<
148
236
  @Widget.Reactive()
149
237
  @Widget.Provide()
150
238
  protected get editable(): boolean | undefined {
151
- return this.createMode || BooleanHelper.toBoolean(this.getDsl().editable);
239
+ if (this.currentEditorContext?.forceEditable) {
240
+ return true;
241
+ }
242
+ if (this.inline) {
243
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.getDsl().editable)).orElse(true);
244
+ }
245
+ return BooleanHelper.toBoolean(this.getDsl().editable);
152
246
  }
153
247
 
154
248
  /**
@@ -181,34 +275,22 @@ export class BaseTableWidget<
181
275
  @Widget.Reactive()
182
276
  @Widget.Provide()
183
277
  protected get editorMode(): TableEditorMode {
184
- return this.createMode
185
- ? TableEditorMode.row
186
- : ((this.getDsl().editorMode as string)?.toLowerCase?.() as TableEditorMode) || TableEditorMode.cell;
187
- }
188
-
189
- @Widget.Reactive()
190
- @Widget.Inject()
191
- protected editRowCallChaining: CallChaining | undefined;
192
-
193
- protected async editRow(type: unknown, data: unknown) {
194
- this.createMode = type !== TableRowEditMode.EXIST;
195
- this.tableRowEditMode = type as TableRowEditMode;
196
- const { record, action } = data as { record: ActiveRecord | undefined; action: RuntimeAction };
197
- nextTick(() => {
198
- this.tableInstance?.setEditRow(record);
199
- this.cachedEditActiveRecords = cloneDeep(record);
200
- this.currentTriggerCreateAction = action;
201
- });
278
+ return (
279
+ this.currentEditorContext?.editorMode ||
280
+ ((this.getDsl().editorMode as string)?.toLowerCase?.() as TableEditorMode) ||
281
+ TableEditorMode.row
282
+ );
202
283
  }
203
284
 
204
285
  /**
205
- * 行内触发关闭触发方式
286
+ * 行内编辑关闭触发方式
206
287
  * @protected
207
288
  */
208
289
  @Widget.Reactive()
209
290
  @Widget.Provide()
210
291
  protected get editorCloseTrigger(): TableEditorCloseTrigger {
211
292
  return (
293
+ this.currentEditorContext?.editorCloseTrigger ||
212
294
  ((this.getDsl().editorCloseTrigger as string)?.toLowerCase?.() as TableEditorCloseTrigger) ||
213
295
  TableEditorCloseTrigger.auto
214
296
  );
@@ -232,6 +314,20 @@ export class BaseTableWidget<
232
314
  return this.lastedCurrentEditorContext;
233
315
  }
234
316
 
317
+ protected isNewRow(row?: ActiveRecord): boolean | undefined {
318
+ const { currentEditorContext } = this;
319
+ if (currentEditorContext) {
320
+ if (currentEditorContext.new) {
321
+ return true;
322
+ }
323
+ if (currentEditorContext.rowIndex === -1) {
324
+ return !FetchUtil.generatorPksObject(this.model, row || currentEditorContext.row);
325
+ }
326
+ return false;
327
+ }
328
+ return undefined;
329
+ }
330
+
235
331
  /**
236
332
  * 激活编辑模式前的回调
237
333
  * @param context 激活编辑模式上下文
@@ -277,6 +373,14 @@ export class BaseTableWidget<
277
373
  return true;
278
374
  }
279
375
 
376
+ /**
377
+ * Vxe-Table 事件不支持异步,使用关闭后置执行队列保证异步执行有序。
378
+ * <br>在使用单元格级别的行内编辑时,切换单元格将快速执行 close -> active 事件
379
+ * <br>async/await 将打乱执行顺序,导致 currentEditorContext 变量异常,上下文出现混乱
380
+ * @protected
381
+ */
382
+ protected activeClosedAfterQueue: Function[] | undefined;
383
+
280
384
  /**
281
385
  * 激活编辑模式回调
282
386
  * @param context 激活编辑模式上下文
@@ -289,13 +393,33 @@ export class BaseTableWidget<
289
393
  this.getColumnWidgets(true).forEach((columnWidget, index) => {
290
394
  editableMap[columnWidget.path] = this.filterEditable(context, columnWidget, index);
291
395
  });
292
- this.lastedCurrentEditorContext = context;
396
+ if (this.activeClosedAfterQueue) {
397
+ this.activeClosedAfterQueue.push(() => {
398
+ this.updateLastedCurrentEditorContext(context);
399
+ });
400
+ } else {
401
+ this.updateLastedCurrentEditorContext(context);
402
+ }
293
403
  }
294
404
 
295
- protected async removeRecordFormDataSource(context: RowContext) {
296
- const { data } = context;
297
- const newActiveRecords = this.dataSource?.filter((v) => v.__draftId !== data.__draftId);
298
- return this.reloadDataSource(newActiveRecords);
405
+ protected updateLastedCurrentEditorContext(context: ActiveEditorContext): void {
406
+ const { lastedCurrentEditorContext } = this;
407
+ if (lastedCurrentEditorContext) {
408
+ if (lastedCurrentEditorContext.prepare) {
409
+ this.lastedCurrentEditorContext = {
410
+ ...context,
411
+ ...this.lastedCurrentEditorContext,
412
+ prepare: false
413
+ };
414
+ } else {
415
+ if (this.editorMode !== TableEditorMode.cell) {
416
+ console.error('You must be clear lasted current editor context.');
417
+ }
418
+ this.lastedCurrentEditorContext = context;
419
+ }
420
+ } else {
421
+ this.lastedCurrentEditorContext = context;
422
+ }
299
423
  }
300
424
 
301
425
  /**
@@ -307,16 +431,13 @@ export class BaseTableWidget<
307
431
  @Widget.Provide()
308
432
  protected async rowEditorClosedBefore(context: RowContext): Promise<boolean> {
309
433
  // 新增时有可能会多出来一些空值key。 过滤后对比
310
- const pureData = omitBy({ ...context.data }, isNil);
311
- if (isEqual(pureData, this.cachedEditActiveRecords) && this.tableRowEditMode === TableRowEditMode.CREATE) {
312
- if (context?.data) {
313
- await this.removeRecordFormDataSource(context);
314
- }
315
- this.createMode = false;
316
- this.cachedEditActiveRecords = undefined;
317
- this.currentTriggerCreateAction = undefined;
318
- return false;
319
- }
434
+ // const pureData = omitBy({ ...context.data }, isNil);
435
+ // if (isEqual(pureData, this.currentEditorContext!.row) && this.tableRowEditMode === TableRowEditMode.CREATE) {
436
+ // if (context?.data) {
437
+ // await this.removeRecordFormDataSource(context);
438
+ // }
439
+ // return false;
440
+ // }
320
441
  const res = await this.rowEditorClosedForValidator(context);
321
442
  if (!res) {
322
443
  return false;
@@ -331,54 +452,85 @@ export class BaseTableWidget<
331
452
  */
332
453
  @Widget.Method()
333
454
  @Widget.Provide()
334
- protected async rowEditorClosed(context: RowContext | undefined): Promise<boolean> {
335
- if (!context) {
455
+ protected rowEditorClosed(context: RowContext | undefined): Promise<boolean> {
456
+ this.activeClosedAfterQueue = [];
457
+ return this.$rowEditorClosed(context)
458
+ .then((res) => {
459
+ this.activeClosedAfterQueue?.forEach((fn) => fn());
460
+ return res;
461
+ })
462
+ .finally(() => {
463
+ this.activeClosedAfterQueue = undefined;
464
+ });
465
+ }
466
+
467
+ protected async $rowEditorClosed(context: RowContext | undefined) {
468
+ if (!context || this.currentEditorContext?.prepare) {
469
+ return true;
470
+ }
471
+ if (!this.currentEditorContext?.submit) {
472
+ await this.rowEditorClosedAfterProcess(context);
473
+ this.lastedCurrentEditorContext = undefined;
336
474
  return true;
337
475
  }
338
-
339
476
  let res = await this.rowEditorClosedBefore(context);
340
477
  if (!res) {
341
478
  return false;
342
479
  }
343
480
  const data = await this.rowEditorClosedForSubmit(context);
344
- const useDiffUpdate = [RelationUpdateType.diff, RelationUpdateType.batch].includes(this.relationUpdateType)
345
481
  if (this.inline) {
346
482
  if (res && data) {
347
- if (this.createMode && useDiffUpdate) {
348
- this.createSubviewFieldWidget(context, data);
483
+ if (this.isNewRow(data)) {
484
+ const newRow = omitBy(activeRecordsClone(data), isNil);
485
+ if (Object.keys(newRow).length > 0) {
486
+ context = { ...context, data: newRow };
487
+ this.$rowEditorComputeInvisibleColumns(context);
488
+ this.createSubviewFieldWidget(context, newRow);
489
+ } else {
490
+ this.currentEditorContext.submit = false;
491
+ }
349
492
  } else {
493
+ context = { ...context, data };
494
+ this.$rowEditorComputeInvisibleColumns(context);
350
495
  this.updateSubviewFieldWidget(context, data);
351
496
  }
352
-
353
497
  }
354
498
  } else if (data) {
355
499
  try {
356
- if (this.createMode) {
357
- res = await this.rowEditorClosedForCreate(context, data);
500
+ if (this.isNewRow(data)) {
501
+ const newRow = omitBy(activeRecordsClone(data), isNil);
502
+ if (Object.keys(newRow).length > 0) {
503
+ context = { ...context, data: newRow };
504
+ this.$rowEditorComputeInvisibleColumns(context);
505
+ res = await this.rowEditorClosedForCreate(context, newRow);
506
+ } else {
507
+ this.currentEditorContext.submit = false;
508
+ }
358
509
  } else {
510
+ context = { ...context, data };
511
+ this.$rowEditorComputeInvisibleColumns(context);
359
512
  res = await this.rowEditorClosedForUpdate(context, data);
360
513
  }
361
514
  } catch (e) {
362
- console.error(e);
363
515
  res = false;
364
516
  }
365
517
  }
366
518
  if (res) {
367
519
  await this.rowEditorClosedAfterProcess(context);
368
-
369
520
  if (this.editorMode !== TableEditorMode.cell) {
370
521
  this.lastedCurrentEditorContext = undefined;
371
522
  }
372
523
  }
373
- if (!res && context?.data) {
374
- await this.removeRecordFormDataSource(context);
375
- }
376
- this.createMode = false;
377
- this.cachedEditActiveRecords = undefined;
378
- this.currentTriggerCreateAction = undefined;
379
524
  return res;
380
525
  }
381
526
 
527
+ protected $rowEditorComputeInvisibleColumns(context: RowContext) {
528
+ (this.viewState as OioTableViewState)?.fields
529
+ ?.map((v) => Widget.select<BaseTableColumnWidget>(v))
530
+ .filter((v) => v != null && v.invisible)
531
+ .forEach((v) => v?.compute(context));
532
+ }
533
+
382
534
  /**
383
535
  * 行内编辑关闭时的数据验证
384
536
  * @param context 行上下文
@@ -393,13 +545,25 @@ export class BaseTableWidget<
393
545
  return res;
394
546
  }
395
547
 
548
+ @Widget.Reactive()
549
+ protected get rowEditorSubmitAll() {
550
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.tableConfig.rowEditorSubmitAll)).orElse(false);
551
+ }
552
+
396
553
  /**
397
554
  * 行内编辑关闭时的数据提交
398
555
  * @param context 行上下文
399
556
  * @protected
400
557
  */
401
558
  protected async rowEditorClosedForSubmit(context: RowContext): Promise<ActiveRecord | undefined> {
402
- const { editorMode, editorCloseTrigger } = this;
559
+ const { rowEditorSubmitAll, editorMode, editorCloseTrigger } = this;
560
+ if (rowEditorSubmitAll) {
561
+ if (editorMode === TableEditorMode.row || editorMode === TableEditorMode.cell) {
562
+ return context.data;
563
+ }
564
+ console.error('Invalid editor mode.', editorMode);
565
+ return undefined;
566
+ }
403
567
  switch (editorMode) {
404
568
  case TableEditorMode.row: {
405
569
  switch (editorCloseTrigger) {
@@ -421,7 +585,7 @@ export class BaseTableWidget<
421
585
  return undefined;
422
586
  }
423
587
 
424
- protected updateSubviewFieldWidget(context: RowContext, data: ActiveRecord) {
588
+ public updateSubviewFieldWidget(context: RowContext, data: ActiveRecords) {
425
589
  Optional.ofNullable(this.metadataRuntimeContext.field)
426
590
  .filter<RuntimeO2MField | RuntimeM2MField>((v) => isRelation2MField(v!))
427
591
  .ifPresent((field) => {
@@ -434,19 +598,18 @@ export class BaseTableWidget<
434
598
  const subviewSubmitCache = this.metadataRuntimeContext.extendData.subviewSubmitCache as SubmitCacheManager;
435
599
  if (showRecords) {
436
600
  if (submitCache) {
437
- ActiveRecordsOperator.operator(showRecords, submitCache).updateByEntity(context.data);
601
+ ActiveRecordsOperator.operator(showRecords, submitCache).updateByEntity(context.data || data);
438
602
  }
439
603
  if (subviewSubmitCache) {
440
- ActiveRecordsOperator.operator(showRecords, subviewSubmitCache).updateByEntity(context.data);
604
+ ActiveRecordsOperator.operator(showRecords, subviewSubmitCache).updateByEntity(context.data || data);
441
605
  }
442
606
  }
443
-
444
- subviewFieldWidget.flushDataSource(false);
607
+ subviewFieldWidget.flushDataSource();
445
608
  });
446
609
  });
447
610
  }
448
611
 
449
- protected createSubviewFieldWidget(context: RowContext, data: ActiveRecord) {
612
+ public createSubviewFieldWidget(context: RowContext, data: ActiveRecords) {
450
613
  Optional.ofNullable(this.metadataRuntimeContext.field)
451
614
  .filter<RuntimeO2MField | RuntimeM2MField>((v) => isRelation2MField(v!))
452
615
  .ifPresent((field) => {
@@ -458,15 +621,23 @@ export class BaseTableWidget<
458
621
  const { submitCache } = field;
459
622
  const subviewSubmitCache = this.metadataRuntimeContext.extendData.subviewSubmitCache as SubmitCacheManager;
460
623
  if (showRecords) {
624
+ const insertTo = this.lastedCurrentEditorContext?.insertTo;
461
625
  if (submitCache) {
462
- ActiveRecordsOperator.operator(showRecords, submitCache).push(context.data);
626
+ ActiveRecordsOperator.operator(showRecords, submitCache).push(
627
+ context.data || data,
628
+ undefined,
629
+ insertTo
630
+ );
463
631
  }
464
632
  if (subviewSubmitCache) {
465
- ActiveRecordsOperator.operator(showRecords, subviewSubmitCache).push(context.data);
633
+ ActiveRecordsOperator.operator(showRecords, subviewSubmitCache).push(
634
+ context.data || data,
635
+ undefined,
636
+ insertTo
637
+ );
466
638
  }
467
639
  }
468
-
469
- subviewFieldWidget.flushDataSource(false);
640
+ subviewFieldWidget.flushDataSource();
470
641
  });
471
642
  });
472
643
  }
@@ -513,7 +684,7 @@ export class BaseTableWidget<
513
684
  if (!currentEditorContext) {
514
685
  return true;
515
686
  }
516
- if (isActiveRecordArray(data)) {
687
+ if (Array.isArray(data)) {
517
688
  console.error('Invalid data format.', data);
518
689
  return true;
519
690
  }
@@ -541,7 +712,11 @@ export class BaseTableWidget<
541
712
  return false;
542
713
  }
543
714
  const res = await this.executeRowEditorUpdate(functionDefinition, data);
544
- await this.refreshRowEditorUpdate(context, data, res);
715
+ this.refreshRowEditorUpdate(context, data, res);
716
+ if (this.editorMode !== TableEditorMode.cell) {
717
+ // 单元格编辑时,切换单元格就会触发更新操作,消息提示过于密集
718
+ MessageHub.success(translateValueByKey('更新成功'));
719
+ }
545
720
  return true;
546
721
  }
547
722
 
@@ -550,7 +725,7 @@ export class BaseTableWidget<
550
725
  if (!currentEditorContext) {
551
726
  return true;
552
727
  }
553
- if (isActiveRecordArray(data)) {
728
+ if (Array.isArray(data)) {
554
729
  console.error('Invalid data format.', data);
555
730
  return true;
556
731
  }
@@ -573,34 +748,45 @@ export class BaseTableWidget<
573
748
  return false;
574
749
  }
575
750
  const res = await this.executeRowEditorUpdate(functionDefinition, data);
576
- await this.refreshRowEditorUpdate(context, data, res);
751
+ this.refreshRowEditorUpdate(context, data, res);
752
+ MessageHub.success(translateValueByKey('创建成功'));
577
753
  return true;
578
754
  }
579
755
 
580
756
  protected async executeRowEditorUpdate(functionDefinition: RuntimeFunctionDefinition, data: ActiveRecord) {
581
757
  const { rootRuntimeContext, model } = this;
582
758
  const requestFields = rootRuntimeContext.getRequestModelFields();
583
- if (this.currentTriggerCreateAction && this.currentTriggerCreateAction.sessionPath) {
584
- return FunctionService.INSTANCE.simpleExecute<Record<string, unknown>>(
759
+ const sessionPath = (this.currentEditorContext?.triggerAction as unknown as RuntimeAction)?.sessionPath;
760
+ try {
761
+ if (sessionPath) {
762
+ return await FunctionService.INSTANCE.simpleExecute<Record<string, unknown>>(
763
+ model,
764
+ functionDefinition,
765
+ {
766
+ requestFields,
767
+ variables: {
768
+ path: sessionPath,
769
+ relationExcludeUpdate: true
770
+ }
771
+ },
772
+ data
773
+ );
774
+ }
775
+ return await FunctionService.INSTANCE.simpleExecute<Record<string, unknown>>(
585
776
  model,
586
777
  functionDefinition,
587
778
  {
588
779
  requestFields,
589
780
  variables: {
590
- path: this.currentTriggerCreateAction?.sessionPath
781
+ relationExcludeUpdate: true
591
782
  }
592
783
  },
593
784
  data
594
785
  );
786
+ } catch (e) {
787
+ formValidateErrorProcess(e as HttpClientError);
788
+ throw e;
595
789
  }
596
- return FunctionService.INSTANCE.simpleExecute<Record<string, unknown>>(
597
- model,
598
- functionDefinition,
599
- {
600
- requestFields
601
- },
602
- data
603
- );
604
790
  }
605
791
 
606
792
  protected refreshRowEditorUpdate(context: RowContext, data: ActiveRecord, res: unknown) {
@@ -628,6 +814,10 @@ export class BaseTableWidget<
628
814
  if (currentEditorContext && !currentEditorContext.submit) {
629
815
  const $data = currentEditorContext.row;
630
816
  if (dataSource) {
817
+ if (this.isNewRow()) {
818
+ this.tableInstance?.removeInsertRow();
819
+ return;
820
+ }
631
821
  dataSource[currentEditorContext.rowIndex] = $data;
632
822
  this.reloadDataSource([...dataSource]);
633
823
  }
@@ -649,14 +839,391 @@ export class BaseTableWidget<
649
839
 
650
840
  // endregion
651
841
 
842
+ // region keyboard-config
843
+
844
+ /**
845
+ * 允许键盘快捷操作
846
+ * @protected
847
+ */
848
+ @Widget.Reactive()
849
+ protected get enabledKeyboard(): boolean {
850
+ return Optional.ofNullable(BooleanHelper.toBoolean(this.tableConfig.enabledKeyboard)).orElse(!!this.editable);
851
+ }
852
+
853
+ /**
854
+ * 表格单元格快捷键编辑
855
+ */
856
+ @Widget.Reactive()
857
+ @Widget.Provide()
858
+ protected get keyboardConfig(): TableKeyboardConfig {
859
+ return this.defaultKeyboardConfig;
860
+ }
861
+
862
+ protected get defaultKeyboardConfig(): TableKeyboardConfig {
863
+ let { keyboardConfig } = this.tableConfig;
864
+ if (!keyboardConfig) {
865
+ keyboardConfig = {};
866
+ }
867
+ keyboardConfig.left = keyboardConfig.left || { key: 'Tab', shift: true, desc: '向左移动单元格' };
868
+ keyboardConfig.right = keyboardConfig.right || { key: 'Tab', desc: '向右移动单元格' };
869
+ keyboardConfig.up = keyboardConfig.up || { key: 'Enter', ctrl: true, shift: true, desc: '向上移动单元格' };
870
+ keyboardConfig.down = keyboardConfig.down || { key: 'Enter', ctrl: true, desc: '向下移动单元格' };
871
+ keyboardConfig.enter = keyboardConfig.enter || { key: 'Enter', desc: '提交数据' };
872
+ keyboardConfig.cancel = keyboardConfig.cancel || { key: 'Esc', desc: '取消编辑' };
873
+ return keyboardConfig;
874
+ }
875
+
876
+ @Widget.Reactive()
877
+ protected get bindingKeyboardConfig(): Record<string, TableBindingKeyboardConfig[]> {
878
+ const configs: Record<string, TableBindingKeyboardConfig[]> = {};
879
+ const pushConfig = (config: KeyboardConfig | undefined, fn: TableBindingKeyboardConfig['fn']) => {
880
+ if (!config) {
881
+ return;
882
+ }
883
+ const { key, ctrl, shift, alt } = config;
884
+ let bindingConfigs = configs[key];
885
+ if (!bindingConfigs) {
886
+ bindingConfigs = [];
887
+ configs[key] = bindingConfigs;
888
+ }
889
+ bindingConfigs.push({
890
+ key,
891
+ ctrl: ctrl || false,
892
+ shift: shift || false,
893
+ alt: alt || false,
894
+ fn
895
+ });
896
+ };
897
+ const { keyboardConfig } = this;
898
+ pushConfig(keyboardConfig.left, this.onKeyboardMoveToLeftCell);
899
+ pushConfig(keyboardConfig.right, this.onKeyboardMoveToRightCell);
900
+ pushConfig(keyboardConfig.up, this.onKeyboardMoveToUpCell);
901
+ pushConfig(keyboardConfig.down, this.onKeyboardMoveToDownCell);
902
+ pushConfig(keyboardConfig.enter, this.onKeyboardEnter);
903
+ pushConfig(keyboardConfig.cancel, this.onKeyboardCancel);
904
+ return configs;
905
+ }
906
+
907
+ protected matchKeyboardFunction(event: KeyboardEvent): ((e: KeyboardEvent) => void) | undefined {
908
+ const { bindingKeyboardConfig } = this;
909
+ const eventKey = event.key;
910
+ let bindingConfigs = bindingKeyboardConfig[eventKey];
911
+ if (bindingConfigs == null && eventKey === 'Escape') {
912
+ bindingConfigs = bindingKeyboardConfig.Esc;
913
+ }
914
+ if (!bindingConfigs) {
915
+ return undefined;
916
+ }
917
+ const { ctrlKey, metaKey, shiftKey, altKey } = event;
918
+ for (const bindingConfig of bindingConfigs) {
919
+ const { ctrl, shift, alt } = bindingConfig;
920
+ const isCtrlMatch = ctrlKey === ctrl || metaKey === ctrl;
921
+ const isShiftMatch = shiftKey === shift;
922
+ const isAltMatch = altKey === alt;
923
+ if (isCtrlMatch && isShiftMatch && isAltMatch) {
924
+ return bindingConfig.fn;
925
+ }
926
+ }
927
+ return undefined;
928
+ }
929
+
930
+ protected onKeyboardMoveToRightCell(event: KeyboardEvent) {}
931
+
932
+ protected onKeyboardMoveToLeftCell(event: KeyboardEvent) {}
933
+
934
+ protected onKeyboardMoveToDownCell(event: KeyboardEvent) {}
935
+
936
+ protected onKeyboardMoveToUpCell(event: KeyboardEvent) {}
937
+
938
+ protected onKeyboardEnter(event: KeyboardEvent) {}
939
+
940
+ protected onKeyboardCancel(event: KeyboardEvent) {}
941
+
942
+ // endregion
943
+
944
+ // region sort-config
945
+
946
+ @Widget.Reactive()
947
+ protected internalSortConfig: VxeTablePropTypes.SortConfig = {};
948
+
949
+ @Widget.Reactive()
950
+ protected multipleFieldSort = false;
951
+
952
+ @Widget.Reactive()
953
+ protected get sortConfig(): VxeTablePropTypes.SortConfig {
954
+ const sortConfig = {
955
+ ...this.internalSortConfig,
956
+ ...(this.getDsl().sortConfig || {})
957
+ };
958
+ if (sortConfig.multiple == null) {
959
+ sortConfig.multiple = this.multipleFieldSort;
960
+ }
961
+ return sortConfig;
962
+ }
963
+
964
+ protected initSortConfig() {
965
+ this.multipleFieldSort = (this.sortList?.length || 0) >= 2;
966
+ const sortConfig = this.internalSortConfig;
967
+ if (sortConfig.remote == null) {
968
+ sortConfig.remote = true;
969
+ }
970
+ if (sortConfig.defaultSort == null) {
971
+ const defaultSort: { field: string; order: VxeTablePropTypes.SortOrder }[] = [];
972
+ for (const { sortField, direction } of this.sortList || []) {
973
+ defaultSort.push({
974
+ field: sortField,
975
+ order: direction.toLowerCase() as VxeTablePropTypes.SortOrder
976
+ });
977
+ }
978
+ sortConfig.defaultSort = defaultSort;
979
+ }
980
+ }
981
+
982
+ // endregion
983
+
984
+ // region 数据分组
985
+
986
+ /**
987
+ * 启用分组
988
+ * @protected
989
+ */
990
+ @Widget.Reactive()
991
+ @Widget.Provide()
992
+ protected get enableGrouping(): boolean {
993
+ const enableGrouping = BooleanHelper.toBoolean(this.tableConfig.enableGrouping);
994
+ if (enableGrouping != null) {
995
+ return enableGrouping;
996
+ }
997
+ if (this.inline && !this.isDataSourceProvider) {
998
+ // fixme @zbh 20250925 子表格暂不支持分组
999
+ return false;
1000
+ }
1001
+ return true;
1002
+ }
1003
+
1004
+ /**
1005
+ * 分组视图数据源的总数量
1006
+ */
1007
+ @Widget.Reactive()
1008
+ protected groupingExpandedAll: boolean | undefined;
1009
+
1010
+ /**
1011
+ * 当前视图使用分组结构展示
1012
+ * 启动了分组并且有分组字段
1013
+ */
1014
+ @Widget.Provide()
1015
+ @Widget.Reactive()
1016
+ protected get enabledGroupView(): boolean {
1017
+ return this.enableGrouping && !!this.groupList?.length;
1018
+ }
1019
+
1020
+ /**
1021
+ * 分组视图底部展示「展开全部」操作
1022
+ */
1023
+ @Widget.Reactive()
1024
+ protected get groupViewFooterExpandControl() {
1025
+ if (this.enabledGroupView) {
1026
+ return !!this.groupingExpandedAll;
1027
+ }
1028
+ return false;
1029
+ }
1030
+
1031
+ /**
1032
+ * 分组视图底部展示「收起全部」操作
1033
+ */
1034
+ @Widget.Reactive()
1035
+ protected get groupViewFooterFoldControl() {
1036
+ return true;
1037
+ }
1038
+
1039
+ /**
1040
+ * 分组参数
1041
+ * @protected
1042
+ */
1043
+ @Widget.Provide()
1044
+ @Widget.Reactive()
1045
+ protected groupList: GroupingField[] | undefined = undefined;
1046
+
1047
+ /**
1048
+ * 默认分组字段
1049
+ * @protected
1050
+ * @example "field00003,field00004"
1051
+ * @returns [field00003 desc,field00004 desc]
1052
+ */
1053
+ @Widget.Reactive()
1054
+ protected get grouping(): GroupingField[] | undefined {
1055
+ const dsf: string = this.getDsl().grouping;
1056
+ if (dsf) {
1057
+ const dsfArr = dsf.split(ORDERING_SEPARATOR).filter((v) => !isEmpty(v));
1058
+ return dsfArr.map((v: string) => {
1059
+ const [field, direction] = getSortFieldDirection(v);
1060
+ return { field, direction };
1061
+ });
1062
+ }
1063
+ return undefined;
1064
+ }
1065
+
1066
+ /**
1067
+ * 修改分组配置
1068
+ */
1069
+ @Widget.Provide()
1070
+ @Widget.Method()
1071
+ public onGroupChange(groupList: GroupingField[]): void {
1072
+ const finalGroupList = groupList.length ? groupList : [];
1073
+ const groupParameters: UrlQueryParameters = {};
1074
+ if (finalGroupList?.length) {
1075
+ groupParameters.groupField = finalGroupList.map((v) => v.field).join(URL_SPLIT_SEPARATOR);
1076
+ groupParameters.groupDirection = finalGroupList.map((v) => v.direction).join(URL_SPLIT_SEPARATOR);
1077
+ } else {
1078
+ groupParameters.groupField = null;
1079
+ groupParameters.groupDirection = null;
1080
+ }
1081
+ let { pagination } = this;
1082
+ if (pagination) {
1083
+ pagination.current = 1;
1084
+ } else {
1085
+ pagination = this.generatorPagination();
1086
+ }
1087
+ groupParameters.currentPage = toString(pagination.current);
1088
+ groupParameters.pageSize = toString(pagination.pageSize);
1089
+
1090
+ this.groupList = finalGroupList;
1091
+
1092
+ if (this.inline) {
1093
+ this.refreshProcess();
1094
+ return;
1095
+ }
1096
+
1097
+ this.$router.push({
1098
+ segments: [
1099
+ {
1100
+ path: 'page',
1101
+ parameters: groupParameters,
1102
+ extra: {
1103
+ preserveParameter: true
1104
+ }
1105
+ }
1106
+ ]
1107
+ });
1108
+ this.refreshProcess();
1109
+ }
1110
+
1111
+ /**
1112
+ * 初始化分组字段列表,优选取url上面的配置,如果没有就取设计器配置
1113
+ */
1114
+ protected initGroupList() {
1115
+ const { groupField, groupDirection } = this.urlParameters;
1116
+ let { groupList } = this;
1117
+
1118
+ if (!groupList && groupField && groupDirection) {
1119
+ groupList = [];
1120
+ const groupFields = StringHelper.convertArray(groupField);
1121
+ const directions = StringHelper.convertArray(groupDirection);
1122
+ if (groupFields.length && directions.length && groupFields.length === directions.length) {
1123
+ for (let i = 0; i < groupFields.length; i++) {
1124
+ groupList.push({ field: groupFields[i], direction: directions[i] as EDirection });
1125
+ }
1126
+ }
1127
+ this.groupList = groupList;
1128
+ } else if (!groupList && this.grouping?.length) {
1129
+ this.groupList = this.grouping;
1130
+ }
1131
+ }
1132
+
1133
+ // endregion
1134
+
1135
+ // region 表格事件
1136
+
1137
+ @Widget.Reactive()
1138
+ @Widget.Inject()
1139
+ protected tableEventCallChaining: TableEventCallChaining | undefined;
1140
+
1141
+ protected async onAddRowEvent(e?: Omit<TableAddEvent, 'type'>) {
1142
+ if (this.lastedCurrentEditorContext == null) {
1143
+ this.lastedCurrentEditorContext = {
1144
+ prepare: true,
1145
+ new: true,
1146
+ insertTo: e?.insertTo,
1147
+ editorMode: TableEditorMode.row,
1148
+ editorCloseTrigger: TableEditorCloseTrigger.auto,
1149
+ forceEditable: true
1150
+ } as ActiveEditorContext;
1151
+ }
1152
+ let target: ActiveRecord[] | undefined;
1153
+ if (e?.activeRecords) {
1154
+ target = e.activeRecords;
1155
+ } else if (e?.activeRecord) {
1156
+ target = [e.activeRecord];
1157
+ } else {
1158
+ target = [{}];
1159
+ }
1160
+ const records = ActiveRecordsOperator.repairRecords(target);
1161
+ const { row: newRow } = await this.tableInstance?.insert(records, e?.insertTo);
1162
+ nextTick(() => {
1163
+ this.tableInstance?.setEditRow(newRow);
1164
+ });
1165
+ }
1166
+
1167
+ protected async onCopyRowEvent(e: Omit<TableCopyEvent, 'type'>) {
1168
+ if (this.lastedCurrentEditorContext == null) {
1169
+ this.lastedCurrentEditorContext = {
1170
+ prepare: true,
1171
+ editorMode: TableEditorMode.row,
1172
+ editorCloseTrigger: TableEditorCloseTrigger.auto,
1173
+ forceEditable: true
1174
+ } as ActiveEditorContext;
1175
+ }
1176
+ let target: ActiveRecord[] | undefined;
1177
+ if (e.activeRecords) {
1178
+ target = e.activeRecords;
1179
+ } else if (e.activeRecord) {
1180
+ target = [e.activeRecord];
1181
+ } else if (e.index != null) {
1182
+ const t = this.dataSource?.[e.index];
1183
+ if (t) {
1184
+ target = [t];
1185
+ }
1186
+ }
1187
+ if (!target?.length) {
1188
+ console.error('Invalid copy records.', e);
1189
+ return;
1190
+ }
1191
+ if (e.clone) {
1192
+ target = activeRecordsClone(target);
1193
+ }
1194
+ const records = ActiveRecordsOperator.repairRecords(target);
1195
+ const { row: newRow } = await this.tableInstance?.insert(records, e.copyTo);
1196
+ nextTick(() => {
1197
+ if (Array.isArray(newRow)) {
1198
+ this.tableInstance?.setEditRow(newRow[0]);
1199
+ } else {
1200
+ this.tableInstance?.setEditRow(newRow);
1201
+ }
1202
+ });
1203
+ }
1204
+
1205
+ protected onEditRowEvent(e: Omit<TableEditEvent, 'type'>) {
1206
+ console.warn('Unsupported operation', e);
1207
+ }
1208
+
1209
+ // endregion
1210
+
652
1211
  public executeExpression<T>(
653
- activeRecord: ActiveRecord | undefined,
1212
+ activeRecord: ActiveRecords | undefined,
654
1213
  expression: string,
655
1214
  errorValue?: T
656
1215
  ): T | string | undefined {
1216
+ let activeRecords: ActiveRecord[];
1217
+ if (activeRecord == null) {
1218
+ activeRecords = [{}];
1219
+ } else if (Array.isArray(activeRecord)) {
1220
+ activeRecords = activeRecord;
1221
+ } else {
1222
+ activeRecords = [activeRecord];
1223
+ }
657
1224
  return Expression.run(
658
1225
  {
659
- activeRecords: [activeRecord || {}],
1226
+ activeRecords,
660
1227
  rootRecord: this.rootData?.[0] || {},
661
1228
  openerRecord: this.openerActiveRecords?.[0] || {},
662
1229
  scene: this.scene
@@ -668,8 +1235,14 @@ export class BaseTableWidget<
668
1235
 
669
1236
  // region 列组件收集
670
1237
 
1238
+ /**
1239
+ * @deprecated
1240
+ */
671
1241
  protected columnWidgetMap: Map<string, ColumnWidgetEntity> = new Map();
672
1242
 
1243
+ /**
1244
+ * @deprecated
1245
+ */
673
1246
  @Widget.Method()
674
1247
  @Widget.Provide()
675
1248
  protected fieldWidgetMounted(widget: BaseTableColumnWidget) {
@@ -679,12 +1252,18 @@ export class BaseTableWidget<
679
1252
  });
680
1253
  }
681
1254
 
1255
+ /**
1256
+ * @deprecated
1257
+ */
682
1258
  @Widget.Method()
683
1259
  @Widget.Provide()
684
1260
  protected fieldWidgetUnmounted(widget: BaseTableColumnWidget) {
685
1261
  this.columnWidgetMap.delete(widget.path);
686
1262
  }
687
1263
 
1264
+ /**
1265
+ * @deprecated
1266
+ */
688
1267
  public getColumnWidgets(sort = false): BaseTableColumnWidget[] {
689
1268
  const iterator = this.columnWidgetMap.values();
690
1269
  let next = iterator.next();
@@ -706,59 +1285,60 @@ export class BaseTableWidget<
706
1285
 
707
1286
  // endregion
708
1287
 
709
- // region user prefer
710
-
711
- protected userPreferEventManager: UserPreferEventManager | undefined;
712
-
713
- @Widget.Reactive()
714
- @Widget.Provide()
715
- protected userPrefer?: UserTablePrefer;
1288
+ @Widget.Method()
1289
+ public onCheckedChange(data: ActiveRecords, event?: CheckedChangeEvent) {
1290
+ const records =
1291
+ this.enabledGroupView && Array.isArray(data)
1292
+ ? data.filter((record) => !record[GROUP_TREE_KEY.CHILDREN_KEY])
1293
+ : data;
1294
+ super.onCheckedChange(records, event);
1295
+ }
716
1296
 
717
- protected initUserPrefer() {
718
- this.userPreferEventManager = UserPreferEventManager.get(this.rootHandle || this.currentHandle);
719
- if (this.inline) {
720
- this.userPrefer = {} as UserTablePrefer;
1297
+ @Widget.Method()
1298
+ public onCheckedAllChange(selected: boolean, data: ActiveRecord[], event?: CheckedChangeEvent) {
1299
+ if (selected) {
1300
+ const records =
1301
+ this.enabledGroupView && Array.isArray(data)
1302
+ ? data.filter((record) => !record[GROUP_TREE_KEY.CHILDREN_KEY])
1303
+ : data;
1304
+ super.onCheckedAllChange(selected, records, event);
721
1305
  } else {
722
- this.userPrefer = (UserPreferService.parsePreferForTable(
723
- this.metadataRuntimeContext.view?.extension?.userPreference as Record<string, unknown>
724
- ) || {}) as UserTablePrefer;
725
- this.userPreferEventManager.onSave(this.$saveUserPrefer.bind(this));
1306
+ super.onCheckedAllChange(selected, data, event);
726
1307
  }
727
- this.userPreferEventManager.setData(this.userPrefer);
728
- this.userPreferEventManager.onReload(this.$reloadUserPrefer.bind(this), CallChaining.MAX_PRIORITY);
729
1308
  }
730
1309
 
731
- /**
732
- *
733
- * @param userPrefer
734
- * @deprecated 兼容原有逻辑 使用UserPreferEventManager.INSTANCE.reload方法替换
735
- */
736
- @Widget.Provide()
737
1310
  @Widget.Method()
738
- public reloadUserPrefer(userPrefer: UserTablePrefer) {
739
- this.userPreferEventManager?.reload(userPrefer);
740
- }
741
-
742
- protected $reloadUserPrefer(userPrefer: Partial<UserTablePrefer>) {
743
- this.userPrefer = { ...(this.userPrefer || {}), ...userPrefer } as UserTablePrefer;
744
- this.userPreferEventManager?.setData(this.userPrefer);
1311
+ @Widget.Provide()
1312
+ public onSortChange(sortList: ISort[]) {
1313
+ super.onSortChange(sortList);
1314
+ this.multipleFieldSort = (this.sortList?.length || 0) >= 2;
1315
+ nextTick(() => {
1316
+ if (this.sortList?.length) {
1317
+ (this.tableInstance?.getSortColumns() || [])
1318
+ .filter((v) => !this.sortList?.find((vv) => vv.sortField === v.field))
1319
+ .forEach((v) => this.tableInstance?.clearSort(v.field));
1320
+ this.tableInstance?.sort(
1321
+ this.sortList.map((sort) => ({
1322
+ field: sort.sortField,
1323
+ order: sort.direction.toLowerCase() as 'asc' | 'desc'
1324
+ }))
1325
+ );
1326
+ } else {
1327
+ this.tableInstance?.sort([]);
1328
+ }
1329
+ });
745
1330
  }
746
1331
 
747
- protected async $saveUserPrefer(userPrefer: Partial<UserTablePrefer>) {
748
- const viewName = userPrefer.viewName || this.metadataRuntimeContext.view.name;
749
- if (viewName) {
750
- const saveUserPrefer = {
751
- ...userPrefer,
752
- model: userPrefer.model || this.metadataRuntimeContext.model.model,
753
- viewName
754
- } as UserTablePrefer;
755
- await UserPreferService.savePreferForTable(saveUserPrefer);
1332
+ protected $$initViewState(state: OioAnyViewState): void {
1333
+ if (isTableViewState(state) && !state.table) {
1334
+ state.table = this.currentHandle;
756
1335
  }
757
1336
  }
758
1337
 
759
1338
  protected $$beforeMount() {
760
1339
  super.$$beforeMount();
761
- this.initUserPrefer();
1340
+ this.initGroupList();
1341
+ this.initSortConfig();
762
1342
  }
763
1343
 
764
1344
  protected $$mounted() {
@@ -772,14 +1352,30 @@ export class BaseTableWidget<
772
1352
  },
773
1353
  { force: true, immutable: false }
774
1354
  );
775
- this.editRowCallChaining?.hook(this.path, (args) => {
776
- return this.editRow(args?.[0], args?.[1]);
1355
+ this.tableEventCallChaining?.hook(this.path, (args) => {
1356
+ const e = args?.[0] as BaseTableEvent;
1357
+ if (!e) {
1358
+ return;
1359
+ }
1360
+ switch (e.type) {
1361
+ case TableEventType.add:
1362
+ this.onAddRowEvent(e);
1363
+ break;
1364
+ case TableEventType.copy:
1365
+ this.onCopyRowEvent(e);
1366
+ break;
1367
+ case TableEventType.edit:
1368
+ this.onEditRowEvent(e);
1369
+ break;
1370
+ default:
1371
+ console.error(`Invalid event type: ${e.type}`, e);
1372
+ break;
1373
+ }
777
1374
  });
778
1375
  }
779
1376
 
780
1377
  protected $$unmounted() {
781
1378
  super.$$unmounted();
782
- this.userPreferEventManager?.dispose();
783
- this.editRowCallChaining?.unhook(this.path);
1379
+ this.tableEventCallChaining?.unhook(this.path);
784
1380
  }
785
1381
  }