@oinone/kunlun-vue-admin-base 6.3.9 → 6.4.1

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