@maketribe/ms-app 3.0.29 → 3.0.31

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 (376) hide show
  1. package/package.json +39 -42
  2. package/src/components/button/button-options.ts +22 -0
  3. package/src/components/button/button.tsx +37 -0
  4. package/src/components/button/index.ts +7 -0
  5. package/src/components/column-components/column-action/column-action-options.ts +11 -0
  6. package/src/components/column-components/column-action/column-action.tsx +36 -0
  7. package/src/components/column-components/column-action/index.ts +4 -0
  8. package/src/components/column-components/column-date/column-date-options.ts +12 -0
  9. package/src/components/column-components/column-date/column-date.tsx +47 -0
  10. package/src/components/column-components/column-date/index.ts +6 -0
  11. package/src/components/column-components/column-image/column-image-options.ts +9 -0
  12. package/src/components/column-components/column-image/column-image.tsx +20 -0
  13. package/src/components/column-components/column-image/index.ts +4 -0
  14. package/src/components/column-components/column-json/column-json-options.ts +13 -0
  15. package/src/components/column-components/column-json/column-json.tsx +41 -0
  16. package/src/components/column-components/column-json/index.ts +8 -0
  17. package/src/components/column-components/column-link/column-link-options.ts +34 -0
  18. package/src/components/column-components/column-link/column-link.tsx +27 -0
  19. package/src/components/column-components/column-link/index.ts +7 -0
  20. package/src/components/column-components/column-object-mapping-text/column-object-mapping-text-options.ts +12 -0
  21. package/src/components/column-components/column-object-mapping-text/column-object-mapping-text.tsx +22 -0
  22. package/src/components/column-components/column-object-mapping-text/index.ts +6 -0
  23. package/src/components/column-components/column-select/column-select-header-options.ts +8 -0
  24. package/src/components/column-components/column-select/column-select-header.tsx +57 -0
  25. package/src/components/column-components/column-select/column-select-options.ts +9 -0
  26. package/src/components/column-components/column-select/column-select.tsx +74 -0
  27. package/src/components/column-components/column-select/index.ts +5 -0
  28. package/src/components/column-components/column-switch/column-switch-options.ts +16 -0
  29. package/src/components/column-components/column-switch/column-switch.tsx +37 -0
  30. package/src/components/column-components/column-switch/index.ts +6 -0
  31. package/src/components/column-components/column-tag/column-tag-options.ts +42 -0
  32. package/src/components/column-components/column-tag/column-tag.tsx +59 -0
  33. package/src/components/column-components/column-tag/index.ts +6 -0
  34. package/src/components/column-components/column-text/column-text-options.ts +10 -0
  35. package/src/components/column-components/column-text/column-text.tsx +18 -0
  36. package/src/components/column-components/column-text/index.ts +6 -0
  37. package/src/components/column-components/index.ts +10 -0
  38. package/src/components/condition-components/condition-date/condition-date-options.ts +21 -0
  39. package/src/components/condition-components/condition-date/condition-date.tsx +68 -0
  40. package/src/components/condition-components/condition-date/index.ts +7 -0
  41. package/src/components/condition-components/condition-input/condition-input-options.ts +10 -0
  42. package/src/components/condition-components/condition-input/condition-input.tsx +41 -0
  43. package/src/components/condition-components/condition-input/index.ts +7 -0
  44. package/src/components/condition-components/condition-number/condition-number-options.ts +22 -0
  45. package/src/components/condition-components/condition-number/condition-number.tsx +74 -0
  46. package/src/components/condition-components/condition-number/index.ts +7 -0
  47. package/src/components/condition-components/condition-select/condition-select-options.ts +31 -0
  48. package/src/components/condition-components/condition-select/condition-select.tsx +56 -0
  49. package/src/components/condition-components/condition-select/index.ts +7 -0
  50. package/src/components/condition-components/index.ts +4 -0
  51. package/src/components/config-provider/config-provider-options.ts +24 -0
  52. package/src/components/config-provider/config-provider.tsx +21 -0
  53. package/src/components/config-provider/constants.ts +8 -0
  54. package/src/components/config-provider/index.ts +9 -0
  55. package/src/components/config-provider/use-global-config.ts +70 -0
  56. package/src/components/data-model/data-filter-form/composables/index.ts +1 -0
  57. package/src/components/data-model/data-filter-form/composables/use-condition.ts +68 -0
  58. package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item-options.ts +11 -0
  59. package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.tsx +183 -0
  60. package/src/components/data-model/data-filter-form/data-filter-form-item/index.ts +7 -0
  61. package/src/components/data-model/data-filter-form/data-filter-form-options.ts +15 -0
  62. package/src/components/data-model/data-filter-form/data-filter-form.tsx +103 -0
  63. package/src/components/data-model/data-filter-form/index.ts +13 -0
  64. package/src/components/data-model/data-filter-form/operator-options.ts +48 -0
  65. package/src/components/data-model/data-filter-form/token.ts +30 -0
  66. package/src/components/data-model/data-filter-popover/data-filter-popover-options.ts +6 -0
  67. package/src/components/data-model/data-filter-popover/data-filter-popover.tsx +52 -0
  68. package/src/components/data-model/data-filter-popover/index.ts +8 -0
  69. package/src/components/data-model/data-form/composables/index.ts +1 -0
  70. package/src/components/data-model/data-form/composables/use-form-item.ts +40 -0
  71. package/src/components/data-model/data-form/data-form-item/data-form-item-options.ts +11 -0
  72. package/src/components/data-model/data-form/data-form-item/data-form-item.tsx +140 -0
  73. package/src/components/data-model/data-form/data-form-item/index.ts +6 -0
  74. package/src/components/data-model/data-form/data-form-options.ts +43 -0
  75. package/src/components/data-model/data-form/data-form.tsx +113 -0
  76. package/src/components/data-model/data-form/index.ts +13 -0
  77. package/src/components/data-model/data-form/token.ts +16 -0
  78. package/src/components/data-model/data-form/views/form/form-options.ts +16 -0
  79. package/src/components/data-model/data-form/views/form/form.tsx +206 -0
  80. package/src/components/data-model/data-form/views/form/index.ts +6 -0
  81. package/src/components/data-model/data-form/views/form-view/form-view-options.ts +17 -0
  82. package/src/components/data-model/data-form/views/form-view/form-view.tsx +68 -0
  83. package/src/components/data-model/data-form/views/form-view/index.ts +6 -0
  84. package/src/components/data-model/data-form/views/index.ts +2 -0
  85. package/src/components/data-model/data-form-page/data-form-page-options.ts +20 -0
  86. package/src/components/data-model/data-form-page/data-form-page.tsx +57 -0
  87. package/src/components/data-model/data-form-page/index.ts +7 -0
  88. package/src/components/data-model/data-table/composables/index.ts +1 -0
  89. package/src/components/data-model/data-table/composables/use-column.ts +23 -0
  90. package/src/components/data-model/data-table/data-table-column/data-table-column-options.ts +11 -0
  91. package/src/components/data-model/data-table/data-table-column/data-table-column.tsx +18 -0
  92. package/src/components/data-model/data-table/data-table-column/index.ts +7 -0
  93. package/src/components/data-model/data-table/data-table-column-component/data-table-column-component-options.ts +13 -0
  94. package/src/components/data-model/data-table/data-table-column-component/data-table-column-component.tsx +38 -0
  95. package/src/components/data-model/data-table/data-table-column-component/index.ts +7 -0
  96. package/src/components/data-model/data-table/data-table-options.ts +24 -0
  97. package/src/components/data-model/data-table/data-table.tsx +102 -0
  98. package/src/components/data-model/data-table/index.ts +17 -0
  99. package/src/components/data-model/data-table/token.ts +10 -0
  100. package/src/components/data-model/data-table/views/index.ts +5 -0
  101. package/src/components/data-model/data-table/views/table/index.ts +8 -0
  102. package/src/components/data-model/data-table/views/table/table-options.ts +12 -0
  103. package/src/components/data-model/data-table/views/table/table.tsx +98 -0
  104. package/src/components/data-model/data-table/views/table-tree/index.ts +8 -0
  105. package/src/components/data-model/data-table/views/table-tree/table-tree-options.ts +12 -0
  106. package/src/components/data-model/data-table/views/table-tree/table-tree.tsx +104 -0
  107. package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/classify-search-item-options.ts +34 -0
  108. package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/classify-search-item.tsx +97 -0
  109. package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/index.ts +5 -0
  110. package/src/components/data-model/data-table/views/table-view/classify-search/classify-search.tsx +40 -0
  111. package/src/components/data-model/data-table/views/table-view/classify-search/index.ts +7 -0
  112. package/src/components/data-model/data-table/views/table-view/index.ts +8 -0
  113. package/src/components/data-model/data-table/views/table-view/table-view-options.ts +13 -0
  114. package/src/components/data-model/data-table/views/table-view/table-view.tsx +126 -0
  115. package/src/components/data-model/data-table/views/tree/index.ts +8 -0
  116. package/src/components/data-model/data-table/views/tree/tree-options.ts +14 -0
  117. package/src/components/data-model/data-table/views/tree/tree.tsx +131 -0
  118. package/src/components/data-model/data-table/views/tree-view/index.ts +8 -0
  119. package/src/components/data-model/data-table/views/tree-view/tree-view-options.ts +16 -0
  120. package/src/components/data-model/data-table/views/tree-view/tree-view.tsx +81 -0
  121. package/src/components/data-model/data-table-page/data-table-page-options.ts +11 -0
  122. package/src/components/data-model/data-table-page/data-table-page.tsx +26 -0
  123. package/src/components/data-model/data-table-page/index.ts +6 -0
  124. package/src/components/data-model/data-table-pagination/data-table-pagination-options.ts +14 -0
  125. package/src/components/data-model/data-table-pagination/data-table-pagination.tsx +22 -0
  126. package/src/components/data-model/data-table-pagination/index.ts +7 -0
  127. package/src/components/data-model/filter-panel/composables/index.ts +1 -0
  128. package/src/components/data-model/filter-panel/composables/use-condition.ts +66 -0
  129. package/src/components/data-model/filter-panel/filter-panel-item/filter-panel-item-options.ts +11 -0
  130. package/src/components/data-model/filter-panel/filter-panel-item/filter-panel-item.tsx +187 -0
  131. package/src/components/data-model/filter-panel/filter-panel-item/index.ts +7 -0
  132. package/src/components/data-model/filter-panel/filter-panel-options.ts +15 -0
  133. package/src/components/data-model/filter-panel/filter-panel.tsx +102 -0
  134. package/src/components/data-model/filter-panel/index.ts +11 -0
  135. package/src/components/data-model/filter-panel/operator-options.ts +48 -0
  136. package/src/components/data-model/filter-panel/token.ts +17 -0
  137. package/src/components/data-model/index.ts +5 -0
  138. package/src/components/data-select/data-select-options.ts +43 -0
  139. package/src/components/data-select/data-select.tsx +87 -0
  140. package/src/components/data-select/index.ts +7 -0
  141. package/src/components/data-table-select/data-table-select-options.ts +43 -0
  142. package/src/components/data-table-select/data-table-select.tsx +190 -0
  143. package/src/components/data-table-select/index.ts +6 -0
  144. package/src/components/data-table-select-dialog/data-table-select-dialog-options.ts +33 -0
  145. package/src/components/data-table-select-dialog/data-table-select-dialog.tsx +154 -0
  146. package/src/components/data-table-select-dialog/index.ts +7 -0
  147. package/src/components/file-view/file-view-options.ts +8 -0
  148. package/src/components/file-view/file-view.tsx +40 -0
  149. package/src/components/file-view/index.ts +7 -0
  150. package/src/components/form-components/form-data-select/form-data-select-options.ts +23 -0
  151. package/src/components/form-components/form-data-select/form-data-select.tsx +28 -0
  152. package/src/components/form-components/form-data-select/index.ts +7 -0
  153. package/src/components/form-components/form-data-table-select/form-data-table-select-options.ts +19 -0
  154. package/src/components/form-components/form-data-table-select/form-data-table-select.tsx +32 -0
  155. package/src/components/form-components/form-data-table-select/index.ts +7 -0
  156. package/src/components/form-components/form-date-picker/form-date-picker-options.ts +18 -0
  157. package/src/components/form-components/form-date-picker/form-date-picker.tsx +49 -0
  158. package/src/components/form-components/form-date-picker/index.ts +8 -0
  159. package/src/components/form-components/form-detail/form-detail-options.ts +15 -0
  160. package/src/components/form-components/form-detail/form-detail.tsx +112 -0
  161. package/src/components/form-components/form-detail/index.ts +7 -0
  162. package/src/components/form-components/form-detail-select/form-detail-select-options.ts +39 -0
  163. package/src/components/form-components/form-detail-select/form-detail-select.tsx +68 -0
  164. package/src/components/form-components/form-detail-select/index.ts +5 -0
  165. package/src/components/form-components/form-icon-select/form-icon-select-options.ts +9 -0
  166. package/src/components/form-components/form-icon-select/form-icon-select.tsx +71 -0
  167. package/src/components/form-components/form-icon-select/index.ts +5 -0
  168. package/src/components/form-components/form-image-upload/form-image-upload-options.ts +11 -0
  169. package/src/components/form-components/form-image-upload/form-image-upload.tsx +22 -0
  170. package/src/components/form-components/form-image-upload/index.ts +5 -0
  171. package/src/components/form-components/form-radio-box/form-radio-box-options.ts +32 -0
  172. package/src/components/form-components/form-radio-box/form-radio-box.tsx +83 -0
  173. package/src/components/form-components/form-radio-box/index.ts +7 -0
  174. package/src/components/form-components/form-rich-text-editor/form-rich-text-editor-options.ts +6 -0
  175. package/src/components/form-components/form-rich-text-editor/form-rich-text-editor.tsx +22 -0
  176. package/src/components/form-components/form-rich-text-editor/index.ts +7 -0
  177. package/src/components/form-components/index.ts +9 -0
  178. package/src/components/image-select/image-select-option.ts +11 -0
  179. package/src/components/image-select/image-select.tsx +44 -0
  180. package/src/components/image-select/index.ts +6 -0
  181. package/src/components/image-view/image-view-options.ts +14 -0
  182. package/src/components/image-view/image-view.tsx +30 -0
  183. package/src/components/image-view/index.ts +7 -0
  184. package/src/components/index.ts +23 -0
  185. package/src/components/json-editor/index.ts +8 -0
  186. package/src/components/json-editor/json-editor-options.ts +21 -0
  187. package/src/components/json-editor/json-editor.tsx +28 -0
  188. package/src/components/markdown-editor/index.ts +10 -0
  189. package/src/components/markdown-editor/markdown-editor-options.ts +17 -0
  190. package/src/components/markdown-editor/markdown-editor.tsx +136 -0
  191. package/src/components/material-list/index.ts +7 -0
  192. package/src/components/material-list/material-group-form-popover.vue +78 -0
  193. package/src/components/material-list/material-group.vue +145 -0
  194. package/src/components/material-list/material-item.vue +26 -0
  195. package/src/components/material-list/material-list-options.ts +24 -0
  196. package/src/components/material-list/material-list.vue +153 -0
  197. package/src/components/material-select/index.ts +17 -0
  198. package/src/components/material-select/material-select-api.ts +55 -0
  199. package/src/components/material-select/material-select-options.ts +22 -0
  200. package/src/components/material-select/material-select-type.ts +21 -0
  201. package/src/components/material-select/material-select.tsx +106 -0
  202. package/src/components/pagination/index.ts +7 -0
  203. package/src/components/pagination/pagination-options.tsx +30 -0
  204. package/src/components/pagination/pagination.tsx +41 -0
  205. package/src/components/rich-text-editor/index.ts +10 -0
  206. package/src/components/rich-text-editor/langs/zh-Hans.js +1 -0
  207. package/src/components/rich-text-editor/rich-text-editor-options.ts +21 -0
  208. package/src/components/rich-text-editor/rich-text-editor.tsx +111 -0
  209. package/src/components/role-permission-config/index.ts +7 -0
  210. package/src/components/role-permission-config/role-permission-config-options.ts +20 -0
  211. package/src/components/role-permission-config/role-permission-config.tsx +269 -0
  212. package/src/components/svg-icon/index.ts +5 -0
  213. package/src/components/svg-icon/svg-icon-options.ts +21 -0
  214. package/src/components/svg-icon/svg-icon.tsx +48 -0
  215. package/src/components/system-provider/index.ts +5 -0
  216. package/src/components/system-provider/system-provider.tsx +95 -0
  217. package/src/components/upload-file/context/MaterialUploadContext.ts +33 -0
  218. package/src/components/upload-file/context/UploadContext.ts +21 -0
  219. package/src/components/upload-file/context/WebFileUploadContext.ts +77 -0
  220. package/src/components/upload-file/context/index.ts +7 -0
  221. package/src/components/upload-file/context/material-upload-context-options.ts +13 -0
  222. package/src/components/upload-file/context/material-upload-context.tsx +34 -0
  223. package/src/components/upload-file/context/web-file-upload-context-options.ts +16 -0
  224. package/src/components/upload-file/context/web-file-upload-context.tsx +37 -0
  225. package/src/components/upload-file/index.ts +11 -0
  226. package/src/components/upload-file/ui/index.ts +1 -0
  227. package/src/components/upload-file/ui/upload-image/index.ts +7 -0
  228. package/src/components/upload-file/ui/upload-image/upload-image-options.ts +25 -0
  229. package/src/components/upload-file/ui/upload-image/upload-image.tsx +337 -0
  230. package/src/components/upload-file/upload-file-options.ts +22 -0
  231. package/src/components/upload-file/upload-file.tsx +69 -0
  232. package/src/components/verify-dialog/index.ts +5 -0
  233. package/src/components/verify-dialog/verify-dialog-option.ts +24 -0
  234. package/src/components/verify-dialog/verify-dialog.tsx +179 -0
  235. package/src/components/video-view/index.ts +7 -0
  236. package/src/components/video-view/video-view-options.ts +10 -0
  237. package/src/components/video-view/video-view.tsx +115 -0
  238. package/src/composables/create-data-form.ts +6 -0
  239. package/src/composables/create-data-table.ts +8 -0
  240. package/src/composables/index.ts +17 -0
  241. package/src/composables/on-tab-before-close.ts +8 -0
  242. package/src/composables/on-tab-before-switch.ts +8 -0
  243. package/src/composables/on-tab-refresh.ts +8 -0
  244. package/src/composables/use-column-component.ts +184 -0
  245. package/src/composables/use-current-tab.ts +4 -0
  246. package/src/composables/use-http-request.ts +5 -0
  247. package/src/composables/use-i18n.ts +7 -0
  248. package/src/composables/use-ms-app-client.ts +10 -0
  249. package/src/composables/use-user-info.ts +4 -0
  250. package/src/constants/index.ts +6 -0
  251. package/src/constants/log.ts +5 -0
  252. package/src/constants/menu.ts +5 -0
  253. package/src/constants/pattern.ts +4 -0
  254. package/src/constants/region.ts +6 -0
  255. package/src/constants/route.ts +4 -0
  256. package/src/constants/token.ts +5 -0
  257. package/src/core/DataModelDefines.ts +72 -0
  258. package/src/core/MSAppClient.ts +260 -0
  259. package/src/core/PageManager.ts +169 -0
  260. package/src/core/PermissionPointManager.ts +26 -0
  261. package/src/core/Router.ts +150 -0
  262. package/src/core/UserInfo.ts +66 -0
  263. package/src/core/UserSession.ts +215 -0
  264. package/src/core/component/ConfigComponents.ts +32 -0
  265. package/src/core/component/DataFilterComponents.ts +40 -0
  266. package/src/core/component/DataFormComponents.ts +93 -0
  267. package/src/core/component/DataTableComponents.ts +91 -0
  268. package/src/core/component/MaterialComponents.ts +32 -0
  269. package/src/core/component/index.ts +5 -0
  270. package/src/core/index.ts +11 -0
  271. package/src/core/menu/Menu.ts +143 -0
  272. package/src/core/menu/MenuNode.ts +53 -0
  273. package/src/core/menu/index.ts +2 -0
  274. package/src/core/resolver/ITypeResolver.ts +5 -0
  275. package/src/core/tabs/Tab.ts +59 -0
  276. package/src/core/tabs/Tabs.ts +187 -0
  277. package/src/core/tabs/index.ts +2 -0
  278. package/src/dataview/config/ConfigForm.ts +142 -0
  279. package/src/dataview/config/ConfigTable.ts +72 -0
  280. package/src/dataview/config/index.ts +2 -0
  281. package/src/dataview/deny-ip-access-list/DenyIPAccessListForm.ts +33 -0
  282. package/src/dataview/deny-ip-access-list/DenyIPAccessListTable.ts +84 -0
  283. package/src/dataview/deny-ip-access-list/index.ts +2 -0
  284. package/src/dataview/department/DepartmentForm.ts +41 -0
  285. package/src/dataview/department/DepartmentTable.ts +64 -0
  286. package/src/dataview/department/DepartmentTree.ts +47 -0
  287. package/src/dataview/department/index.ts +3 -0
  288. package/src/dataview/index.ts +11 -0
  289. package/src/dataview/ip-white-list/IPWhitelistForm.ts +38 -0
  290. package/src/dataview/ip-white-list/IPWhitelistTable.ts +81 -0
  291. package/src/dataview/ip-white-list/index.ts +2 -0
  292. package/src/dataview/log/index.ts +4 -0
  293. package/src/dataview/log/local-log/LocalLogTree.ts +77 -0
  294. package/src/dataview/log/local-log/index.ts +1 -0
  295. package/src/dataview/log/login-log/LoginLogTable.ts +55 -0
  296. package/src/dataview/log/login-log/index.ts +1 -0
  297. package/src/dataview/log/operate-log/OperateLogTable.ts +20 -0
  298. package/src/dataview/log/operate-log/index.ts +1 -0
  299. package/src/dataview/log/request-log/RequestLogTable.ts +82 -0
  300. package/src/dataview/log/request-log/index.ts +1 -0
  301. package/src/dataview/material/MaterialForm.ts +49 -0
  302. package/src/dataview/material/MaterialMan.ts +203 -0
  303. package/src/dataview/material/MaterialTable.ts +125 -0
  304. package/src/dataview/material/index.ts +4 -0
  305. package/src/dataview/material/material-group/MaterialGroupForm.ts +27 -0
  306. package/src/dataview/material/material-group/MaterialGroupTable.ts +57 -0
  307. package/src/dataview/material/material-group/MaterialGroupTree.ts +71 -0
  308. package/src/dataview/material/material-group/index.ts +3 -0
  309. package/src/dataview/member/MemberForm.ts +124 -0
  310. package/src/dataview/member/MemberTable.tsx +257 -0
  311. package/src/dataview/member/index.ts +2 -0
  312. package/src/dataview/member/member-role/MemberRoleTable.ts +23 -0
  313. package/src/dataview/menu/MenuForm.ts +192 -0
  314. package/src/dataview/menu/MenuTable.ts +40 -0
  315. package/src/dataview/menu/MenuTree.ts +112 -0
  316. package/src/dataview/menu/index.ts +4 -0
  317. package/src/dataview/menu/permission-point/PermissionPointDefineForm.ts +30 -0
  318. package/src/dataview/menu/permission-point/PermissionPointDefineTable.ts +32 -0
  319. package/src/dataview/menu/permission-point/index.ts +2 -0
  320. package/src/dataview/region/RegionForm.ts +52 -0
  321. package/src/dataview/region/RegionTable.ts +64 -0
  322. package/src/dataview/region/index.ts +2 -0
  323. package/src/dataview/role/RoleForm.ts +34 -0
  324. package/src/dataview/role/RolePermissionConfigTable.ts +476 -0
  325. package/src/dataview/role/RoleTable.ts +70 -0
  326. package/src/dataview/role/index.ts +5 -0
  327. package/src/dataview/role/role-permission-point/RolePermissionPointTable.ts +29 -0
  328. package/src/dataview/role/role-permission-point/index.ts +1 -0
  329. package/src/dataview/role/role-route/RoleRouteTable.ts +30 -0
  330. package/src/dataview/role/role-route/index.ts +1 -0
  331. package/src/dataview/route/RouteForm.ts +94 -0
  332. package/src/dataview/route/RouteTable.ts +73 -0
  333. package/src/dataview/route/index.ts +2 -0
  334. package/src/define-data-form.ts +12 -0
  335. package/src/define-data-table.ts +12 -0
  336. package/src/define-data-tree.ts +12 -0
  337. package/src/index.ts +19 -0
  338. package/src/init-application.ts +83 -0
  339. package/src/installer.ts +73 -0
  340. package/src/layouts/components/bar/index.tsx +102 -0
  341. package/src/layouts/components/dialogs/dialogs.tsx +100 -0
  342. package/src/layouts/components/dialogs/index.ts +5 -0
  343. package/src/layouts/components/header/index.tsx +18 -0
  344. package/src/layouts/components/header/tools.tsx +55 -0
  345. package/src/layouts/components/index.ts +3 -0
  346. package/src/layouts/components/lock/index.ts +5 -0
  347. package/src/layouts/components/lock/lock.tsx +92 -0
  348. package/src/layouts/components/menu/index.tsx +61 -0
  349. package/src/layouts/components/menu/menu-item.tsx +63 -0
  350. package/src/layouts/container/default.tsx +85 -0
  351. package/src/layouts/index.ts +6 -0
  352. package/src/layouts/layout.tsx +11 -0
  353. package/src/message-impl/DialogerImpl.ts +84 -0
  354. package/src/message-impl/MessagerImpl.ts +17 -0
  355. package/src/message-impl/NotificationerImpl.ts +17 -0
  356. package/src/message-impl/index.ts +3 -0
  357. package/src/page/index/404.vue +3 -0
  358. package/src/page/index/dv/default/add.vue +50 -0
  359. package/src/page/index/dv/default/edit.vue +56 -0
  360. package/src/page/index/dv/default/single/list/dialog.vue +155 -0
  361. package/src/page/index/dv/default/single/list/normal.vue +128 -0
  362. package/src/page/index/dv/default/single/table-tree/dialog.vue +60 -0
  363. package/src/page/index/dv/default/single/tree/dialog.vue +174 -0
  364. package/src/page/index/dv/default/table.vue +52 -0
  365. package/src/page/index/dv/local-log/index.vue +98 -0
  366. package/src/page/index/dv/ms-member/index.vue +33 -0
  367. package/src/page/index/dv/ms-role/index.vue +32 -0
  368. package/src/page/index/material/index.vue +16 -0
  369. package/src/page/index.vue +9 -0
  370. package/src/page/login/index.vue +196 -0
  371. package/src/page/signup/index.vue +157 -0
  372. package/src/router-middleware/auth.ts +31 -0
  373. package/src/router-middleware/index.ts +1 -0
  374. package/src/tokens/index.ts +1 -0
  375. package/src/tokens/ms-app-client.ts +10 -0
  376. package/src/utils.ts +233 -0
