@oinone/kunlun-vue-admin-base 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/oinone-kunlun-vue-admin-base.css +1 -1
  2. package/dist/oinone-kunlun-vue-admin-base.esm.js +18 -18
  3. package/dist/oinone-kunlun-vue-admin-base.scss +1 -1
  4. package/dist/types/src/action/component/action-bar/ActionBarWidget.d.ts +1 -0
  5. package/dist/types/src/action/component/action-bar/DefaultActionBar.vue.d.ts +12 -6
  6. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordDetail.vue.d.ts +1 -1
  7. package/dist/types/src/action/view-actions/biz-audit/BizAuditRecordDetailFieldValue.vue.d.ts +1 -1
  8. package/dist/types/src/action/view-actions/biz-audit/service.d.ts +1 -1
  9. package/dist/types/src/basic/field/complex/select/SelectFieldWidget.d.ts +1 -0
  10. package/dist/types/src/basic/form/DefaultForm.vue.d.ts +10 -1
  11. package/dist/types/src/basic/table/BaseTableWidget.d.ts +2 -2
  12. package/dist/types/src/basic/table-column/BaseTableColumnWidget.d.ts +5 -0
  13. package/dist/types/src/basic/table-column/BaseTableFieldWidget.d.ts +0 -5
  14. package/dist/types/src/basic/token/BaseFieldWidget.d.ts +2 -1
  15. package/dist/types/src/components/select/base/BaseSelect.vue.d.ts +2 -1
  16. package/dist/types/src/components/select/base/index.d.ts +1 -0
  17. package/dist/types/src/components/select/base/useSelectId.d.ts +1 -0
  18. package/dist/types/src/components/select/department-select/DepartmentModal.vue.d.ts +3 -3
  19. package/dist/types/src/components/select/department-select/DepartmentTree.vue.d.ts +1 -1
  20. package/dist/types/src/components/select/modal-select/ModalSelect.vue.d.ts +2 -0
  21. package/dist/types/src/components/select/organizational-structure-tree/OrganizationalStructureTree.vue.d.ts +5 -2
  22. package/dist/types/src/components/sortable-group/SortableGroup.vue.d.ts +1 -1
  23. package/dist/types/src/field/businees-audit/FormBizAuditField.vue.d.ts +1 -1
  24. package/dist/types/src/field/cascader/DefaultCascader.vue.d.ts +1 -1
  25. package/dist/types/src/field/detail/date/DetailWeekPickerFieldWidget.d.ts +3 -0
  26. package/dist/types/src/field/detail/date/index.d.ts +1 -0
  27. package/dist/types/src/field/detail/index.d.ts +1 -1
  28. package/dist/types/src/field/detail/m2m/table/DetailM2MTableFieldWidget.d.ts +1 -0
  29. package/dist/types/src/field/detail/number/DetailFloatFieldWidget.d.ts +3 -0
  30. package/dist/types/src/field/detail/number/DetailIntegerFieldWidget.d.ts +3 -0
  31. package/dist/types/src/field/detail/number/DetailMoneyFieldWidget.d.ts +3 -0
  32. package/dist/types/src/field/detail/number/index.d.ts +4 -0
  33. package/dist/types/src/field/detail/o2m/table/DetailO2MTableFieldWidget.d.ts +1 -0
  34. package/dist/types/src/field/form/abstract/department/AbstractFormDepartmentFieldWidget.d.ts +4 -0
  35. package/dist/types/src/field/form/abstract/employee/AbstractFormEmployeeFieldWidget.d.ts +4 -0
  36. package/dist/types/src/field/form/abstract/radio/FormRelationFieldRadioWidget.d.ts +2 -1
  37. package/dist/types/src/field/form/abstract/role/AbstractFormRoleFieldWidget.d.ts +4 -0
  38. package/dist/types/src/field/form/abstract/select/DefaultMultipleSelect.vue.d.ts +2 -1
  39. package/dist/types/src/field/form/abstract/select/DefaultSingleSelect.vue.d.ts +2 -1
  40. package/dist/types/src/field/form/date/DefaultDatePicker.vue.d.ts +1 -1
  41. package/dist/types/src/field/form/date/DefaultDateTimePicker.vue.d.ts +1 -1
  42. package/dist/types/src/field/form/date/DefaultTimePicker.vue.d.ts +1 -1
  43. package/dist/types/src/field/form/date/DefaultYearPicker.vue.d.ts +1 -1
  44. package/dist/types/src/field/form/date/range/DefaultDateRangePicker.vue.d.ts +1 -1
  45. package/dist/types/src/field/form/date/range/DefaultDateTimeRangePicker.vue.d.ts +1 -1
  46. package/dist/types/src/field/form/date/range/DefaultTimeRangePicker.vue.d.ts +1 -1
  47. package/dist/types/src/field/form/date/range/DefaultYearRangePicker.vue.d.ts +1 -1
  48. package/dist/types/src/field/form/enum/select/multi/MultiEnumSelect.vue.d.ts +1 -1
  49. package/dist/types/src/field/form/enum/select/single/EnumSelect.vue.d.ts +1 -1
  50. package/dist/types/src/field/form/enum/thumbnail/FormEnumThumbnail.vue.d.ts +2 -1
  51. package/dist/types/src/field/form/string/expression/model-field-select/modelFieldSelectControlWidget.d.ts +2 -0
  52. package/dist/types/src/field/form/text/DomainExpGenerator/DomainExpGenerator.vue.d.ts +1 -1
  53. package/dist/types/src/field/form/text/DomainExpGenerator/ExpItem.vue.d.ts +4 -0
  54. package/dist/types/src/field/form/text/DomainExpGenerator/ExpRight.vue.d.ts +1 -1
  55. package/dist/types/src/field/gallery/number/GalleryFloatFieldWidget.d.ts +3 -0
  56. package/dist/types/src/field/gallery/number/GalleryIntegerFieldWidget.d.ts +3 -0
  57. package/dist/types/src/field/gallery/number/GalleryMoneyFieldWidget.d.ts +3 -0
  58. package/dist/types/src/field/gallery/number/index.d.ts +3 -0
  59. package/dist/types/src/field/prop/RelationSelectProps.d.ts +1 -0
  60. package/dist/types/src/field/resource/language-badge/FormResourceLangBadge.vue.d.ts +2 -1
  61. package/dist/types/src/field/search/enum/TabSelect.vue.d.ts +1 -1
  62. package/dist/types/src/field/search/enum/TagSelect.vue.d.ts +1 -1
  63. package/dist/types/src/field/table/date/TableWeekPickerFieldWidget.d.ts +3 -0
  64. package/dist/types/src/field/table/date/index.d.ts +1 -0
  65. package/dist/types/src/field/table/date/range/editor/DefaultEditorDateRangePicker.vue.d.ts +1 -1
  66. package/dist/types/src/field/table/date/range/editor/DefaultEditorDateTimeRangePicker.vue.d.ts +1 -1
  67. package/dist/types/src/field/table/date/range/editor/DefaultEditorTimeRangePicker.vue.d.ts +1 -1
  68. package/dist/types/src/field/table/date/range/editor/DefaultEditorYearRangePicker.vue.d.ts +1 -1
  69. package/dist/types/src/field/table/html/TableRichText.vue.d.ts +1 -1
  70. package/dist/types/src/field/table/number/TableFloatFieldWidget.d.ts +3 -0
  71. package/dist/types/src/field/table/number/TableIntegerFieldWidget.d.ts +3 -0
  72. package/dist/types/src/field/table/number/index.d.ts +2 -0
  73. package/dist/types/src/field/table-layout-column/TableLayoutColumnWidget.d.ts +8 -5
  74. package/dist/types/src/field/table-operation-column/TableOperationColumn.vue.d.ts +1 -1
  75. package/dist/types/src/field/tree-select/DefaultTreeSelect.vue.d.ts +1 -1
  76. package/dist/types/src/permission/permission/field/FieldPermission.vue.d.ts +1 -1
  77. package/dist/types/src/permission/permission/field/index.d.ts +0 -2
  78. package/dist/types/src/permission/permission/index.d.ts +0 -1
  79. package/dist/types/src/permission/system-permission/field/permission-field/FieldPermission.vue.d.ts +1 -1
  80. package/dist/types/src/permission/system-permission/field/permission-user/UserPermission.vue.d.ts +1 -1
  81. package/dist/types/src/permission/system-permission/service/index.d.ts +3 -0
  82. package/dist/types/src/util/jumpDesignerPage.d.ts +0 -9
  83. package/dist/types/src/view/application-screen/apps-business-screen/components/Card.vue.d.ts +1 -1
  84. package/dist/types/src/view/application-screen/apps-business-screen/components/CardList.vue.d.ts +1 -1
  85. package/dist/types/src/view/application-screen/gallery/AppsGalleryWidget.d.ts +0 -2
  86. package/dist/types/src/view/application-screen/gallery/Gallery.vue.d.ts +1 -1
  87. package/dist/types/src/view/detail/DefaultDetail.vue.d.ts +9 -0
  88. package/dist/types/src/view/detail/DetailWidget.d.ts +1 -0
  89. package/dist/types/src/view/gallery/GalleryWidget.d.ts +2 -2
  90. package/dist/types/src/view/homepage-setting/components/MultiSelect.vue.d.ts +2 -1
  91. package/dist/types/src/view/homepage-setting/components/SingleSelect.vue.d.ts +2 -1
  92. package/dist/types/src/view/homepage-setting/field/HomepageSettingFieldWidget.d.ts +1 -1
  93. package/dist/types/src/view/homepage-setting/view/advanced-homepage-setting/AdvancedHomepageSetting.vue.d.ts +84 -0
  94. package/dist/types/src/view/iframe-view/menu/Menu.vue.d.ts +73 -1
  95. package/dist/types/src/view/index.d.ts +0 -2
  96. package/dist/types/src/view/login/BaseLoginWidget.d.ts +3 -2
  97. package/dist/types/src/view/login/LoginWidget.d.ts +0 -1
  98. package/dist/types/src/view/reset-password/FirstResetPassword.vue.d.ts +1 -1
  99. package/dist/types/src/view/reset-password/ForgetPassword.vue.d.ts +1 -1
  100. package/dist/types/src/view/search/SearchPrefer.vue.d.ts +1 -1
  101. package/dist/types/src/view/table/DefaultTable.vue.d.ts +28 -1
  102. package/dist/types/src/view/table/TableWidget.d.ts +3 -1
  103. package/dist/types/src/view/view/DetailView.d.ts +1 -0
  104. package/dist/types/src/view/workbench/Workbench.vue.d.ts +1 -1
  105. package/package.json +22 -22
  106. package/src/action/client-actions/SaveDraftActionWidget.ts +42 -27
  107. package/src/action/component/action/ActionWidget.ts +4 -4
  108. package/src/action/component/action/DefaultAction.vue +6 -1
  109. package/src/action/component/action-bar/ActionBarWidget.ts +13 -0
  110. package/src/action/component/action-bar/DefaultActionBar.vue +27 -9
  111. package/src/action/component/action-bar/DefaultMoreActionItem.vue +2 -2
  112. package/src/action/component/action-bar/style/index.scss +16 -0
  113. package/src/action/server-actions/ServerActionWidget.ts +2 -2
  114. package/src/action/url-actions/UrlActionWidget.ts +1 -1
  115. package/src/action/view-actions/BackActionWidget.ts +2 -3
  116. package/src/action/view-actions/biz-audit/RegisterDetail.ts +2 -2
  117. package/src/action/view-actions/biz-audit/service.ts +1 -1
  118. package/src/action/view-actions/popup/util.ts +1 -1
  119. package/src/basic/element/BaseElementListViewWidget.ts +4 -1
  120. package/src/basic/element/BaseElementObjectViewWidget.ts +4 -1
  121. package/src/basic/field/complex/select/SelectFieldWidget.ts +9 -0
  122. package/src/basic/form/DefaultForm.vue +17 -2
  123. package/src/basic/form-item/DefaultFormItem.vue +4 -4
  124. package/src/basic/form-item/style/index.scss +2 -2
  125. package/src/basic/table/BaseTableWidget.ts +8 -12
  126. package/src/basic/table-column/BaseTableColumnWidget.ts +86 -2
  127. package/src/basic/table-column/BaseTableFieldWidget.ts +1 -86
  128. package/src/basic/table-column/DefaultGroupCell.vue +21 -31
  129. package/src/basic/token/BaseFieldWidget.ts +32 -1
  130. package/src/basic/token/BaseView.ts +1 -0
  131. package/src/components/index.scss +1 -0
  132. package/src/components/oio-manage-group/OioManageGroup.vue +3 -2
  133. package/src/components/select/base/BaseSelect.vue +44 -8
  134. package/src/components/select/base/index.ts +1 -0
  135. package/src/components/select/base/useSelectId.ts +7 -0
  136. package/src/components/select/company-select/CompanySelect.vue +1 -0
  137. package/src/components/select/department-select/DepartmentModal.vue +7 -5
  138. package/src/components/select/department-select/DepartmentTree.vue +2 -2
  139. package/src/components/select/employee-select/DepartmentEmployeeSelectPanel.vue +0 -1
  140. package/src/components/select/modal-select/ModalSelect.vue +50 -6
  141. package/src/components/select/modal-select/style/index.scss +5 -0
  142. package/src/components/select/organizational-structure-tree/OrganizationalStructureTree.vue +31 -5
  143. package/src/components/select/table-select/TableSelect.vue +10 -1
  144. package/src/components/sortable-group/SortableGroup.vue +1 -1
  145. package/src/components/upload/UploadDraggable.vue +1 -1
  146. package/src/components/user-prefer/SimpleUserPreferSetting.vue +2 -1
  147. package/src/container/collapse/DefaultCollapsePanel.vue +1 -0
  148. package/src/container/group/DefaultGroup.vue +3 -4
  149. package/src/container/tabs/DefaultTabWidget.ts +2 -1
  150. package/src/field/detail/date/DetailWeekPickerFieldWidget.ts +13 -0
  151. package/src/field/detail/date/index.ts +1 -0
  152. package/src/field/detail/date/range/use-date-time-range-picker.ts +1 -1
  153. package/src/field/detail/date/use-date-time-picker.ts +1 -1
  154. package/src/field/detail/index.ts +1 -1
  155. package/src/field/detail/m2m/table/DetailM2MTableFieldWidget.ts +16 -0
  156. package/src/field/detail/number/DetailFloatFieldWidget.ts +12 -0
  157. package/src/field/detail/number/DetailIntegerFieldWidget.ts +12 -0
  158. package/src/field/detail/number/DetailMoneyFieldWidget.ts +12 -0
  159. package/src/field/detail/number/DetailNumberWidget.ts +0 -9
  160. package/src/field/detail/number/index.ts +4 -0
  161. package/src/field/detail/o2m/table/DetailO2MTableFieldWidget.ts +16 -0
  162. package/src/field/detail/string/color/DefaultColorPicker.vue +2 -3
  163. package/src/field/form/abstract/department/AbstractFormDepartmentFieldWidget.ts +11 -0
  164. package/src/field/form/abstract/employee/AbstractFormEmployeeFieldWidget.ts +11 -0
  165. package/src/field/form/abstract/radio/FormRelationFieldRadioWidget.ts +3 -1
  166. package/src/field/form/abstract/role/AbstractFormRoleFieldWidget.ts +11 -0
  167. package/src/field/form/abstract/select/DefaultMultipleSelect.vue +1 -0
  168. package/src/field/form/abstract/select/DefaultSingleSelect.vue +1 -0
  169. package/src/field/form/enum/thumbnail/FormEnumThumbnail.vue +15 -3
  170. package/src/field/form/integer/FormIntegerSliderFieldWidget.ts +1 -1
  171. package/src/field/form/m2m/upload/FormM2MUploadDraggableFieldWidget.ts +3 -3
  172. package/src/field/form/m2o/upload/FormM2OUploadDraggableFieldWidget.ts +3 -3
  173. package/src/field/form/o2m/upload/FormO2MUploadDraggableFieldWidget.ts +3 -3
  174. package/src/field/form/o2o/upload/FormO2OUploadDraggableFieldWidget.ts +3 -3
  175. package/src/field/form/string/color/DefaultColorPicker.vue +2 -3
  176. package/src/field/form/string/download/FormStringDownloadFieldWidget.ts +2 -2
  177. package/src/field/form/string/expression/model-field-select/modelFieldSelectControlWidget.ts +3 -0
  178. package/src/field/form/string/upload/FormStringUploadDraggableFieldWidget.ts +2 -2
  179. package/src/field/form/text/DomainExpGenerator/ExpRight.vue +2 -2
  180. package/src/field/gallery/number/GalleryFloatFieldWidget.ts +12 -0
  181. package/src/field/gallery/number/GalleryIntegerFieldWidget.ts +12 -0
  182. package/src/field/gallery/number/GalleryMoneyFieldWidget.ts +12 -0
  183. package/src/field/gallery/number/GalleryNumberWidget.ts +0 -9
  184. package/src/field/gallery/number/index.ts +3 -0
  185. package/src/field/prop/RelationSelectProps.ts +34 -0
  186. package/src/field/resource/resource-date-time-format/constant.ts +4 -4
  187. package/src/field/resource/resource-date-time-format/resource-date-format/FormResourceDateFormat.vue +61 -1
  188. package/src/field/table/date/TableWeekPickerFieldWidget.ts +13 -0
  189. package/src/field/table/date/TableYearFieldWidget.ts +1 -1
  190. package/src/field/table/date/index.ts +1 -0
  191. package/src/field/table/date/range/TableDateTimeRangeFieldWidget.ts +1 -1
  192. package/src/field/table/enum/TableEnum.vue +3 -3
  193. package/src/field/table/number/TableFloatFieldWidget.ts +12 -0
  194. package/src/field/table/number/TableIntegerFieldWidget.ts +12 -0
  195. package/src/field/table/number/TableNumberWidget.ts +1 -9
  196. package/src/field/table/number/index.ts +2 -0
  197. package/src/field/table-layout-column/TableLayoutColumnWidget.ts +37 -17
  198. package/src/file/excel/service/ExcelExportService.ts +1 -1
  199. package/src/file/print/service/PrintService.ts +1 -1
  200. package/src/icon-manage/view/search/IconSearch.vue +29 -35
  201. package/src/icon-manage/view/search/style/IconSearch.scss +37 -33
  202. package/src/main-view/DefaultMetadataMainViewWidget.ts +1 -1
  203. package/src/permission/permission/field/FieldPermissionWidget.ts +2 -4
  204. package/src/permission/permission/field/index.ts +0 -2
  205. package/src/permission/permission/index.ts +0 -1
  206. package/src/permission/system-permission/PermissionWidget.ts +12 -11
  207. package/src/permission/system-permission/components/Config.vue +17 -7
  208. package/src/permission/system-permission/components/Empty.vue +1 -1
  209. package/src/permission/system-permission/components/RoleDialog.vue +4 -4
  210. package/src/permission/system-permission/service/index.ts +77 -60
  211. package/src/plugins/translate.ts +6 -3
  212. package/src/shim-translate.d.ts +4 -1
  213. package/src/style/antdComponents/All.scss +0 -27
  214. package/src/style/root.scss +1 -1
  215. package/src/tags/context/runtime-context-helper.ts +6 -6
  216. package/src/tags/resolve/internal/widget-resolve.ts +5 -1
  217. package/src/util/collection-actions.ts +1 -1
  218. package/src/util/jumpDesignerPage.ts +11 -24
  219. package/src/view/application-screen/apps-business-screen/components/Card.vue +2 -2
  220. package/src/view/application-screen/apps-business-screen/components/RelationGraph.vue +2 -2
  221. package/src/view/application-screen/gallery/AppsGalleryWidget.ts +108 -133
  222. package/src/view/application-screen/gallery/Gallery.vue +2 -2
  223. package/src/view/company-setting/CompanySetting.vue +16 -14
  224. package/src/view/detail/DefaultDetail.vue +6 -5
  225. package/src/view/detail/DetailWidget.ts +12 -1
  226. package/src/view/gallery/GalleryWidget.ts +3 -3
  227. package/src/view/homepage-setting/field/HomepageSettingFieldWidget.ts +5 -5
  228. package/src/view/homepage-setting/hook/useHomepageSetting.ts +1 -1
  229. package/src/view/index.ts +0 -2
  230. package/src/view/login/BaseLoginWidget.ts +12 -6
  231. package/src/view/login/LoginWidget.ts +0 -2
  232. package/src/view/login/SSOLoginWidget.ts +1 -3
  233. package/src/view/login-page-setting/LoginPageSetting.vue +6 -7
  234. package/src/view/paas-install/PaaSInstall.vue +2 -2
  235. package/src/view/paas-manager/PaaSManager.vue +2 -2
  236. package/src/view/popup/PopupWidget.ts +2 -2
  237. package/src/view/quick-fill/Excel.vue +2 -1
  238. package/src/view/quick-fill/QuickFill.vue +9 -10
  239. package/src/view/system-style/localData.ts +8 -8
  240. package/src/view/table/DefaultTable.vue +81 -43
  241. package/src/view/table/DefaultTableFooterOperator.vue +2 -2
  242. package/src/view/table/TableUserPrefer.vue +1 -1
  243. package/src/view/table/TableWidget.ts +16 -5
  244. package/src/view/table/style/index.scss +6 -0
  245. package/src/view/unauthorized/Unauthorized.vue +1 -1
  246. package/src/view/view/DetailView.ts +12 -0
  247. package/src/view/view-control/card-col-control/DefaultCardColControl.vue +2 -2
  248. package/src/view/view-control/group-control/DefaultGroupControl.vue +2 -2
  249. package/src/view/view-control/sort-control/DefaultSortControl.vue +2 -2
  250. package/src/view/workbench/Workbench.vue +2 -2
  251. package/dist/types/src/permission/permission/action/PermissionSubmitActionWidget.d.ts +0 -7
  252. package/dist/types/src/permission/permission/action/index.d.ts +0 -1
  253. package/dist/types/src/permission/permission/field/ActionPermissionWidget.d.ts +0 -65
  254. package/dist/types/src/permission/permission/field/DataPermissionWidget.d.ts +0 -19
  255. package/dist/types/src/view/paas-install/PaaSInstall.d.ts +0 -6
  256. package/dist/types/src/view/paas-install/PaaSInstall.vue.d.ts +0 -22
  257. package/dist/types/src/view/paas-install/field/custom-table/CodeFoucsTable.vue.d.ts +0 -24
  258. package/dist/types/src/view/paas-install/field/custom-table/CustomTable.d.ts +0 -13
  259. package/dist/types/src/view/paas-install/field/index.d.ts +0 -2
  260. package/dist/types/src/view/paas-install/field/upload-and-select/UploadAndSelect.d.ts +0 -6
  261. package/dist/types/src/view/paas-install/field/upload-and-select/UploadAndSelect.vue.d.ts +0 -65
  262. package/dist/types/src/view/paas-install/index.d.ts +0 -2
  263. package/dist/types/src/view/paas-install/service.d.ts +0 -2
  264. package/dist/types/src/view/paas-manager/PaaSManager.d.ts +0 -6
  265. package/dist/types/src/view/paas-manager/PaaSManager.vue.d.ts +0 -23
  266. package/dist/types/src/view/paas-manager/service.d.ts +0 -2
  267. package/src/permission/permission/action/PermissionSubmitActionWidget.ts +0 -161
  268. package/src/permission/permission/action/index.ts +0 -1
  269. package/src/permission/permission/field/ActionPermissionWidget.ts +0 -472
  270. package/src/permission/permission/field/DataPermissionWidget.ts +0 -135
  271. package/src/view/login/view.vue +0 -7
  272. package/src/view/paas-install/PaaSInstall.ts +0 -23
  273. package/src/view/paas-install/README.md +0 -1
  274. package/src/view/paas-install/field/custom-table/CodeFoucsTable.vue +0 -115
  275. package/src/view/paas-install/field/custom-table/CustomTable.ts +0 -166
  276. package/src/view/paas-install/field/index.ts +0 -2
  277. package/src/view/paas-install/field/upload-and-select/UploadAndSelect.ts +0 -29
  278. package/src/view/paas-install/field/upload-and-select/UploadAndSelect.vue +0 -157
  279. package/src/view/paas-install/index.ts +0 -2
  280. package/src/view/paas-install/service.ts +0 -37
  281. package/src/view/paas-manager/PaaSManager.ts +0 -23
  282. package/src/view/paas-manager/service.ts +0 -37
