@maketribe/ms-app 3.0.30 → 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.
- package/package.json +39 -42
- package/src/components/button/button-options.ts +22 -0
- package/src/components/button/button.tsx +37 -0
- package/src/components/button/index.ts +7 -0
- package/src/components/column-components/column-action/column-action-options.ts +11 -0
- package/src/components/column-components/column-action/column-action.tsx +36 -0
- package/src/components/column-components/column-action/index.ts +4 -0
- package/src/components/column-components/column-date/column-date-options.ts +12 -0
- package/src/components/column-components/column-date/column-date.tsx +47 -0
- package/src/components/column-components/column-date/index.ts +6 -0
- package/src/components/column-components/column-image/column-image-options.ts +9 -0
- package/src/components/column-components/column-image/column-image.tsx +20 -0
- package/src/components/column-components/column-image/index.ts +4 -0
- package/src/components/column-components/column-json/column-json-options.ts +13 -0
- package/src/components/column-components/column-json/column-json.tsx +41 -0
- package/src/components/column-components/column-json/index.ts +8 -0
- package/src/components/column-components/column-link/column-link-options.ts +34 -0
- package/src/components/column-components/column-link/column-link.tsx +27 -0
- package/src/components/column-components/column-link/index.ts +7 -0
- package/src/components/column-components/column-object-mapping-text/column-object-mapping-text-options.ts +12 -0
- package/src/components/column-components/column-object-mapping-text/column-object-mapping-text.tsx +22 -0
- package/src/components/column-components/column-object-mapping-text/index.ts +6 -0
- package/src/components/column-components/column-select/column-select-header-options.ts +8 -0
- package/src/components/column-components/column-select/column-select-header.tsx +57 -0
- package/src/components/column-components/column-select/column-select-options.ts +9 -0
- package/src/components/column-components/column-select/column-select.tsx +74 -0
- package/src/components/column-components/column-select/index.ts +5 -0
- package/src/components/column-components/column-switch/column-switch-options.ts +16 -0
- package/src/components/column-components/column-switch/column-switch.tsx +37 -0
- package/src/components/column-components/column-switch/index.ts +6 -0
- package/src/components/column-components/column-tag/column-tag-options.ts +42 -0
- package/src/components/column-components/column-tag/column-tag.tsx +59 -0
- package/src/components/column-components/column-tag/index.ts +6 -0
- package/src/components/column-components/column-text/column-text-options.ts +10 -0
- package/src/components/column-components/column-text/column-text.tsx +18 -0
- package/src/components/column-components/column-text/index.ts +6 -0
- package/src/components/column-components/index.ts +10 -0
- package/src/components/condition-components/condition-date/condition-date-options.ts +21 -0
- package/src/components/condition-components/condition-date/condition-date.tsx +68 -0
- package/src/components/condition-components/condition-date/index.ts +7 -0
- package/src/components/condition-components/condition-input/condition-input-options.ts +10 -0
- package/src/components/condition-components/condition-input/condition-input.tsx +41 -0
- package/src/components/condition-components/condition-input/index.ts +7 -0
- package/src/components/condition-components/condition-number/condition-number-options.ts +22 -0
- package/src/components/condition-components/condition-number/condition-number.tsx +74 -0
- package/src/components/condition-components/condition-number/index.ts +7 -0
- package/src/components/condition-components/condition-select/condition-select-options.ts +31 -0
- package/src/components/condition-components/condition-select/condition-select.tsx +56 -0
- package/src/components/condition-components/condition-select/index.ts +7 -0
- package/src/components/condition-components/index.ts +4 -0
- package/src/components/config-provider/config-provider-options.ts +24 -0
- package/src/components/config-provider/config-provider.tsx +21 -0
- package/src/components/config-provider/constants.ts +8 -0
- package/src/components/config-provider/index.ts +9 -0
- package/src/components/config-provider/use-global-config.ts +70 -0
- package/src/components/data-model/data-filter-form/composables/index.ts +1 -0
- package/src/components/data-model/data-filter-form/composables/use-condition.ts +68 -0
- package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item-options.ts +11 -0
- package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.tsx +183 -0
- package/src/components/data-model/data-filter-form/data-filter-form-item/index.ts +7 -0
- package/src/components/data-model/data-filter-form/data-filter-form-options.ts +15 -0
- package/src/components/data-model/data-filter-form/data-filter-form.tsx +103 -0
- package/src/components/data-model/data-filter-form/index.ts +13 -0
- package/src/components/data-model/data-filter-form/operator-options.ts +48 -0
- package/src/components/data-model/data-filter-form/token.ts +30 -0
- package/src/components/data-model/data-filter-popover/data-filter-popover-options.ts +6 -0
- package/src/components/data-model/data-filter-popover/data-filter-popover.tsx +52 -0
- package/src/components/data-model/data-filter-popover/index.ts +8 -0
- package/src/components/data-model/data-form/composables/index.ts +1 -0
- package/src/components/data-model/data-form/composables/use-form-item.ts +40 -0
- package/src/components/data-model/data-form/data-form-item/data-form-item-options.ts +11 -0
- package/src/components/data-model/data-form/data-form-item/data-form-item.tsx +140 -0
- package/src/components/data-model/data-form/data-form-item/index.ts +6 -0
- package/src/components/data-model/data-form/data-form-options.ts +43 -0
- package/src/components/data-model/data-form/data-form.tsx +113 -0
- package/src/components/data-model/data-form/index.ts +13 -0
- package/src/components/data-model/data-form/token.ts +16 -0
- package/src/components/data-model/data-form/views/form/form-options.ts +16 -0
- package/src/components/data-model/data-form/views/form/form.tsx +206 -0
- package/src/components/data-model/data-form/views/form/index.ts +6 -0
- package/src/components/data-model/data-form/views/form-view/form-view-options.ts +17 -0
- package/src/components/data-model/data-form/views/form-view/form-view.tsx +68 -0
- package/src/components/data-model/data-form/views/form-view/index.ts +6 -0
- package/src/components/data-model/data-form/views/index.ts +2 -0
- package/src/components/data-model/data-form-page/data-form-page-options.ts +20 -0
- package/src/components/data-model/data-form-page/data-form-page.tsx +57 -0
- package/src/components/data-model/data-form-page/index.ts +7 -0
- package/src/components/data-model/data-table/composables/index.ts +1 -0
- package/src/components/data-model/data-table/composables/use-column.ts +23 -0
- package/src/components/data-model/data-table/data-table-column/data-table-column-options.ts +11 -0
- package/src/components/data-model/data-table/data-table-column/data-table-column.tsx +18 -0
- package/src/components/data-model/data-table/data-table-column/index.ts +7 -0
- package/src/components/data-model/data-table/data-table-column-component/data-table-column-component-options.ts +13 -0
- package/src/components/data-model/data-table/data-table-column-component/data-table-column-component.tsx +38 -0
- package/src/components/data-model/data-table/data-table-column-component/index.ts +7 -0
- package/src/components/data-model/data-table/data-table-options.ts +24 -0
- package/src/components/data-model/data-table/data-table.tsx +102 -0
- package/src/components/data-model/data-table/index.ts +17 -0
- package/src/components/data-model/data-table/token.ts +10 -0
- package/src/components/data-model/data-table/views/index.ts +5 -0
- package/src/components/data-model/data-table/views/table/index.ts +8 -0
- package/src/components/data-model/data-table/views/table/table-options.ts +12 -0
- package/src/components/data-model/data-table/views/table/table.tsx +98 -0
- package/src/components/data-model/data-table/views/table-tree/index.ts +8 -0
- package/src/components/data-model/data-table/views/table-tree/table-tree-options.ts +12 -0
- package/src/components/data-model/data-table/views/table-tree/table-tree.tsx +104 -0
- package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/classify-search-item-options.ts +34 -0
- package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/classify-search-item.tsx +97 -0
- package/src/components/data-model/data-table/views/table-view/classify-search/classify-search-item/index.ts +5 -0
- package/src/components/data-model/data-table/views/table-view/classify-search/classify-search.tsx +40 -0
- package/src/components/data-model/data-table/views/table-view/classify-search/index.ts +7 -0
- package/src/components/data-model/data-table/views/table-view/index.ts +8 -0
- package/src/components/data-model/data-table/views/table-view/table-view-options.ts +13 -0
- package/src/components/data-model/data-table/views/table-view/table-view.tsx +126 -0
- package/src/components/data-model/data-table/views/tree/index.ts +8 -0
- package/src/components/data-model/data-table/views/tree/tree-options.ts +14 -0
- package/src/components/data-model/data-table/views/tree/tree.tsx +131 -0
- package/src/components/data-model/data-table/views/tree-view/index.ts +8 -0
- package/src/components/data-model/data-table/views/tree-view/tree-view-options.ts +16 -0
- package/src/components/data-model/data-table/views/tree-view/tree-view.tsx +81 -0
- package/src/components/data-model/data-table-page/data-table-page-options.ts +11 -0
- package/src/components/data-model/data-table-page/data-table-page.tsx +26 -0
- package/src/components/data-model/data-table-page/index.ts +6 -0
- package/src/components/data-model/data-table-pagination/data-table-pagination-options.ts +14 -0
- package/src/components/data-model/data-table-pagination/data-table-pagination.tsx +22 -0
- package/src/components/data-model/data-table-pagination/index.ts +7 -0
- package/src/components/data-model/filter-panel/composables/index.ts +1 -0
- package/src/components/data-model/filter-panel/composables/use-condition.ts +66 -0
- package/src/components/data-model/filter-panel/filter-panel-item/filter-panel-item-options.ts +11 -0
- package/src/components/data-model/filter-panel/filter-panel-item/filter-panel-item.tsx +187 -0
- package/src/components/data-model/filter-panel/filter-panel-item/index.ts +7 -0
- package/src/components/data-model/filter-panel/filter-panel-options.ts +15 -0
- package/src/components/data-model/filter-panel/filter-panel.tsx +102 -0
- package/src/components/data-model/filter-panel/index.ts +11 -0
- package/src/components/data-model/filter-panel/operator-options.ts +48 -0
- package/src/components/data-model/filter-panel/token.ts +17 -0
- package/src/components/data-model/index.ts +5 -0
- package/src/components/data-select/data-select-options.ts +43 -0
- package/src/components/data-select/data-select.tsx +87 -0
- package/src/components/data-select/index.ts +7 -0
- package/src/components/data-table-select/data-table-select-options.ts +43 -0
- package/src/components/data-table-select/data-table-select.tsx +190 -0
- package/src/components/data-table-select/index.ts +6 -0
- package/src/components/data-table-select-dialog/data-table-select-dialog-options.ts +33 -0
- package/src/components/data-table-select-dialog/data-table-select-dialog.tsx +154 -0
- package/src/components/data-table-select-dialog/index.ts +7 -0
- package/src/components/file-view/file-view-options.ts +8 -0
- package/src/components/file-view/file-view.tsx +40 -0
- package/src/components/file-view/index.ts +7 -0
- package/src/components/form-components/form-data-select/form-data-select-options.ts +23 -0
- package/src/components/form-components/form-data-select/form-data-select.tsx +28 -0
- package/src/components/form-components/form-data-select/index.ts +7 -0
- package/src/components/form-components/form-data-table-select/form-data-table-select-options.ts +19 -0
- package/src/components/form-components/form-data-table-select/form-data-table-select.tsx +32 -0
- package/src/components/form-components/form-data-table-select/index.ts +7 -0
- package/src/components/form-components/form-date-picker/form-date-picker-options.ts +18 -0
- package/src/components/form-components/form-date-picker/form-date-picker.tsx +49 -0
- package/src/components/form-components/form-date-picker/index.ts +8 -0
- package/src/components/form-components/form-detail/form-detail-options.ts +15 -0
- package/src/components/form-components/form-detail/form-detail.tsx +112 -0
- package/src/components/form-components/form-detail/index.ts +7 -0
- package/src/components/form-components/form-detail-select/form-detail-select-options.ts +39 -0
- package/src/components/form-components/form-detail-select/form-detail-select.tsx +68 -0
- package/src/components/form-components/form-detail-select/index.ts +5 -0
- package/src/components/form-components/form-icon-select/form-icon-select-options.ts +9 -0
- package/src/components/form-components/form-icon-select/form-icon-select.tsx +71 -0
- package/src/components/form-components/form-icon-select/index.ts +5 -0
- package/src/components/form-components/form-image-upload/form-image-upload-options.ts +11 -0
- package/src/components/form-components/form-image-upload/form-image-upload.tsx +22 -0
- package/src/components/form-components/form-image-upload/index.ts +5 -0
- package/src/components/form-components/form-radio-box/form-radio-box-options.ts +32 -0
- package/src/components/form-components/form-radio-box/form-radio-box.tsx +83 -0
- package/src/components/form-components/form-radio-box/index.ts +7 -0
- package/src/components/form-components/form-rich-text-editor/form-rich-text-editor-options.ts +6 -0
- package/src/components/form-components/form-rich-text-editor/form-rich-text-editor.tsx +22 -0
- package/src/components/form-components/form-rich-text-editor/index.ts +7 -0
- package/src/components/form-components/index.ts +9 -0
- package/src/components/image-select/image-select-option.ts +11 -0
- package/src/components/image-select/image-select.tsx +44 -0
- package/src/components/image-select/index.ts +6 -0
- package/src/components/image-view/image-view-options.ts +14 -0
- package/src/components/image-view/image-view.tsx +30 -0
- package/src/components/image-view/index.ts +7 -0
- package/src/components/index.ts +23 -0
- package/src/components/json-editor/index.ts +8 -0
- package/src/components/json-editor/json-editor-options.ts +21 -0
- package/src/components/json-editor/json-editor.tsx +28 -0
- package/src/components/markdown-editor/index.ts +10 -0
- package/src/components/markdown-editor/markdown-editor-options.ts +17 -0
- package/src/components/markdown-editor/markdown-editor.tsx +136 -0
- package/src/components/material-list/index.ts +7 -0
- package/src/components/material-list/material-group-form-popover.vue +78 -0
- package/src/components/material-list/material-group.vue +145 -0
- package/src/components/material-list/material-item.vue +26 -0
- package/src/components/material-list/material-list-options.ts +24 -0
- package/src/components/material-list/material-list.vue +153 -0
- package/src/components/material-select/index.ts +17 -0
- package/src/components/material-select/material-select-api.ts +55 -0
- package/src/components/material-select/material-select-options.ts +22 -0
- package/src/components/material-select/material-select-type.ts +21 -0
- package/src/components/material-select/material-select.tsx +106 -0
- package/src/components/pagination/index.ts +7 -0
- package/src/components/pagination/pagination-options.tsx +30 -0
- package/src/components/pagination/pagination.tsx +41 -0
- package/src/components/rich-text-editor/index.ts +10 -0
- package/src/components/rich-text-editor/langs/zh-Hans.js +1 -0
- package/src/components/rich-text-editor/rich-text-editor-options.ts +21 -0
- package/src/components/rich-text-editor/rich-text-editor.tsx +111 -0
- package/src/components/role-permission-config/index.ts +7 -0
- package/src/components/role-permission-config/role-permission-config-options.ts +20 -0
- package/src/components/role-permission-config/role-permission-config.tsx +269 -0
- package/src/components/svg-icon/index.ts +5 -0
- package/src/components/svg-icon/svg-icon-options.ts +21 -0
- package/src/components/svg-icon/svg-icon.tsx +48 -0
- package/src/components/system-provider/index.ts +5 -0
- package/src/components/system-provider/system-provider.tsx +95 -0
- package/src/components/upload-file/context/MaterialUploadContext.ts +33 -0
- package/src/components/upload-file/context/UploadContext.ts +21 -0
- package/src/components/upload-file/context/WebFileUploadContext.ts +77 -0
- package/src/components/upload-file/context/index.ts +7 -0
- package/src/components/upload-file/context/material-upload-context-options.ts +13 -0
- package/src/components/upload-file/context/material-upload-context.tsx +34 -0
- package/src/components/upload-file/context/web-file-upload-context-options.ts +16 -0
- package/src/components/upload-file/context/web-file-upload-context.tsx +37 -0
- package/src/components/upload-file/index.ts +11 -0
- package/src/components/upload-file/ui/index.ts +1 -0
- package/src/components/upload-file/ui/upload-image/index.ts +7 -0
- package/src/components/upload-file/ui/upload-image/upload-image-options.ts +25 -0
- package/src/components/upload-file/ui/upload-image/upload-image.tsx +337 -0
- package/src/components/upload-file/upload-file-options.ts +22 -0
- package/src/components/upload-file/upload-file.tsx +69 -0
- package/src/components/verify-dialog/index.ts +5 -0
- package/src/components/verify-dialog/verify-dialog-option.ts +24 -0
- package/src/components/verify-dialog/verify-dialog.tsx +179 -0
- package/src/components/video-view/index.ts +7 -0
- package/src/components/video-view/video-view-options.ts +10 -0
- package/src/components/video-view/video-view.tsx +115 -0
- package/src/composables/create-data-form.ts +6 -0
- package/src/composables/create-data-table.ts +8 -0
- package/src/composables/index.ts +17 -0
- package/src/composables/on-tab-before-close.ts +8 -0
- package/src/composables/on-tab-before-switch.ts +8 -0
- package/src/composables/on-tab-refresh.ts +8 -0
- package/src/composables/use-column-component.ts +184 -0
- package/src/composables/use-current-tab.ts +4 -0
- package/src/composables/use-http-request.ts +5 -0
- package/src/composables/use-i18n.ts +7 -0
- package/src/composables/use-ms-app-client.ts +10 -0
- package/src/composables/use-user-info.ts +4 -0
- package/src/constants/index.ts +6 -0
- package/src/constants/log.ts +5 -0
- package/src/constants/menu.ts +5 -0
- package/src/constants/pattern.ts +4 -0
- package/src/constants/region.ts +6 -0
- package/src/constants/route.ts +4 -0
- package/src/constants/token.ts +5 -0
- package/src/core/DataModelDefines.ts +72 -0
- package/src/core/MSAppClient.ts +260 -0
- package/src/core/PageManager.ts +169 -0
- package/src/core/PermissionPointManager.ts +26 -0
- package/src/core/Router.ts +150 -0
- package/src/core/UserInfo.ts +66 -0
- package/src/core/UserSession.ts +215 -0
- package/src/core/component/ConfigComponents.ts +32 -0
- package/src/core/component/DataFilterComponents.ts +40 -0
- package/src/core/component/DataFormComponents.ts +93 -0
- package/src/core/component/DataTableComponents.ts +91 -0
- package/src/core/component/MaterialComponents.ts +32 -0
- package/src/core/component/index.ts +5 -0
- package/src/core/index.ts +11 -0
- package/src/core/menu/Menu.ts +143 -0
- package/src/core/menu/MenuNode.ts +53 -0
- package/src/core/menu/index.ts +2 -0
- package/src/core/resolver/ITypeResolver.ts +5 -0
- package/src/core/tabs/Tab.ts +59 -0
- package/src/core/tabs/Tabs.ts +187 -0
- package/src/core/tabs/index.ts +2 -0
- package/src/dataview/config/ConfigForm.ts +142 -0
- package/src/dataview/config/ConfigTable.ts +72 -0
- package/src/dataview/config/index.ts +2 -0
- package/src/dataview/deny-ip-access-list/DenyIPAccessListForm.ts +33 -0
- package/src/dataview/deny-ip-access-list/DenyIPAccessListTable.ts +84 -0
- package/src/dataview/deny-ip-access-list/index.ts +2 -0
- package/src/dataview/department/DepartmentForm.ts +41 -0
- package/src/dataview/department/DepartmentTable.ts +64 -0
- package/src/dataview/department/DepartmentTree.ts +47 -0
- package/src/dataview/department/index.ts +3 -0
- package/src/dataview/index.ts +11 -0
- package/src/dataview/ip-white-list/IPWhitelistForm.ts +38 -0
- package/src/dataview/ip-white-list/IPWhitelistTable.ts +81 -0
- package/src/dataview/ip-white-list/index.ts +2 -0
- package/src/dataview/log/index.ts +4 -0
- package/src/dataview/log/local-log/LocalLogTree.ts +77 -0
- package/src/dataview/log/local-log/index.ts +1 -0
- package/src/dataview/log/login-log/LoginLogTable.ts +55 -0
- package/src/dataview/log/login-log/index.ts +1 -0
- package/src/dataview/log/operate-log/OperateLogTable.ts +20 -0
- package/src/dataview/log/operate-log/index.ts +1 -0
- package/src/dataview/log/request-log/RequestLogTable.ts +82 -0
- package/src/dataview/log/request-log/index.ts +1 -0
- package/src/dataview/material/MaterialForm.ts +49 -0
- package/src/dataview/material/MaterialMan.ts +203 -0
- package/src/dataview/material/MaterialTable.ts +125 -0
- package/src/dataview/material/index.ts +4 -0
- package/src/dataview/material/material-group/MaterialGroupForm.ts +27 -0
- package/src/dataview/material/material-group/MaterialGroupTable.ts +57 -0
- package/src/dataview/material/material-group/MaterialGroupTree.ts +71 -0
- package/src/dataview/material/material-group/index.ts +3 -0
- package/src/dataview/member/MemberForm.ts +124 -0
- package/src/dataview/member/MemberTable.tsx +257 -0
- package/src/dataview/member/index.ts +2 -0
- package/src/dataview/member/member-role/MemberRoleTable.ts +23 -0
- package/src/dataview/menu/MenuForm.ts +192 -0
- package/src/dataview/menu/MenuTable.ts +40 -0
- package/src/dataview/menu/MenuTree.ts +112 -0
- package/src/dataview/menu/index.ts +4 -0
- package/src/dataview/menu/permission-point/PermissionPointDefineForm.ts +30 -0
- package/src/dataview/menu/permission-point/PermissionPointDefineTable.ts +32 -0
- package/src/dataview/menu/permission-point/index.ts +2 -0
- package/src/dataview/region/RegionForm.ts +52 -0
- package/src/dataview/region/RegionTable.ts +64 -0
- package/src/dataview/region/index.ts +2 -0
- package/src/dataview/role/RoleForm.ts +34 -0
- package/src/dataview/role/RolePermissionConfigTable.ts +476 -0
- package/src/dataview/role/RoleTable.ts +70 -0
- package/src/dataview/role/index.ts +5 -0
- package/src/dataview/role/role-permission-point/RolePermissionPointTable.ts +29 -0
- package/src/dataview/role/role-permission-point/index.ts +1 -0
- package/src/dataview/role/role-route/RoleRouteTable.ts +30 -0
- package/src/dataview/role/role-route/index.ts +1 -0
- package/src/dataview/route/RouteForm.ts +94 -0
- package/src/dataview/route/RouteTable.ts +73 -0
- package/src/dataview/route/index.ts +2 -0
- package/src/define-data-form.ts +12 -0
- package/src/define-data-table.ts +12 -0
- package/src/define-data-tree.ts +12 -0
- package/src/index.ts +19 -0
- package/src/init-application.ts +83 -0
- package/src/installer.ts +73 -0
- package/src/layouts/components/bar/index.tsx +102 -0
- package/src/layouts/components/dialogs/dialogs.tsx +100 -0
- package/src/layouts/components/dialogs/index.ts +5 -0
- package/src/layouts/components/header/index.tsx +18 -0
- package/src/layouts/components/header/tools.tsx +55 -0
- package/src/layouts/components/index.ts +3 -0
- package/src/layouts/components/lock/index.ts +5 -0
- package/src/layouts/components/lock/lock.tsx +92 -0
- package/src/layouts/components/menu/index.tsx +61 -0
- package/src/layouts/components/menu/menu-item.tsx +63 -0
- package/src/layouts/container/default.tsx +85 -0
- package/src/layouts/index.ts +6 -0
- package/src/layouts/layout.tsx +11 -0
- package/src/message-impl/DialogerImpl.ts +84 -0
- package/src/message-impl/MessagerImpl.ts +17 -0
- package/src/message-impl/NotificationerImpl.ts +17 -0
- package/src/message-impl/index.ts +3 -0
- package/src/page/index/404.vue +3 -0
- package/src/page/index/dv/default/add.vue +50 -0
- package/src/page/index/dv/default/edit.vue +56 -0
- package/src/page/index/dv/default/single/list/dialog.vue +155 -0
- package/src/page/index/dv/default/single/list/normal.vue +128 -0
- package/src/page/index/dv/default/single/table-tree/dialog.vue +60 -0
- package/src/page/index/dv/default/single/tree/dialog.vue +174 -0
- package/src/page/index/dv/default/table.vue +52 -0
- package/src/page/index/dv/local-log/index.vue +98 -0
- package/src/page/index/dv/ms-member/index.vue +33 -0
- package/src/page/index/dv/ms-role/index.vue +32 -0
- package/src/page/index/material/index.vue +16 -0
- package/src/page/index.vue +9 -0
- package/src/page/login/index.vue +196 -0
- package/src/page/signup/index.vue +157 -0
- package/src/router-middleware/auth.ts +31 -0
- package/src/router-middleware/index.ts +1 -0
- package/src/tokens/index.ts +1 -0
- package/src/tokens/ms-app-client.ts +10 -0
- package/src/utils.ts +233 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createRouter,
|
|
3
|
+
createWebHashHistory,
|
|
4
|
+
Router as VueRouter,
|
|
5
|
+
} from "vue-router";
|
|
6
|
+
import {
|
|
7
|
+
DataViewRequest,
|
|
8
|
+
DVQueryable,
|
|
9
|
+
HttpRequest,
|
|
10
|
+
R,
|
|
11
|
+
WebHttpRequest,
|
|
12
|
+
} from "@maketribe/request";
|
|
13
|
+
import { IComponents, DataModel, Components } from "@maketribe/dm";
|
|
14
|
+
import { I18n } from "@maketribe/locale";
|
|
15
|
+
|
|
16
|
+
import { Event, md5 } from "@maketribe/utils";
|
|
17
|
+
import { UserSession } from "./UserSession";
|
|
18
|
+
import { authBeforeEach } from "../router-middleware";
|
|
19
|
+
import { PageManager } from "./PageManager";
|
|
20
|
+
import { ACCESS_TOKEN_HEADER, X_ACCESS_TOKEN_HEADER } from "../constants";
|
|
21
|
+
|
|
22
|
+
export type LoginResult = {
|
|
23
|
+
account: string;
|
|
24
|
+
email: string;
|
|
25
|
+
nickName: string;
|
|
26
|
+
avatarPath: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export interface MSAppClientOptions {
|
|
30
|
+
pageManager?: PageManager;
|
|
31
|
+
projectName: string;
|
|
32
|
+
httpRequest?: HttpRequest;
|
|
33
|
+
origin: string;
|
|
34
|
+
appID: string;
|
|
35
|
+
logo?: string;
|
|
36
|
+
locale?: string;
|
|
37
|
+
vueRouter?: VueRouter;
|
|
38
|
+
dataTableComponents?: IComponents;
|
|
39
|
+
dataFormComponents?: IComponents;
|
|
40
|
+
dataFilterComponents?: IComponents;
|
|
41
|
+
whereFilterComponents?: IComponents;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export class MSAppClient {
|
|
45
|
+
static instance: MSAppClient | null = null;
|
|
46
|
+
|
|
47
|
+
origin: string = "";
|
|
48
|
+
|
|
49
|
+
private _options: Required<MSAppClientOptions>;
|
|
50
|
+
|
|
51
|
+
projectName: string;
|
|
52
|
+
|
|
53
|
+
logo: string;
|
|
54
|
+
|
|
55
|
+
appID: string;
|
|
56
|
+
|
|
57
|
+
userSession: UserSession | null = null;
|
|
58
|
+
|
|
59
|
+
httpRequest: HttpRequest;
|
|
60
|
+
|
|
61
|
+
ready: boolean = false;
|
|
62
|
+
|
|
63
|
+
initd: boolean = false;
|
|
64
|
+
|
|
65
|
+
pageManager: PageManager;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated
|
|
69
|
+
* @description 使用 MSAppClient.instance.userSession.userInfo
|
|
70
|
+
*/
|
|
71
|
+
get userInfo() {
|
|
72
|
+
return this.userSession?.userInfo ?? null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
i18n: I18n;
|
|
76
|
+
|
|
77
|
+
dataTableComponents: IComponents;
|
|
78
|
+
dataFormComponents: IComponents;
|
|
79
|
+
dataFilterComponents: IComponents;
|
|
80
|
+
whereFilterComponents: IComponents;
|
|
81
|
+
|
|
82
|
+
vueRouter: VueRouter;
|
|
83
|
+
|
|
84
|
+
beforeInitUserSessionEvent: Event<{ userSession: UserSession }> = new Event();
|
|
85
|
+
|
|
86
|
+
userSessionChangeEvent: Event<{ userSession: UserSession | null }> =
|
|
87
|
+
new Event();
|
|
88
|
+
|
|
89
|
+
constructor(options: MSAppClientOptions) {
|
|
90
|
+
this._options = this._normalizeOptions(options);
|
|
91
|
+
|
|
92
|
+
this.appID = this._options.appID;
|
|
93
|
+
|
|
94
|
+
this.logo = this._options.logo;
|
|
95
|
+
|
|
96
|
+
this.projectName = options.projectName;
|
|
97
|
+
|
|
98
|
+
this.i18n = I18n.instance;
|
|
99
|
+
this.i18n.setCurrentLanguageName(this._options.locale);
|
|
100
|
+
|
|
101
|
+
this.dataTableComponents = this._options.dataTableComponents;
|
|
102
|
+
this.dataFormComponents = this._options.dataFormComponents;
|
|
103
|
+
this.dataFilterComponents = this._options.dataFilterComponents;
|
|
104
|
+
this.whereFilterComponents = this._options.whereFilterComponents;
|
|
105
|
+
|
|
106
|
+
this.vueRouter = this._options.vueRouter;
|
|
107
|
+
|
|
108
|
+
this.pageManager = this._options.pageManager;
|
|
109
|
+
|
|
110
|
+
HttpRequest.appID = this.appID;
|
|
111
|
+
|
|
112
|
+
this.httpRequest = this._options.httpRequest;
|
|
113
|
+
|
|
114
|
+
DataModel.setHttpRequest(this.httpRequest);
|
|
115
|
+
DVQueryable.setDefaultDataViewRequest(
|
|
116
|
+
new DataViewRequest({ httpRequest: this.httpRequest })
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
setUserSession(userSession: UserSession | null) {
|
|
121
|
+
if (this.userSession) {
|
|
122
|
+
this.userSession.dispose();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
this.userSession = userSession;
|
|
126
|
+
|
|
127
|
+
this.userSessionChangeEvent.emit({ userSession });
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
private _normalizeOptions(
|
|
131
|
+
options: MSAppClientOptions
|
|
132
|
+
): Required<MSAppClientOptions> {
|
|
133
|
+
return {
|
|
134
|
+
appID: options.appID,
|
|
135
|
+
projectName: options.projectName,
|
|
136
|
+
httpRequest: options.httpRequest ?? new WebHttpRequest(),
|
|
137
|
+
origin: options.origin,
|
|
138
|
+
logo: options.logo || "",
|
|
139
|
+
locale: options.locale || "zh-cn",
|
|
140
|
+
vueRouter:
|
|
141
|
+
options.vueRouter ??
|
|
142
|
+
createRouter({
|
|
143
|
+
history: createWebHashHistory(),
|
|
144
|
+
routes: [],
|
|
145
|
+
}),
|
|
146
|
+
pageManager: options.pageManager ?? new PageManager(),
|
|
147
|
+
dataTableComponents: options.dataTableComponents ?? new Components(),
|
|
148
|
+
dataFormComponents: options.dataFormComponents ?? new Components(),
|
|
149
|
+
dataFilterComponents: options.dataFilterComponents ?? new Components(),
|
|
150
|
+
whereFilterComponents: options.whereFilterComponents ?? new Components(),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
getI18n() {
|
|
154
|
+
return this.i18n;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
getOptions() {
|
|
158
|
+
return this._options;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
async loadCurrentUserSession(options?: {
|
|
162
|
+
accessToken: string;
|
|
163
|
+
xAccessToken: string;
|
|
164
|
+
}) {
|
|
165
|
+
const userSession = (this.userSession = new UserSession({
|
|
166
|
+
msAppClient: this,
|
|
167
|
+
...options,
|
|
168
|
+
}));
|
|
169
|
+
this.userSession = null;
|
|
170
|
+
|
|
171
|
+
this.beforeInitUserSessionEvent.emit({ userSession });
|
|
172
|
+
const userSessionInitResult = await userSession.init();
|
|
173
|
+
|
|
174
|
+
if (userSessionInitResult?.data.code !== 200) {
|
|
175
|
+
userSession.dispose();
|
|
176
|
+
return userSessionInitResult!;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
this.setUserSession(userSession);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
async init() {
|
|
183
|
+
if (this.initd) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
this.vueRouter.beforeEach(async (to, from, next) => {
|
|
188
|
+
const route = await authBeforeEach(this, to, from);
|
|
189
|
+
|
|
190
|
+
if (route) {
|
|
191
|
+
next(route);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
next();
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
this.pageManager.init();
|
|
199
|
+
this.pageManager.setMSAppCLient(this);
|
|
200
|
+
|
|
201
|
+
this.httpRequest.getInterceptors().response.use((config) => {
|
|
202
|
+
if (config.data.code === 401) {
|
|
203
|
+
this.vueRouter.push({ name: "login" });
|
|
204
|
+
// if (this.userSession) {
|
|
205
|
+
// this.userSession.lock();
|
|
206
|
+
// } else {
|
|
207
|
+
// this.vueRouter.push({ name: "login" });
|
|
208
|
+
// }
|
|
209
|
+
}
|
|
210
|
+
return config;
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
this.initd = true;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
async login(account: string, password: string, code: string) {
|
|
217
|
+
const response = await this.httpRequest.request<R<LoginResult>>({
|
|
218
|
+
url: "/api/ms-login/login",
|
|
219
|
+
method: "POST",
|
|
220
|
+
data: { account, password: md5(`mkbl#${password}`), vCode: code },
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
if (response.data.code === 200) {
|
|
224
|
+
await this.loadCurrentUserSession({
|
|
225
|
+
accessToken: response.headers[ACCESS_TOKEN_HEADER],
|
|
226
|
+
xAccessToken: response.headers[X_ACCESS_TOKEN_HEADER],
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return response;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
formatURL(url: string) {
|
|
234
|
+
return url;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
async modifyPassword(account: string, code: string) {
|
|
238
|
+
type LoginResult = {
|
|
239
|
+
account: string;
|
|
240
|
+
email: string;
|
|
241
|
+
nickName: string;
|
|
242
|
+
avatarPath: string;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
const response = await this.httpRequest.request<R<LoginResult>>({
|
|
246
|
+
url: "/api/ms-login/modify-password",
|
|
247
|
+
method: "POST",
|
|
248
|
+
data: { account, vCode: code },
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
return response;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
async logout() {
|
|
255
|
+
this.userSession?.dispose();
|
|
256
|
+
this.setUserSession(null);
|
|
257
|
+
|
|
258
|
+
return this.httpRequest.get("/api/ms-login/logout");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { RouteRecordRaw } from "vue-router";
|
|
2
|
+
import type { MSAppClient } from "./MSAppClient";
|
|
3
|
+
import { Disposable, Event, createDisposable } from "@maketribe/utils";
|
|
4
|
+
|
|
5
|
+
export class PageManager {
|
|
6
|
+
normalPages: RouteRecordRaw[] = [];
|
|
7
|
+
|
|
8
|
+
extendsPages: RouteRecordRaw[] = [];
|
|
9
|
+
|
|
10
|
+
msAppClient: MSAppClient | null = null;
|
|
11
|
+
|
|
12
|
+
msAppClientChangeEvent: Event<{ msAppClient: MSAppClient | null }> =
|
|
13
|
+
new Event();
|
|
14
|
+
|
|
15
|
+
msAppClientDisposable: Disposable | null = null;
|
|
16
|
+
|
|
17
|
+
setMSAppCLient(msAppClient: MSAppClient | null) {
|
|
18
|
+
this.msAppClientDisposable?.dispose();
|
|
19
|
+
|
|
20
|
+
this.msAppClientDisposable = new Disposable();
|
|
21
|
+
|
|
22
|
+
this.msAppClient = msAppClient;
|
|
23
|
+
|
|
24
|
+
this.msAppClientChangeEvent.emit({ msAppClient });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
addNormalPage(normalPage: RouteRecordRaw) {
|
|
28
|
+
this.normalPages.push(normalPage);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
addExtendsPage(extendsPage: RouteRecordRaw) {
|
|
32
|
+
this.extendsPages.push(extendsPage);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
init() {
|
|
36
|
+
this.addNormalPage({
|
|
37
|
+
name: "mk-ms-layout",
|
|
38
|
+
path: "/",
|
|
39
|
+
component: () => import("../page/index.vue"),
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
this.addNormalPage({
|
|
43
|
+
name: "login",
|
|
44
|
+
path: "/login",
|
|
45
|
+
meta: {
|
|
46
|
+
isAuthorization: false,
|
|
47
|
+
},
|
|
48
|
+
component: () => import("../page/login/index.vue"),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
this.addNormalPage({
|
|
52
|
+
name: "signup",
|
|
53
|
+
path: "/signup",
|
|
54
|
+
meta: {
|
|
55
|
+
isAuthorization: false,
|
|
56
|
+
},
|
|
57
|
+
component: () => import("../page/signup/index.vue"),
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
this.addExtendsPage({
|
|
61
|
+
name: "dv/ms-material/list",
|
|
62
|
+
path: "/material-list",
|
|
63
|
+
component: () => import("../page/index/material/index.vue"),
|
|
64
|
+
meta: { name: "ms-material" },
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
this.addExtendsPage({
|
|
68
|
+
name: "dv/ms-member/single/list/normal",
|
|
69
|
+
path: "/dv/ms-member",
|
|
70
|
+
component: () => import("../page/index/dv/ms-member/index.vue"),
|
|
71
|
+
meta: { name: "ms-member" },
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
this.addExtendsPage({
|
|
75
|
+
name: "dv/ms-role/single/list/dialog",
|
|
76
|
+
path: "/dv/ms-role",
|
|
77
|
+
component: () => import("../page/index/dv/ms-role/index.vue"),
|
|
78
|
+
meta: { name: "ms-role" },
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
this.addExtendsPage({
|
|
82
|
+
name: "dv/local-log/single/tree/dialog",
|
|
83
|
+
path: "/log/local",
|
|
84
|
+
component: () => import("../page/index/dv/local-log/index.vue"),
|
|
85
|
+
meta: { name: "local-log" },
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
this.msAppClientChangeEvent.on(({ msAppClient }) => {
|
|
89
|
+
if (!msAppClient) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const vueRouter = msAppClient.vueRouter;
|
|
94
|
+
const vueRoutes = vueRouter.getRoutes();
|
|
95
|
+
|
|
96
|
+
const addedNormalPageNames: string[] = [];
|
|
97
|
+
|
|
98
|
+
for (const normalPage of this.normalPages) {
|
|
99
|
+
const vueRoute = vueRoutes.find(
|
|
100
|
+
(vueRoute) => vueRoute.name === normalPage.name
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
if (!vueRoute) {
|
|
104
|
+
addedNormalPageNames.push(normalPage.name as string);
|
|
105
|
+
vueRouter.addRoute(normalPage);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this.msAppClientDisposable?.register(
|
|
110
|
+
createDisposable(() => {
|
|
111
|
+
for (const addedNormalPageName of addedNormalPageNames) {
|
|
112
|
+
vueRouter.removeRoute(addedNormalPageName);
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
this.msAppClientDisposable?.register(
|
|
118
|
+
msAppClient.beforeInitUserSessionEvent.on(({ userSession }) => {
|
|
119
|
+
if (!userSession) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
userSession.beforeInitRouterEvent.on(() => {
|
|
124
|
+
const router = userSession.router;
|
|
125
|
+
|
|
126
|
+
const addedExtendsPageNames: string[] = [];
|
|
127
|
+
|
|
128
|
+
for (const extendsPage of this.extendsPages) {
|
|
129
|
+
const routeInfo = router.getRouteByName(
|
|
130
|
+
extendsPage.name as string
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
if (!routeInfo) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const vueRoute = vueRoutes.find(
|
|
138
|
+
(vueRoute) => vueRoute.name === extendsPage.name
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
if (!vueRoute) {
|
|
142
|
+
extendsPage.path = routeInfo.route || extendsPage.path;
|
|
143
|
+
addedExtendsPageNames.push(extendsPage.name as string);
|
|
144
|
+
vueRouter.addRoute("mk-ms-layout", extendsPage);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (!this.extendsPages.find((page) => page.name === "notFound")) {
|
|
149
|
+
this.addExtendsPage({
|
|
150
|
+
name: "notFound",
|
|
151
|
+
// path: ":pathMatch(.*)*",
|
|
152
|
+
path: "",
|
|
153
|
+
component: () => import("../page/index/404.vue"),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
userSession.register(
|
|
158
|
+
createDisposable(() => {
|
|
159
|
+
for (const addedExtendsPageName of addedExtendsPageNames) {
|
|
160
|
+
vueRouter.removeRoute(addedExtendsPageName);
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
);
|
|
164
|
+
});
|
|
165
|
+
})
|
|
166
|
+
);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface PermissionPoint {
|
|
2
|
+
id: number;
|
|
3
|
+
menuId: string;
|
|
4
|
+
key: string;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class PermissionPointManager {
|
|
9
|
+
permissionPoints: PermissionPoint[];
|
|
10
|
+
|
|
11
|
+
constructor() {
|
|
12
|
+
this.permissionPoints = [];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
setPermissionPoints(permissionPoints: PermissionPoint[]) {
|
|
16
|
+
this.permissionPoints = permissionPoints;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
init() {}
|
|
20
|
+
|
|
21
|
+
getPermissionPointsByMenuID(menuID: string): PermissionPoint[] {
|
|
22
|
+
return this.permissionPoints.filter(
|
|
23
|
+
(permissionPoint) => permissionPoint.menuId === menuID
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Disposable, Event, createDisposable } from "@maketribe/utils";
|
|
2
|
+
import { Route } from "../dataview";
|
|
3
|
+
import type { UserSession } from "./UserSession";
|
|
4
|
+
|
|
5
|
+
const NORMALIZE_ROUTE_NAME_REG = /^dv\/([^/]+)\/([^/]+)(\/.+)?$/;
|
|
6
|
+
|
|
7
|
+
export class Router extends Disposable {
|
|
8
|
+
userSession: UserSession;
|
|
9
|
+
|
|
10
|
+
routes: Route[] = [];
|
|
11
|
+
|
|
12
|
+
constructor(userSession: UserSession) {
|
|
13
|
+
super();
|
|
14
|
+
|
|
15
|
+
this.userSession = userSession;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
setRoutes(routes: Route[]) {
|
|
19
|
+
this.routes = routes;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
init() {
|
|
23
|
+
const vueRouter = this.userSession.vueRouter;
|
|
24
|
+
const vueRoutes = vueRouter.getRoutes();
|
|
25
|
+
|
|
26
|
+
// 给有权限访问的页面,注册默认页面
|
|
27
|
+
const defaultPageRoutes = this.routes.filter(
|
|
28
|
+
(route) => !vueRoutes.find((item) => item.name === route.name)
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
for (const defaultPageRoute of defaultPageRoutes) {
|
|
32
|
+
const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);
|
|
33
|
+
|
|
34
|
+
if (match) {
|
|
35
|
+
const name = match[1];
|
|
36
|
+
const action = match[2];
|
|
37
|
+
|
|
38
|
+
switch (action) {
|
|
39
|
+
case "single":
|
|
40
|
+
const [listType, type] = match[3].slice(1).split("/");
|
|
41
|
+
|
|
42
|
+
switch (listType) {
|
|
43
|
+
case "list":
|
|
44
|
+
switch (type) {
|
|
45
|
+
case "normal":
|
|
46
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
47
|
+
name: defaultPageRoute.name,
|
|
48
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
49
|
+
component: () =>
|
|
50
|
+
import(
|
|
51
|
+
"../page/index/dv/default/single/list/normal.vue"
|
|
52
|
+
),
|
|
53
|
+
meta: { name },
|
|
54
|
+
});
|
|
55
|
+
break;
|
|
56
|
+
case "dialog":
|
|
57
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
58
|
+
name: defaultPageRoute.name,
|
|
59
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
60
|
+
component: () =>
|
|
61
|
+
import(
|
|
62
|
+
"../page/index/dv/default/single/list/dialog.vue"
|
|
63
|
+
),
|
|
64
|
+
meta: { name },
|
|
65
|
+
});
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
break;
|
|
70
|
+
case "tree":
|
|
71
|
+
switch (type) {
|
|
72
|
+
case "dialog":
|
|
73
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
74
|
+
name: defaultPageRoute.name,
|
|
75
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
76
|
+
component: () =>
|
|
77
|
+
import(
|
|
78
|
+
"../page/index/dv/default/single/tree/dialog.vue"
|
|
79
|
+
),
|
|
80
|
+
meta: { name },
|
|
81
|
+
});
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case "table-tree":
|
|
86
|
+
switch (type) {
|
|
87
|
+
case "dialog":
|
|
88
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
89
|
+
name: defaultPageRoute.name,
|
|
90
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
91
|
+
component: () =>
|
|
92
|
+
import(
|
|
93
|
+
"../page/index/dv/default/single/table-tree/dialog.vue"
|
|
94
|
+
),
|
|
95
|
+
meta: { name },
|
|
96
|
+
});
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
break;
|
|
102
|
+
case "list":
|
|
103
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
104
|
+
name: defaultPageRoute.name,
|
|
105
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
106
|
+
component: () => import("../page/index/dv/default/table.vue"),
|
|
107
|
+
meta: { name },
|
|
108
|
+
});
|
|
109
|
+
break;
|
|
110
|
+
case "edit":
|
|
111
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
112
|
+
name: defaultPageRoute.name,
|
|
113
|
+
path: defaultPageRoute.route || `/dv/${name}/:id`,
|
|
114
|
+
component: () => import("../page/index/dv/default/edit.vue"),
|
|
115
|
+
meta: { name },
|
|
116
|
+
});
|
|
117
|
+
break;
|
|
118
|
+
case "add":
|
|
119
|
+
vueRouter.addRoute("mk-ms-layout", {
|
|
120
|
+
name: defaultPageRoute.name,
|
|
121
|
+
path: defaultPageRoute.route || `/dv/${name}/add`,
|
|
122
|
+
component: () => import("../page/index/dv/default/add.vue"),
|
|
123
|
+
meta: { name },
|
|
124
|
+
});
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
this.register(
|
|
131
|
+
createDisposable(() => {
|
|
132
|
+
for (const defaultPageRoute of defaultPageRoutes) {
|
|
133
|
+
vueRouter.removeRoute(defaultPageRoute.name);
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
getRouteByName(name: string): Route | null {
|
|
140
|
+
return this.routes.find((route) => route.name === name) ?? null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
getRouteByID(id: string): Route | null {
|
|
144
|
+
return this.routes.find((route) => route.id === id) ?? null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getRoutesByMenuID(menuId: Route["menuId"]): Route[] {
|
|
148
|
+
return this.routes.filter((route) => route.menuId === menuId);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { MSAppClient } from "./MSAppClient";
|
|
2
|
+
import { PermissionPoint } from "./PermissionPointManager";
|
|
3
|
+
import { Role } from "../dataview/role/RoleForm";
|
|
4
|
+
|
|
5
|
+
export interface MemberInfo {
|
|
6
|
+
id: number;
|
|
7
|
+
account: string;
|
|
8
|
+
email: string;
|
|
9
|
+
nickName: string;
|
|
10
|
+
avatarPath: string;
|
|
11
|
+
isSuper: string;
|
|
12
|
+
errorCount: string;
|
|
13
|
+
errorDatetime: string;
|
|
14
|
+
isLock: string;
|
|
15
|
+
unlockDatetime: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class UserInfo {
|
|
19
|
+
id: number;
|
|
20
|
+
account: string;
|
|
21
|
+
email: string;
|
|
22
|
+
nickName: string;
|
|
23
|
+
avatar: string;
|
|
24
|
+
isLocked: boolean;
|
|
25
|
+
isSuper: boolean;
|
|
26
|
+
payload: any;
|
|
27
|
+
|
|
28
|
+
roles: Role[];
|
|
29
|
+
permissionPoints: PermissionPoint[];
|
|
30
|
+
|
|
31
|
+
constructor(
|
|
32
|
+
msAppClient: MSAppClient,
|
|
33
|
+
payload: MemberInfo,
|
|
34
|
+
roles: Role[],
|
|
35
|
+
permissionPoints: PermissionPoint[]
|
|
36
|
+
) {
|
|
37
|
+
this.id = payload.id;
|
|
38
|
+
this.account = payload.account;
|
|
39
|
+
this.email = payload.email;
|
|
40
|
+
this.nickName = payload.nickName;
|
|
41
|
+
this.isLocked = payload.isLock === "1";
|
|
42
|
+
this.isSuper = payload.isSuper === "1";
|
|
43
|
+
this.roles = roles;
|
|
44
|
+
this.permissionPoints = permissionPoints;
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
this.avatar = payload.avatarPath
|
|
48
|
+
? new URL(payload.avatarPath, msAppClient.origin).toString()
|
|
49
|
+
: "";
|
|
50
|
+
} catch (e) {
|
|
51
|
+
this.avatar = "";
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
this.payload = payload;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
hasRole(name: Role["name"]): boolean {
|
|
58
|
+
return !!this.roles.find((role) => role.name === name);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
hasPermissionPoint(key: PermissionPoint["key"]) {
|
|
62
|
+
return !!this.permissionPoints.find(
|
|
63
|
+
(permissionPoint) => permissionPoint.key === key
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|