@@ -0,0 +1,140 @@
1
+ import { ElFormItem } from "element-plus";
2
+ import {
3
+ Ref,
4
+ computed,
5
+ defineComponent,
6
+ inject,
7
+ provide,
8
+ reactive,
9
+ ref,
10
+ toRaw,
11
+ unref,
12
+ useSlots,
13
+ watch,
14
+ } from "vue";
15
+ import { FormColumn } from "@maketribe/dm";
16
+
17
+ import { useFormColumnComponent } from "../../../../composables";
18
+ import {
19
+ DATAFORM_CONTEXT_KEY,
20
+ DATAFORM_ITEM_CONTEXT_KEY,
21
+ DataFormItemContext,
22
+ } from "../token";
23
+ import { dataFormItemProps } from "./data-form-item-options";
24
+
25
+ export default defineComponent({
26
+ name: "MKDataFormItem",
27
+ props: dataFormItemProps,
28
+ setup(props) {
29
+ const slots = useSlots();
30
+
31
+ const dataFormContext = inject(DATAFORM_CONTEXT_KEY);
32
+
33
+ const dataForm = computed(() => dataFormContext?.dataForm ?? null);
34
+
35
+ let _formColumn: FormColumn | null = null;
36
+
37
+ const existFormColumn = ref(
38
+ unref(dataForm)!.getColumn(props.name!)
39
+ ) as Ref<FormColumn | null>;
40
+
41
+ const formColumn = computed(() => {
42
+ const existingColumn = unref(existFormColumn);
43
+
44
+ if (existingColumn) {
45
+ return existingColumn;
46
+ }
47
+
48
+ if (!_formColumn) {
49
+ _formColumn = reactive(
50
+ new FormColumn({
51
+ required: props.required,
52
+ name: props.name!,
53
+ label: props.label!,
54
+ })
55
+ ) as FormColumn;
56
+ }
57
+
58
+ return _formColumn!;
59
+ });
60
+
61
+ watch(
62
+ formColumn,
63
+ (formColumn, _, onCleanup) => {
64
+ const existFormColumn = unref(dataForm)!.getColumn(formColumn.name);
65
+
66
+ if (!existFormColumn && _formColumn) {
67
+ unref(dataForm)!.addColumn(_formColumn);
68
+ }
69
+
70
+ onCleanup(() => {
71
+ if (_formColumn) {
72
+ unref(dataForm)!.removeColumn(_formColumn);
73
+ }
74
+ });
75
+ },
76
+ { immediate: true }
77
+ );
78
+
79
+ const { component, componentProps } = useFormColumnComponent(
80
+ formColumn,
81
+ dataForm
82
+ );
83
+
84
+ const disabled = computed(() => unref(formColumn).disabled);
85
+
86
+ const value = computed({
87
+ get: () => unref(formColumn)?.getValue(),
88
+ set: (v) => {
89
+ unref(formColumn).setValue(v);
90
+ },
91
+ });
92
+
93
+ const label = computed(() =>
94
+ typeof props.label !== "string" ? unref(formColumn).label : props.label
95
+ );
96
+
97
+ provide(
98
+ DATAFORM_ITEM_CONTEXT_KEY,
99
+ reactive({ column: formColumn }) as DataFormItemContext
100
+ );
101
+
102
+ return () => {
103
+ let _formColumn = unref(formColumn);
104
+
105
+ let _component = unref(component);
106
+
107
+ let children: any =
108
+ slots.default?.({
109
+ data: unref(dataForm)!.data,
110
+ column: _formColumn,
111
+ dataForm: unref(dataForm),
112
+ }) || null;
113
+
114
+ if (!children && _component) {
115
+ const FormColumnComponent = toRaw(_component);
116
+
117
+ children = (
118
+ <FormColumnComponent
119
+ {...unref(componentProps)}
120
+ column={_formColumn}
121
+ modelValue={value.value}
122
+ disabled={unref(disabled)}
123
+ onUpdate:modelValue={(v: any) => (value.value = v)}
124
+ />
125
+ );
126
+ }
127
+
128
+ return (
129
+ <ElFormItem
130
+ prop={_formColumn.name}
131
+ label={unref(label)}
132
+ required={_formColumn.required}
133
+ labelWidth={props.labelWidth}
134
+ >
135
+ {children}
136
+ </ElFormItem>
137
+ );
138
+ };
139
+ },
140
+ });
@@ -0,0 +1,6 @@
1
+ import DataFormItem from "./data-form-item";
2
+
3
+ export const MKDataFormItem = DataFormItem;
4
+ export default MKDataFormItem;
5
+
6
+ export * from "./data-form-item-options";
@@ -0,0 +1,43 @@
1
+ import { ExtractPropTypes } from "vue";
2
+ import { buildProps } from "@maketribe/utils";
3
+ import { ColumnOptions, DataForm } from "@maketribe/dm";
4
+
5
+ export const dataFormProps = buildProps({
6
+ dataForm: {
7
+ type: DataForm<any>,
8
+ },
9
+ name: {
10
+ type: String,
11
+ },
12
+ primaryKey: {
13
+ type: String,
14
+ },
15
+ autoLoad: {
16
+ type: Boolean,
17
+ default: true,
18
+ },
19
+ loadInterfaceURL: {
20
+ type: String,
21
+ },
22
+ addInterfaceURL: {
23
+ type: String,
24
+ },
25
+ updateInterfaceURL: {
26
+ type: String,
27
+ },
28
+ columns: {
29
+ type: Array<ColumnOptions>,
30
+ default: () => [],
31
+ },
32
+ } as const);
33
+
34
+ export type DataFormProps = ExtractPropTypes<typeof dataFormProps>;
35
+
36
+ export const dataFormEmits = {
37
+ changeDataForm: (dataForm: any) => dataForm instanceof DataForm,
38
+ cancel: () => true,
39
+ error: (e: any) => e instanceof Error,
40
+ submitted: (response: any) => !!response,
41
+ };
42
+
43
+ export type DataFormEmits = typeof dataFormEmits;
@@ -0,0 +1,113 @@
1
+ import {
2
+ computed,
3
+ defineComponent,
4
+ provide,
5
+ reactive,
6
+ unref,
7
+ useSlots,
8
+ watch,
9
+ } from "vue";
10
+ import { FormColumn, DataForm } from "@maketribe/dm";
11
+
12
+ import { dataFormEmits, dataFormProps } from "./data-form-options";
13
+ import { DATAFORM_CONTEXT_KEY } from "./token";
14
+ import { Disposable, Event } from "@maketribe/utils";
15
+ import { MKFormView } from "./views";
16
+
17
+ export default defineComponent({
18
+ name: "MKDataForm",
19
+ inheritAttrs: false,
20
+ props: dataFormProps,
21
+ emits: dataFormEmits,
22
+ setup(props, { emit, slots }) {
23
+ let _dataForm: DataForm | null = null;
24
+
25
+ const createDataForm = () => {
26
+ const dataForm = new DataForm({
27
+ name: props.name!,
28
+ primaryKey: props.primaryKey,
29
+ interfaceURL: {
30
+ load: props.loadInterfaceURL || "",
31
+ add: props.addInterfaceURL || "",
32
+ update: props.updateInterfaceURL || props.addInterfaceURL || "",
33
+ },
34
+ });
35
+
36
+ const columns = props.columns.map((column) => new FormColumn(column));
37
+
38
+ dataForm.setColumns(columns);
39
+
40
+ return dataForm;
41
+ };
42
+
43
+ const dataForm = computed(() => {
44
+ if (props.dataForm instanceof DataForm) {
45
+ return props.dataForm;
46
+ }
47
+
48
+ if (!_dataForm) {
49
+ _dataForm = reactive(createDataForm()) as DataForm;
50
+ }
51
+
52
+ return _dataForm;
53
+ });
54
+
55
+ watch(
56
+ dataForm,
57
+ async (dataForm, _, onCleanup) => {
58
+ await dataForm.init();
59
+
60
+ if (unref(dataForm).autoReset) {
61
+ unref(dataForm).reset();
62
+ }
63
+
64
+ const disposable = new Disposable();
65
+
66
+ const events = Object.keys(dataForm)
67
+ .filter((key) => dataForm[key as keyof DataForm] instanceof Event)
68
+ .map((key) => ({
69
+ eventName: key
70
+ .replace(/Event$/, "")
71
+ .replace(/[A-Z]/g, (match) => `-${match.toLocaleLowerCase()}`),
72
+ event: dataForm[key as keyof DataForm]! as Event,
73
+ }));
74
+
75
+ for (const item of events.filter(
76
+ (event) => event.eventName in dataFormEmits
77
+ )) {
78
+ disposable.register(
79
+ // @ts-ignore
80
+ item.event.on((event: any) => {
81
+ // @ts-ignore
82
+ emit(item.eventName, event);
83
+ })
84
+ );
85
+ }
86
+
87
+ onCleanup(() => {
88
+ disposable.dispose();
89
+ });
90
+
91
+ emit("changeDataForm", dataForm);
92
+ },
93
+ { immediate: true }
94
+ );
95
+
96
+ provide(
97
+ DATAFORM_CONTEXT_KEY,
98
+ reactive({
99
+ dataForm,
100
+ })
101
+ );
102
+
103
+ return () => {
104
+ return (
105
+ <div class="mk-data-form">
106
+ {slots.default?.({ ...props, dataForm: unref(dataForm) }) || (
107
+ <MKFormView {...props} dataForm={unref(dataForm)} v-slots={slots} />
108
+ )}
109
+ </div>
110
+ );
111
+ };
112
+ },
113
+ });
@@ -0,0 +1,13 @@
1
+ import { withInstall } from "@maketribe/utils";
2
+ import DataForm from "./data-form";
3
+ import MKDataFormItem from "./data-form-item";
4
+
5
+ export const MKDataForm = withInstall(DataForm, {
6
+ MKDataFormItem,
7
+ });
8
+ export default MKDataForm;
9
+
10
+ export * from "./data-form-options";
11
+ export * from "./data-form-item";
12
+
13
+ export * from "./views";
@@ -0,0 +1,16 @@
1
+ import { InjectionKey } from "vue";
2
+ import { DataForm, FormColumn } from "@maketribe/dm";
3
+
4
+ export interface DataFormContext {
5
+ dataForm: DataForm;
6
+ }
7
+
8
+ export const DATAFORM_CONTEXT_KEY: InjectionKey<DataFormContext> =
9
+ Symbol("dataFormContextKey");
10
+
11
+ export interface DataFormItemContext {
12
+ column: FormColumn;
13
+ }
14
+
15
+ export const DATAFORM_ITEM_CONTEXT_KEY: InjectionKey<DataFormItemContext> =
16
+ Symbol("dataFormItemContextKey");
@@ -0,0 +1,16 @@
1
+ import { ExtractPropTypes } from "vue";
2
+
3
+ import { buildProps } from "@maketribe/utils";
4
+ import { DataForm } from "@maketribe/dm";
5
+
6
+ export const formProps = buildProps({
7
+ rules: { type: Object },
8
+ labelWidth: { type: String },
9
+ dataForm: { type: DataForm<any>, required: true },
10
+ } as const);
11
+
12
+ export type FormProps = ExtractPropTypes<typeof formProps>;
13
+
14
+ export const formEmits = {};
15
+
16
+ export const FormEmits = typeof formEmits;
@@ -0,0 +1,206 @@
1
+ import {
2
+ Fragment,
3
+ computed,
4
+ defineComponent,
5
+ nextTick,
6
+ onBeforeUnmount,
7
+ onMounted,
8
+ ref,
9
+ unref,
10
+ watch,
11
+ } from "vue";
12
+ import {
13
+ ElDivider,
14
+ ElForm,
15
+ FormItemRule,
16
+ FormRules,
17
+ FormContext,
18
+ } from "element-plus";
19
+ import { formProps } from "./form-options";
20
+ import { DataFormType, FormColumn, FormModel } from "@maketribe/dm";
21
+ import MKDataFormItem from "../../data-form-item";
22
+ import { Disposable } from "@maketribe/utils";
23
+
24
+ let uid = 0;
25
+
26
+ export default defineComponent({
27
+ props: formProps,
28
+ setup(props, { slots }) {
29
+ const formUID = uid++;
30
+
31
+ const formEl = ref<FormContext | null>(null);
32
+
33
+ const dataForm = computed(() => props.dataForm);
34
+
35
+ const data = computed(() => unref(dataForm).data as any);
36
+
37
+ const columns = computed(() =>
38
+ unref(dataForm)
39
+ .getColumns()
40
+ .filter((column) => column.visible)
41
+ );
42
+
43
+ const rules = computed(() => {
44
+ const rules: FormRules = {};
45
+
46
+ for (const column of unref(columns)) {
47
+ if (column.required && !column.rules.find((rule) => rule.required)) {
48
+ rules[column.name] = [
49
+ {
50
+ required: column.required,
51
+ message: `请录入${column.label}.`,
52
+ },
53
+ ];
54
+ }
55
+ let componentRules: FormItemRule[] = props.rules?.[column.name] || [];
56
+
57
+ if (!Array.isArray(componentRules)) {
58
+ componentRules = [componentRules];
59
+ }
60
+
61
+ if (column.rules.length) {
62
+ rules[column.name] = [
63
+ ...((rules[column.name] as FormItemRule[]) || []),
64
+ ...column.rules,
65
+ ...componentRules,
66
+ ];
67
+ }
68
+ }
69
+
70
+ return rules;
71
+ });
72
+
73
+ const labelWidth = computed(() => {
74
+ return (
75
+ props.labelWidth ||
76
+ Math.max.apply(
77
+ null,
78
+ columns.value
79
+ .filter((column) => column.componentInfo !== "MKFormDetail")
80
+ .map((item: FormColumn) => {
81
+ // + 8 像素只是预留 必填 * 号的宽度位置 12 像素是label的padding
82
+ return item.label.length * 16 + 8 + 12;
83
+ })
84
+ )
85
+ );
86
+ });
87
+
88
+ const disabled = computed(() => unref(dataForm).disabled);
89
+
90
+ onMounted(() => {
91
+ watch(
92
+ dataForm,
93
+ (dataForm, _, onCleanup) => {
94
+ const disposable = new Disposable();
95
+
96
+ unref(dataForm).formModels.push({
97
+ id: formUID,
98
+ validate: async () => {
99
+ return unref(formEl)?.validateField() ?? false;
100
+ },
101
+ reset: () => {
102
+ unref(formEl)?.resetFields();
103
+ },
104
+ clearValidate: () => {
105
+ unref(formEl)?.clearValidate();
106
+ },
107
+ });
108
+
109
+ disposable.register(
110
+ dataForm.dataFormTypeChangeEvent.on(async ({ dataFormType }) => {
111
+ if (dataFormType !== DataFormType.NONE) {
112
+ // 测试下来 需要两次nextTick才能清楚验证
113
+ await nextTick();
114
+ await nextTick();
115
+
116
+ dataForm.clearValidate();
117
+ }
118
+ })
119
+ );
120
+
121
+ onCleanup(() => {
122
+ const index = dataForm.formModels.findIndex(
123
+ (formModel) => formModel.id === uid
124
+ );
125
+
126
+ if (index === -1) {
127
+ return;
128
+ }
129
+
130
+ dataForm.formModels.splice(index, 1);
131
+
132
+ disposable.dispose();
133
+ });
134
+ },
135
+ { immediate: true }
136
+ );
137
+ });
138
+
139
+ return () => {
140
+ let children: any = slots.default?.();
141
+
142
+ const detailColumns = unref(columns).filter(
143
+ (column) => column.componentInfo === "MKFormDetail"
144
+ );
145
+
146
+ if (!children) {
147
+ children = unref(columns)
148
+ .filter(
149
+ (column) => !detailColumns.find((item) => item.name === column.name)
150
+ )
151
+ .map((column) => {
152
+ if (!column.name) {
153
+ return null;
154
+ }
155
+
156
+ return (
157
+ slots[`col-${column.name}`]?.() || (
158
+ <MKDataFormItem
159
+ key={column.name}
160
+ name={column.name}
161
+ v-slots={{ default: slots[`col-${column.name}-content`] }}
162
+ />
163
+ )
164
+ );
165
+ });
166
+
167
+ children.push(
168
+ detailColumns.map((column) => {
169
+ if (!column.name) {
170
+ return null;
171
+ }
172
+
173
+ return (
174
+ <Fragment>
175
+ <ElDivider contentPosition="left">{column.label}</ElDivider>
176
+ <MKDataFormItem
177
+ label=""
178
+ labelWidth="0px"
179
+ key={column.name}
180
+ name={column.name}
181
+ />
182
+ </Fragment>
183
+ );
184
+ })
185
+ );
186
+ }
187
+
188
+ if (!unref(data)) {
189
+ return null;
190
+ }
191
+
192
+ return (
193
+ <ElForm
194
+ {...props}
195
+ ref={formEl}
196
+ model={unref(data)}
197
+ rules={unref(rules)}
198
+ disabled={unref(disabled)}
199
+ labelWidth={unref(labelWidth)}
200
+ >
201
+ {children}
202
+ </ElForm>
203
+ );
204
+ };
205
+ },
206
+ });
@@ -0,0 +1,6 @@
1
+ import { withInstall } from "@maketribe/utils";
2
+ import Form from "./form";
3
+
4
+ export const MKForm = withInstall(Form);
5
+
6
+ export default MKForm;
@@ -0,0 +1,17 @@
1
+ import { ExtractPropTypes } from "vue";
2
+ import { FormItemRule, formProps } from "element-plus";
3
+
4
+ import { buildProps } from "@maketribe/utils";
5
+ import { DataForm } from "@maketribe/dm";
6
+
7
+ export const formViewProps = buildProps({
8
+ rules: { type: Object },
9
+ labelWidth: { type: String },
10
+ dataForm: { type: DataForm<any>, required: true },
11
+ } as const);
12
+
13
+ export type FormViewProps = ExtractPropTypes<typeof formViewProps>;
14
+
15
+ export const formViewEmits = {};
16
+
17
+ export const FormViewEmits = typeof formViewEmits;
@@ -0,0 +1,68 @@
1
+ import { computed, defineComponent, unref } from "vue";
2
+ import { ElButton, ElCard, ElScrollbar } from "element-plus";
3
+ import { formViewProps } from "./form-view-options";
4
+ import { MKError, Messager } from "@maketribe/dm";
5
+ import { I18n } from "@maketribe/locale";
6
+ import MKForm from "../form";
7
+
8
+ export default defineComponent({
9
+ name: "MKFormView",
10
+ props: formViewProps,
11
+ setup(props, { slots }) {
12
+ const dataForm = computed(() => props.dataForm);
13
+
14
+ const handleSave = async () => {
15
+ try {
16
+ if (!(await unref(dataForm)?.validate())) {
17
+ return;
18
+ }
19
+
20
+ const result = await unref(dataForm)!.submit();
21
+
22
+ if (result.data.code !== 200) {
23
+ Messager.instance.error({ message: result.data.msg });
24
+ return;
25
+ }
26
+
27
+ Messager.instance.success({ message: "保存成功" });
28
+ } catch (e) {
29
+ if (e instanceof MKError) {
30
+ Messager.instance.error({ message: e.message });
31
+ }
32
+ }
33
+ };
34
+
35
+ const handleCancel = () => {
36
+ unref(dataForm).cancel();
37
+ };
38
+
39
+ return () => {
40
+ return (
41
+ <ElCard class="mk-form-view" shadow="never">
42
+ <div class="mk-form-view__main">
43
+ <ElScrollbar>
44
+ <MKForm
45
+ rules={props.rules}
46
+ labelWidth={props.labelWidth}
47
+ dataForm={props.dataForm}
48
+ v-slots={slots}
49
+ />
50
+ </ElScrollbar>
51
+ </div>
52
+ <div class="mk-form-view__footer">
53
+ <ElButton
54
+ type="primary"
55
+ onClick={handleSave}
56
+ loading={unref(unref(dataForm).loading)}
57
+ >
58
+ {I18n.instance.translate("mk.dataForm.saveButton")}
59
+ </ElButton>
60
+ <ElButton onClick={handleCancel}>
61
+ {I18n.instance.translate("mk.dataForm.cancelButton")}
62
+ </ElButton>
63
+ </div>
64
+ </ElCard>
65
+ );
66
+ };
67
+ },
68
+ });
@@ -0,0 +1,6 @@
1
+ import { withInstall } from "@maketribe/utils";
2
+ import FormView from "./form-view";
3
+
4
+ export const MKFormView = withInstall(FormView);
5
+
6
+ export default MKFormView;
@@ -0,0 +1,2 @@
1
+ export * from "./form";
2
+ export * from "./form-view";
@@ -0,0 +1,20 @@
1
+ import { ExtractPropTypes } from "vue";
2
+ import { DataForm } from "@maketribe/dm";
3
+ import { buildProps } from "@maketribe/utils";
4
+
5
+ import { dataFormProps } from "../data-form";
6
+
7
+ export const dataFormPageProps = buildProps({
8
+ ...dataFormProps,
9
+ dataForm: { type: DataForm<any> },
10
+ } as const);
11
+
12
+ export type DataFormPageProps = ExtractPropTypes<typeof dataFormPageProps>;
13
+
14
+ export const dataFormPageEmits = {
15
+ cancel: () => true,
16
+ error: (e: any) => e instanceof Error,
17
+ submitted: (response: any) => !!response,
18
+ };
19
+
20
+ export type DataFormPageEmits = typeof dataFormPageEmits;