@@ -1,472 +0,0 @@
1
- import type { RuntimeO2MField } from '@oinone/kunlun-engine';
2
- import { ModelType, ViewType } from '@oinone/kunlun-meta';
3
- import { getModel, http } from '@oinone/kunlun-service';
4
- import { CallChaining, StringHelper } from '@oinone/kunlun-shared';
5
- import { SPI } from '@oinone/kunlun-spi';
6
- import { Widget } from '@oinone/kunlun-vue-widget';
7
- import { Tree as ATree } from 'ant-design-vue';
8
- import { FormFieldWidget } from '../../../basic';
9
- import type { IPermission } from '../type';
10
-
11
- interface ITreeNode {
12
- title: string;
13
- key: string;
14
- children: ITreeNode[];
15
- isLeaf: boolean;
16
- parentValue?: string;
17
- }
18
-
19
- enum NodeType {
20
- MENU = 'MENU',
21
- MODULE = 'MODULE',
22
- SERVER_ACTION = 'SERVER_ACTION',
23
- VIEW_ACTION = 'VIEW_ACTION',
24
- URL_ACTION = 'URL_ACTION'
25
- }
26
-
27
- interface IActionPermission {
28
- value: string;
29
- node: ITreeNode;
30
- module: string;
31
- nodeType: NodeType;
32
- hasNext: boolean;
33
- model: string;
34
- resModel?: string;
35
- displayValue: string;
36
- canAccess: boolean;
37
- change: boolean;
38
- }
39
-
40
- interface Menu {
41
- name: string;
42
- module: string;
43
- }
44
-
45
- interface AntdTreeParentNode {
46
- node: ITreeNode;
47
- parent: AntdTreeParentNode;
48
- }
49
-
50
- interface AntdTreeNode {
51
- dataRef: ITreeNode;
52
- parent: AntdTreeParentNode;
53
- }
54
-
55
- let counter = 0;
56
-
57
- @SPI.ClassFactory(FormFieldWidget.Token({ widget: 'action-permission' }))
58
- export class ActionPermissionWidget extends FormFieldWidget<unknown, RuntimeO2MField> {
59
- @Widget.Reactive()
60
- public get class() {
61
- return StringHelper.append(['oio-tree'], super.class);
62
- }
63
-
64
- public initialize(props) {
65
- super.initialize(props);
66
- this.setComponent(ATree);
67
- return this;
68
- }
69
-
70
- /**
71
- * 挂载时
72
- * @protected
73
- */
74
- @Widget.Reactive()
75
- @Widget.Inject()
76
- protected mountedCallChaining: CallChaining | undefined;
77
-
78
- @Widget.Reactive()
79
- private get checkable() {
80
- return !this.disabled;
81
- }
82
-
83
- @Widget.Reactive()
84
- private selectable = false;
85
-
86
- @Widget.Reactive()
87
- public get disabled() {
88
- return this.viewType === ViewType.Detail;
89
- }
90
-
91
- @Widget.Reactive()
92
- private treeData: ITreeNode[] = [];
93
-
94
- @Widget.Reactive()
95
- private permissions: IActionPermission[] = [];
96
-
97
- @Widget.Reactive()
98
- private checkedKeys: { checked: string[]; halfChecked: string[] } = { checked: [], halfChecked: [] };
99
-
100
- private async queryNextNode(node?: AntdTreeNode): Promise<IActionPermission[]> {
101
- const data = node?.dataRef;
102
- const pnode = data && this.permissions.find((p) => p.node.key === data.key);
103
- const queryObject: { roleId?: string; value?: string; module?: string; nodeType?: string } = {};
104
- if (this.formData.id) {
105
- queryObject.roleId = this.formData.id as string;
106
- }
107
- if (pnode) {
108
- queryObject.module = pnode.module;
109
- queryObject.nodeType = pnode.nodeType;
110
- queryObject.value = pnode.value;
111
- }
112
- const queryStr = `{
113
- interactionPermissionNodeQuery {
114
- nextNode(interactionPermissionNode: {${Object.keys(queryObject)
115
- .map((name) => {
116
- const queryValue = queryObject[name];
117
- if (name === 'nodeType') {
118
- const parameterString = `${name}:${queryValue}`;
119
- if (queryValue === NodeType.VIEW_ACTION) {
120
- let menu = node?.parent;
121
- while (menu) {
122
- const finalMenu = menu;
123
- const target = this.permissions.find((p) => p.node.key === finalMenu.node.key);
124
- if (!target) {
125
- break;
126
- }
127
- if (target.nodeType === NodeType.MENU) {
128
- return `${parameterString},menuName: "${target.value}"`;
129
- }
130
- menu = menu.parent;
131
- }
132
- }
133
- return parameterString;
134
- }
135
- return `${name}:"${queryValue}"`;
136
- })
137
- .join(',')}}) {
138
- nodes {
139
- model
140
- resModel
141
- value
142
- displayValue
143
- module
144
- canAccess
145
- nodeType
146
- hasNext
147
- }
148
- }
149
- }
150
- }`;
151
- return (
152
- ((await http.query('auth', queryStr)).data.interactionPermissionNodeQuery.nextNode
153
- .nodes as IActionPermission[]) || []
154
- );
155
- }
156
-
157
- private resolvePermissions(nodes: IActionPermission[], parentTreeNode?: ITreeNode) {
158
- const parentPermission = parentTreeNode && this.permissions.find((an) => an.node.key === parentTreeNode.key)!;
159
- // 如果父节点存在且父节点状变化了则删除父节点的权限
160
- if (parentTreeNode && !parentPermission!.change) {
161
- let index = this.checkedKeys.checked.findIndex((c) => c === parentTreeNode.key);
162
- if (index !== -1) {
163
- this.checkedKeys.checked.splice(index, 1);
164
- }
165
- index = this.checkedKeys.halfChecked.findIndex((c) => c === parentTreeNode.key);
166
- if (index !== -1) {
167
- this.checkedKeys.halfChecked.splice(index, 1);
168
- }
169
- }
170
- // 如果节点有权限(后端返回的初始化数据)或者是被选中
171
- nodes
172
- .filter((n) => n.canAccess || !this.disabled)
173
- .forEach((n) => {
174
- let parentValue = '';
175
- if (n.nodeType === NodeType.MENU || n.nodeType === NodeType.MODULE) {
176
- parentValue = n.value;
177
- } else {
178
- parentValue = parentTreeNode ? parentTreeNode.parentValue! : '';
179
- }
180
-
181
- const treeNode: ITreeNode = {
182
- title:
183
- n.nodeType === NodeType.MENU || n.nodeType === NodeType.MODULE
184
- ? `${n.displayValue}`
185
- : `${n.displayValue} ${n.value}`,
186
- children: [],
187
- key: `${n.module}-${n.model}-${n.value}-${counter++}`,
188
- isLeaf: !n.hasNext,
189
- parentValue
190
- };
191
- n.node = treeNode;
192
- if (parentTreeNode) {
193
- parentTreeNode.children.push(treeNode);
194
- } else {
195
- this.treeData.push(treeNode);
196
- }
197
- this.permissions.push(n);
198
- if (n.canAccess) {
199
- if (!parentPermission || parentPermission.canAccess) {
200
- this.checkedKeys.checked.push(n.node.key);
201
- if (parentTreeNode) {
202
- this.checkedKeys.halfChecked.push(parentPermission!.node.key);
203
- }
204
- } else {
205
- n.canAccess = false;
206
- }
207
- }
208
- });
209
- }
210
-
211
- public async fetchData() {
212
- const permissions = await this.queryNextNode();
213
- this.resolvePermissions(permissions);
214
- }
215
-
216
- @Widget.Method()
217
- private onCheck(
218
- checkedKeys: string[],
219
- info: { halfCheckedKeys: string[]; node: { dataRef: ITreeNode }; checked: boolean }
220
- ) {
221
- this.checkedKeys.checked = checkedKeys;
222
- this.checkedKeys.halfChecked = info.halfCheckedKeys;
223
- const anode = this.permissions.find((p) => p.node.key === info.node.dataRef.key);
224
- anode!.canAccess = info.checked;
225
- anode!.change = true;
226
-
227
- this.customCheck(anode!);
228
- this.forceUpdate();
229
- }
230
-
231
- private customCheck(node: IActionPermission) {
232
- // if (node.nodeType === 'VIEW_ACTION') {
233
- // // 此处是推断 修改前后端协议由后端推断
234
- // // if (node.value === 'redirectCreatePage') {
235
- // // const sn = this.permissions.find(
236
- // // (p) => p.model === node.model && p.module === node.module && p.value === 'create',
237
- // // )!;
238
- // // sn.canAccess = node.canAccess;
239
- // // }
240
- // // if (node.value === 'redirectUpdatePage') {
241
- // // const sn = this.permissions.find(
242
- // // (p) => p.model === node.model && p.module === node.module && p.value === 'update',
243
- // // )!;
244
- // // sn.canAccess = node.canAccess;
245
- // // }
246
- // const menu = this.permissions.find(
247
- // (p) => p.module === node.module && `${p.module}#${p.value}` === node.value && p.nodeType === 'MENU'
248
- // );
249
- // if (!node.canAccess && menu) {
250
- // menu.node.children
251
- // .filter((c) => c.key !== node.node.key)
252
- // .forEach((n) => {
253
- // let index = this.checkedKeys.checked.findIndex((c) => c === n.key);
254
- // this.checkedKeys.checked.splice(index, 1);
255
- // index = this.checkedKeys.halfChecked.findIndex((c) => c === n.key);
256
- // this.checkedKeys.halfChecked.splice(index, 1);
257
- // });
258
- // let index = this.checkedKeys.checked.findIndex((c) => c === menu.value);
259
- // index !== -1 && this.checkedKeys.checked.splice(index, 1);
260
- // index = this.checkedKeys.halfChecked.findIndex((c) => c === menu.value);
261
- // index !== -1 && this.checkedKeys.halfChecked.splice(index, 1);
262
- // menu.canAccess = false;
263
- // }
264
- // }
265
- if (node.nodeType === NodeType.MODULE) {
266
- if (!node.canAccess) {
267
- this.permissions
268
- .filter((p) => p.nodeType === NodeType.MENU && p.module === node.module)
269
- .forEach((p) => {
270
- p.canAccess = false;
271
- });
272
- }
273
- }
274
- }
275
-
276
- @Widget.Method()
277
- private async loadData(node: AntdTreeNode): Promise<void> {
278
- const permissions = await this.queryNextNode(node);
279
- this.resolvePermissions(permissions, node.dataRef);
280
- this.treeData = [...this.treeData];
281
- }
282
-
283
- private async queryAllMenus() {
284
- const queryStr = `query {
285
- interactionPermissionQuery {
286
- menuData(interactionPermission: {${this.formData.id ? `roleId:"${this.formData.id}"` : ''}}) {
287
- menus {
288
- id
289
- name
290
- module
291
- }
292
- }
293
- }
294
- }`;
295
- return (await (
296
- await http.query('auth', queryStr)
297
- ).data.interactionPermissionQuery.menuData.menus) as {
298
- id: string;
299
- name: string;
300
- module: string;
301
- }[];
302
- }
303
-
304
- public async submit() {
305
- this.permissions.forEach((p) => {
306
- const isHalfChecked = this.checkedKeys.halfChecked.find((key) => p.node.key === key)!;
307
- const isChecked = this.checkedKeys.checked.find((key) => p.node.key === key)!;
308
-
309
- const isNotChecked =
310
- (isHalfChecked === null || undefined === isHalfChecked) && (isChecked === null || undefined === isChecked);
311
- if (!isNotChecked) {
312
- p.canAccess = true;
313
- this.customCheck(p);
314
- } else {
315
- p.canAccess = false;
316
- }
317
- });
318
- // this.checkedKeys.halfChecked.forEach((key) => {
319
- // const n = this.permissions.find((p) => p.node.key === key)!;
320
- // n.canAccess = true;
321
- // this.customCheck(n);
322
- // });
323
- // this.checkedKeys.checked.forEach((key) => {
324
- // const n = this.permissions.find((p) => p.node.key === key)!;
325
- // n.canAccess = true;
326
- // this.customCheck(n);
327
- // });
328
- await Promise.all(
329
- this.permissions
330
- .filter((p) => p.resModel)
331
- .map(async (p) => {
332
- if (p.nodeType === NodeType.VIEW_ACTION) {
333
- if (p.resModel !== p.model) {
334
- const resModel = await getModel(p.resModel!);
335
- if (resModel.type === ModelType.TRANSIENT) {
336
- resModel.viewActionList!.forEach((va) => {
337
- const pva = this.permissions.find(
338
- (_p) => _p.value === va.name && _p.model === va.model && _p.module === va.module!
339
- );
340
- if (!pva) {
341
- this.permissions.push({
342
- value: va.name,
343
- model: va.model,
344
- module: va.module!,
345
- nodeType: NodeType.VIEW_ACTION,
346
- hasNext: false,
347
- displayValue: va.displayName!,
348
- canAccess: true,
349
- node: {} as ITreeNode,
350
- change: false
351
- });
352
- }
353
- });
354
- resModel.serverActionList!.forEach((va) => {
355
- const pva = this.permissions.find(
356
- (_p) => _p.value === va.name && _p.model === va.model && _p.module === va.module!
357
- );
358
- if (!pva) {
359
- this.permissions.push({
360
- value: va.name,
361
- model: va.model,
362
- module: va.module!,
363
- nodeType: NodeType.SERVER_ACTION,
364
- hasNext: false,
365
- displayValue: va.displayName!,
366
- canAccess: true,
367
- node: {} as ITreeNode,
368
- change: false
369
- });
370
- }
371
- });
372
- resModel.urlActionList!.forEach((va) => {
373
- const pva = this.permissions.find(
374
- (_p) => _p.value === va.name && _p.model === va.model && _p.module === va.module!
375
- );
376
- if (!pva) {
377
- this.permissions.push({
378
- value: va.name,
379
- model: va.model,
380
- module: va.module!,
381
- nodeType: NodeType.URL_ACTION,
382
- hasNext: false,
383
- displayValue: va.displayName!,
384
- canAccess: true,
385
- node: {} as ITreeNode,
386
- change: false
387
- });
388
- }
389
- });
390
- }
391
- }
392
- }
393
- })
394
- );
395
- const lastedMenus = await this.queryAllMenus();
396
- const menus: Menu[] = lastedMenus
397
- .filter((m) => {
398
- const node = this.permissions.find((p) => p.value === m.name && p.module === m.module);
399
- const currentModule = this.permissions.find((p) => p.nodeType === NodeType.MODULE && p.value === m.module);
400
- if (node && node.canAccess) {
401
- return currentModule!.canAccess;
402
- }
403
- return currentModule && currentModule.canAccess;
404
- })
405
- .filter((m) => {
406
- const node = this.permissions.find(
407
- (p) => p.value === m.name && p.module === m.module && p.nodeType === NodeType.MENU
408
- );
409
- return !(node && !node.canAccess);
410
- });
411
- this.permissions
412
- .filter((p) => p.nodeType === NodeType.MENU && p.canAccess)
413
- .forEach((p) => {
414
- if (!menus.find((m) => m.module === p.module && m.name === p.value)) {
415
- menus.push({ module: p.module, name: p.value });
416
- }
417
- });
418
- const modules = this.permissions
419
- .filter((p) => p.nodeType === NodeType.MODULE)
420
- .filter((p) => p.canAccess)
421
- .filter((p) => {
422
- return !!(
423
- this.checkedKeys.checked.find((c) => c === p.node.key) ||
424
- this.checkedKeys.halfChecked.find((c) => c === p.node.key)
425
- );
426
- });
427
- const ap = this.permissions
428
- .filter((p) => p.canAccess)
429
- .filter(
430
- (p) =>
431
- p.nodeType === NodeType.VIEW_ACTION ||
432
- p.nodeType === NodeType.SERVER_ACTION ||
433
- p.nodeType === NodeType.URL_ACTION
434
- )
435
- .filter((p) => {
436
- return !!this.checkedKeys.checked.find((c) => c === p.node.key);
437
- });
438
-
439
- return {
440
- menus,
441
- modules,
442
- actionPermissions: ap.map(
443
- (p) =>
444
- ({
445
- name: `页面配置#${this.formData.name}#${p.value}#${p.model}#${p.nodeType}`,
446
- permissionType: 'ACTION',
447
- model: p.model,
448
- permRun: true,
449
- action: p.value,
450
- permissionDataSource: 'CUSTOM',
451
- permissionMateDataType: p.nodeType,
452
- active: true,
453
- menuName: p.node.parentValue
454
- }) as IPermission
455
- )
456
- };
457
- }
458
-
459
- protected async mountedProcess(): Promise<void> {
460
- await this.fetchData();
461
- }
462
-
463
- protected mounted() {
464
- this.mountedCallChaining?.hook(this.path, async () => {
465
- await this.mountedProcess();
466
- });
467
- }
468
-
469
- protected unmounted() {
470
- this.mountedCallChaining?.unhook(this.path);
471
- }
472
- }
@@ -1,135 +0,0 @@
1
- import { type RuntimeO2MField, SubmitValue, ViewCache } from '@oinone/kunlun-engine';
2
- import { ModelDefaultActionName, ViewType } from '@oinone/kunlun-meta';
3
- import { http } from '@oinone/kunlun-service';
4
- import { CallChaining, GraphqlHelper } from '@oinone/kunlun-shared';
5
- import { SPI } from '@oinone/kunlun-spi';
6
- import { Widget } from '@oinone/kunlun-vue-widget';
7
- import { AsyncFormSubviewListFieldWidget, FormFieldWidget } from '../../../basic';
8
- import { type IPermission, ResourcePermissionModel } from '../type';
9
-
10
- @SPI.ClassFactory(FormFieldWidget.Token({ widget: 'data-permission' }))
11
- export class DataPermissionWidget extends AsyncFormSubviewListFieldWidget<RuntimeO2MField> {
12
- @Widget.Reactive()
13
- public get disabled() {
14
- return this.viewType === ViewType.Detail;
15
- }
16
-
17
- /**
18
- * 重置数据提交
19
- * @protected
20
- */
21
- @Widget.Reactive()
22
- @Widget.Provide('submitCallChaining')
23
- protected resetSubmitCallChaining: CallChaining<SubmitValue> | undefined;
24
-
25
- @Widget.Reactive()
26
- protected get subviewModel(): string {
27
- return ResourcePermissionModel.model;
28
- }
29
-
30
- @Widget.Reactive()
31
- protected get subviewModelName(): string {
32
- return ResourcePermissionModel.name;
33
- }
34
-
35
- @Widget.Reactive()
36
- protected get subviewModule(): string | undefined {
37
- return ResourcePermissionModel.module;
38
- }
39
-
40
- @Widget.Reactive()
41
- protected get subviewModuleName(): string {
42
- return ResourcePermissionModel.moduleName;
43
- }
44
-
45
- protected async getViewDsl() {
46
- const template = (
47
- await ViewCache.compile(
48
- ResourcePermissionModel.model,
49
- '$$data-permission-table-view',
50
- `<view type="TABLE">
51
- <template slot="actions">
52
- <action name="${ModelDefaultActionName.$$internal_GotoM2MListDialog}">
53
- <template slot="default" title="添加数据权限">
54
- <view type="TABLE">
55
- <template slot="table" sortable="true" filter="permissionType=='ROW' and (model!='base.Menu' and (model!='base.UeModule' and (model!='base.Module' and (name=notlike='%超级管理员%'))))">
56
- <field data="permissionType" invisible="true" />
57
- <field data="model" invisible="true" />
58
- <field data="permissionDataSource" invisible="true" />
59
- <field data="active" invisible="true" />
60
- <field data="name" />
61
- <field data="description" />
62
- <field data="domainExp" />
63
- <field data="permRead" />
64
- <field data="permWrite" />
65
- <field data="permDelete" />
66
- </template>
67
- </view>
68
- </template>
69
- </action>
70
- <action name="${ModelDefaultActionName.$$internal_DeleteOne}" type="default" />
71
- </template>
72
- <template slot="table" height="500">
73
- <field data="name" />
74
- <field data="description" />
75
- <field data="domainExp" label="查询条件" />
76
- <field data="permRead" label="查询" editable="${!this.disabled}" />
77
- <field data="permWrite" label="修改" editable="${!this.disabled}" />
78
- <field data="permDelete" label="删除" editable="${!this.disabled}" />
79
- </template>
80
- </view>`
81
- )
82
- )?.dsl as string;
83
- return JSON.parse(template);
84
- }
85
-
86
- public flushDataSource() {
87
- const { dataSource, submitCache, subviewSubmitCache } = this;
88
- let showRecords = dataSource;
89
- if (submitCache) {
90
- showRecords = submitCache.submit(dataSource || []);
91
- }
92
- if (subviewSubmitCache) {
93
- subviewSubmitCache.submit(dataSource || []);
94
- }
95
- this.dataSource = showRecords;
96
- this.refreshCallChaining?.syncCall();
97
- }
98
-
99
- protected async mountedProcess() {
100
- const queryStr = `{
101
- interactionPermissionQuery {
102
- dataPermissions(interactionPermission: {
103
- ${GraphqlHelper.buildStringGQLParameter('roleId', this.formData.id as string)}
104
- }) {
105
- rowPermissions {
106
- id
107
- name
108
- model
109
- modelDisplayName
110
- description
111
- domainExp
112
- permissionType
113
- active
114
- permRead
115
- permWrite
116
- permDelete
117
- }
118
- }
119
- }
120
- }`;
121
- let currentValues = (await http.query('auth', queryStr)).data.interactionPermissionQuery.dataPermissions
122
- .rowPermissions as IPermission[];
123
- if (currentValues == null) {
124
- currentValues = [];
125
- this.setValue(currentValues);
126
- }
127
- this.dataSource = currentValues;
128
- }
129
-
130
- public async submit() {
131
- const result: Record<string, unknown> = {};
132
- result.dataPermissions = this.dataSource;
133
- return result;
134
- }
135
- }
@@ -1,7 +0,0 @@
1
- <template><div>test view</div></template>
2
- <script lang="ts">
3
- import { defineComponent } from 'vue';
4
- export default defineComponent({
5
- name: 'view'
6
- });
7
- </script>
@@ -1,23 +0,0 @@
1
- import { SPI } from '@oinone/kunlun-spi';
2
- import { MaskWidget } from '@oinone/kunlun-vue-admin-layout';
3
- import { useMatched } from '@oinone/kunlun-vue-router';
4
- import { Widget } from '@oinone/kunlun-vue-widget';
5
- import PaaSInstallView from './PaaSInstall.vue';
6
-
7
- @SPI.ClassFactory(MaskWidget.Token({ widget: 'PaaSInstall' }))
8
- export class PaaSInstallWidget extends MaskWidget {
9
- @Widget.Reactive()
10
- public viewModel = '';
11
-
12
- public initialize(props) {
13
- super.initialize(props);
14
- this.setComponent(PaaSInstallView);
15
- return this;
16
- }
17
-
18
- async mounted() {
19
- super.mounted();
20
- const model = useMatched().matched.segmentParams.page.model;
21
- this.viewModel = model as string;
22
- }
23
- }
@@ -1 +0,0 @@
1
- field 存放PaaSInstall自定义组件