@maketribe/ms-app 3.2.9 → 3.2.11
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/dist/cjs/components/basic/image-cropper/image-cropper-api.js +3 -1
- package/dist/cjs/components/basic/image-cropper/image-cropper-api.js.map +1 -1
- package/dist/cjs/components/basic/image-cropper/image-cropper-content-options.js +2 -0
- package/dist/cjs/components/basic/image-cropper/image-cropper-content-options.js.map +1 -1
- package/dist/cjs/components/basic/image-cropper/image-cropper-content.js +24 -23
- package/dist/cjs/components/basic/image-cropper/image-cropper-content.js.map +1 -1
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +2 -0
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/cjs/components/business/resource-list/ResourceManager.js +36 -37
- package/dist/cjs/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/cjs/components/business/resource-list/components/resource-item/index.vue.js +10 -0
- package/dist/cjs/components/business/resource-list/components/resource-item/index.vue.js.map +1 -1
- package/dist/cjs/components/business/resource-list/resource-list.vue.js +43 -17
- package/dist/cjs/components/business/resource-list/resource-list.vue.js.map +1 -1
- package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/cjs/components/business/resource-select/resource-select-input.js +50 -0
- package/dist/cjs/components/business/resource-select/resource-select-input.js.map +1 -0
- package/dist/cjs/components/data-model/data-filter-drawer/data-filter-drawer-options.js +20 -0
- package/dist/cjs/components/data-model/data-filter-drawer/data-filter-drawer-options.js.map +1 -0
- package/dist/cjs/components/data-model/data-filter-drawer/data-filter-drawer.js +68 -0
- package/dist/cjs/components/data-model/data-filter-drawer/data-filter-drawer.js.map +1 -0
- package/dist/cjs/components/data-model/data-filter-drawer/index.js +11 -0
- package/dist/cjs/components/data-model/data-filter-drawer/index.js.map +1 -0
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/condition-date-options.js +8 -5
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/condition-date-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/condition-date.js +9 -22
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/condition-date.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/index.js +1 -0
- package/dist/cjs/components/data-model/data-filter-form/components/condition-date/index.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/condition-input-options.js +4 -0
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/condition-input-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/condition-input.js +7 -19
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/condition-input.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/index.js +1 -0
- package/dist/cjs/components/data-model/data-filter-form/components/condition-input/index.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/condition-number-options.js +7 -7
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/condition-number-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/condition-number.js +13 -26
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/condition-number.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/index.js +1 -0
- package/dist/cjs/components/data-model/data-filter-form/components/condition-number/index.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-select/condition-select-options.js +2 -2
- package/dist/cjs/components/data-model/data-filter-form/components/condition-select/condition-select-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-select/condition-select.js +7 -27
- package/dist/cjs/components/data-model/data-filter-form/components/condition-select/condition-select.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/components/condition-select/index.js +1 -1
- package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js +8 -38
- package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +31 -67
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +9 -6
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/index.js +1 -11
- package/dist/cjs/components/data-model/data-filter-form/index.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/operator-options.js +18 -28
- package/dist/cjs/components/data-model/data-filter-form/operator-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/token.js +0 -2
- package/dist/cjs/components/data-model/data-filter-form/token.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js +44 -21
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/cjs/composables/use-column-component.js +3 -3
- package/dist/cjs/composables/use-column-component.js.map +1 -1
- package/dist/cjs/core/component/DataFilterComponents.js +4 -0
- package/dist/cjs/core/component/DataFilterComponents.js.map +1 -1
- package/dist/cjs/core/component/DataFormComponents.js +8 -0
- package/dist/cjs/core/component/DataFormComponents.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/cms/cms-settings.js +43 -0
- package/dist/cjs/modules/cms/cms-settings.js.map +1 -0
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +2 -0
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +3 -0
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +33 -2
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesTable.js +5 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesTable.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js +3 -0
- package/dist/cjs/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js +4 -37
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/cjs/modules/cms/index.js +5 -0
- package/dist/cjs/modules/cms/index.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +3 -1
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +143 -165
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-atlas.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +37 -40
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +63 -59
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +13 -6
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +2 -6
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue.js +4 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue.js.map +1 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js +338 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -0
- package/dist/cjs/modules/ms/components/image-select/image-select-api.js +76 -0
- package/dist/cjs/modules/ms/components/image-select/image-select-api.js.map +1 -0
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +111 -0
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -0
- package/dist/cjs/modules/ms/components/image-select/index.js +7 -0
- package/dist/cjs/modules/ms/components/image-select/index.js.map +1 -0
- package/dist/cjs/modules/ms/components/material-list/material-group-form-popover.js +2 -0
- package/dist/cjs/modules/ms/components/material-list/material-group-form-popover.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-group.js +2 -0
- package/dist/cjs/modules/ms/components/material-list/material-group.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-list-options.js +1 -0
- package/dist/cjs/modules/ms/components/material-list/material-list-options.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-list.js +1 -0
- package/dist/cjs/modules/ms/components/material-list/material-list.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-select/material-select-api.js +1 -0
- package/dist/cjs/modules/ms/components/material-select/material-select-api.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigForm.js +1 -0
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigForm.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js +34 -0
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialTable.js +12 -2
- package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialTable.js.map +1 -1
- package/dist/cjs/modules/ms/image-upload-context/index.js +55 -0
- package/dist/cjs/modules/ms/image-upload-context/index.js.map +1 -0
- package/dist/cjs/modules/ms/index.js +2 -0
- package/dist/cjs/modules/ms/index.js.map +1 -1
- package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js +2 -0
- package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js +2 -0
- package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js +2 -0
- package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js.map +1 -1
- package/dist/cjs/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js +2 -0
- package/dist/cjs/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js.map +1 -1
- package/dist/cjs/modules/ms/pages/ms-role/index.vue2.js +2 -0
- package/dist/cjs/modules/ms/pages/ms-role/index.vue2.js.map +1 -1
- package/dist/esm/components/basic/image-cropper/image-cropper-api.js +3 -1
- package/dist/esm/components/basic/image-cropper/image-cropper-api.js.map +1 -1
- package/dist/esm/components/basic/image-cropper/image-cropper-content-options.js +2 -0
- package/dist/esm/components/basic/image-cropper/image-cropper-content-options.js.map +1 -1
- package/dist/esm/components/basic/image-cropper/image-cropper-content.js +25 -24
- package/dist/esm/components/basic/image-cropper/image-cropper-content.js.map +1 -1
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +2 -0
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/esm/components/business/resource-list/ResourceManager.js +36 -37
- package/dist/esm/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/esm/components/business/resource-list/components/resource-item/index.vue.js +10 -0
- package/dist/esm/components/business/resource-list/components/resource-item/index.vue.js.map +1 -1
- package/dist/esm/components/business/resource-list/resource-list.vue.js +44 -18
- package/dist/esm/components/business/resource-list/resource-list.vue.js.map +1 -1
- package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/esm/components/business/resource-select/resource-select-input.js +51 -0
- package/dist/esm/components/business/resource-select/resource-select-input.js.map +1 -0
- package/dist/esm/components/data-model/data-filter-drawer/data-filter-drawer-options.js +20 -0
- package/dist/esm/components/data-model/data-filter-drawer/data-filter-drawer-options.js.map +1 -0
- package/dist/esm/components/data-model/data-filter-drawer/data-filter-drawer.js +69 -0
- package/dist/esm/components/data-model/data-filter-drawer/data-filter-drawer.js.map +1 -0
- package/dist/esm/components/data-model/data-filter-drawer/index.js +11 -0
- package/dist/esm/components/data-model/data-filter-drawer/index.js.map +1 -0
- package/dist/esm/components/data-model/data-filter-form/components/condition-date/condition-date-options.js +8 -5
- package/dist/esm/components/data-model/data-filter-form/components/condition-date/condition-date-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-date/condition-date.js +10 -23
- package/dist/esm/components/data-model/data-filter-form/components/condition-date/condition-date.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-date/index.js +2 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-input/condition-input-options.js +4 -0
- package/dist/esm/components/data-model/data-filter-form/components/condition-input/condition-input-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-input/condition-input.js +9 -21
- package/dist/esm/components/data-model/data-filter-form/components/condition-input/condition-input.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-input/index.js +2 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-number/condition-number-options.js +7 -7
- package/dist/esm/components/data-model/data-filter-form/components/condition-number/condition-number-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-number/condition-number.js +15 -28
- package/dist/esm/components/data-model/data-filter-form/components/condition-number/condition-number.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-number/index.js +2 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-select/condition-select-options.js +2 -2
- package/dist/esm/components/data-model/data-filter-form/components/condition-select/condition-select-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-select/condition-select.js +9 -29
- package/dist/esm/components/data-model/data-filter-form/components/condition-select/condition-select.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/components/condition-select/index.js +2 -2
- package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js +9 -39
- package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +33 -69
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +9 -6
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/index.js +3 -13
- package/dist/esm/components/data-model/data-filter-form/operator-options.js +18 -29
- package/dist/esm/components/data-model/data-filter-form/operator-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/token.js +1 -3
- package/dist/esm/components/data-model/data-filter-form/token.js.map +1 -1
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js +43 -20
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/esm/composables/use-column-component.js +3 -3
- package/dist/esm/composables/use-column-component.js.map +1 -1
- package/dist/esm/core/component/DataFilterComponents.js +5 -1
- package/dist/esm/core/component/DataFilterComponents.js.map +1 -1
- package/dist/esm/core/component/DataFormComponents.js +7 -0
- package/dist/esm/core/component/DataFormComponents.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/cms/cms-settings.js +43 -0
- package/dist/esm/modules/cms/cms-settings.js.map +1 -0
- package/dist/esm/modules/cms/components/part-tree/index.vue.js +2 -0
- package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +3 -0
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +33 -2
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesTable.js +5 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesTable.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js +3 -0
- package/dist/esm/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js +4 -37
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/esm/modules/cms/index.js +5 -0
- package/dist/esm/modules/cms/index.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +3 -1
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +144 -166
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/article-atlas.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +38 -41
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +64 -60
- package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +14 -7
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +2 -6
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue.js +5 -0
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue.js.map +1 -0
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js +339 -0
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -0
- package/dist/esm/modules/ms/components/image-select/image-select-api.js +77 -0
- package/dist/esm/modules/ms/components/image-select/image-select-api.js.map +1 -0
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js +112 -0
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -0
- package/dist/esm/modules/ms/components/image-select/index.js +7 -0
- package/dist/esm/modules/ms/components/image-select/index.js.map +1 -0
- package/dist/esm/modules/ms/components/material-list/material-group-form-popover.js +2 -0
- package/dist/esm/modules/ms/components/material-list/material-group-form-popover.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-group.js +2 -0
- package/dist/esm/modules/ms/components/material-list/material-group.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-list-options.js +1 -0
- package/dist/esm/modules/ms/components/material-list/material-list-options.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-list.js +1 -0
- package/dist/esm/modules/ms/components/material-list/material-list.js.map +1 -1
- package/dist/esm/modules/ms/components/material-select/material-select-api.js +1 -0
- package/dist/esm/modules/ms/components/material-select/material-select-api.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigForm.js +1 -0
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigForm.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js +34 -0
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialTable.js +12 -2
- package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialTable.js.map +1 -1
- package/dist/esm/modules/ms/image-upload-context/index.js +55 -0
- package/dist/esm/modules/ms/image-upload-context/index.js.map +1 -0
- package/dist/esm/modules/ms/index.js +2 -0
- package/dist/esm/modules/ms/index.js.map +1 -1
- package/dist/esm/modules/ms/pages/ms-material/index.vue2.js +2 -0
- package/dist/esm/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js +2 -0
- package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/pages/ms-role/components/aside.vue.js +2 -0
- package/dist/esm/modules/ms/pages/ms-role/components/aside.vue.js.map +1 -1
- package/dist/esm/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js +2 -0
- package/dist/esm/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js.map +1 -1
- package/dist/esm/modules/ms/pages/ms-role/index.vue2.js +2 -0
- package/dist/esm/modules/ms/pages/ms-role/index.vue2.js.map +1 -1
- package/dist/style/components/data-filter-drawer.css +1 -0
- package/dist/style/components/index.css +1 -1
- package/dist/style/components/table/index.css +1 -1
- package/dist/style/components/table/table-filter.css +1 -1
- package/dist/style/index.css +1 -1
- package/dist/style/modules/cms/index.css +1 -1
- package/dist/style/modules/cms/resource-manager.css +1 -1
- package/dist/style/src/components/data-filter-drawer.scss +5 -0
- package/dist/style/src/components/index.scss +1 -0
- package/dist/style/src/components/table/table-filter.scss +4 -0
- package/dist/style/src/modules/cms/resource-manager.scss +37 -7
- package/dist/style/src/theme/theme.scss +26 -12
- package/dist/style/theme/theme.css +1 -1
- package/dist/types/components/basic/config-provider/config-provider-options.d.ts +5 -5
- package/dist/types/components/basic/config-provider/config-provider.d.ts +10 -10
- package/dist/types/components/basic/config-provider/index.d.ts +10 -10
- package/dist/types/components/basic/config-provider/use-global-config.d.ts +1 -1
- package/dist/types/components/basic/image-cropper/image-cropper-api.d.ts +2 -0
- package/dist/types/components/basic/image-cropper/image-cropper-content-options.d.ts +2 -0
- package/dist/types/components/basic/image-cropper/image-cropper-content.d.ts +6 -0
- package/dist/types/components/basic/image-cropper/index.d.ts +6 -0
- package/dist/types/components/business/resource-list/ResourceManager.d.ts +2 -0
- package/dist/types/components/business/resource-select/resource-select-input.d.ts +16 -0
- package/dist/types/components/data-model/data-filter-drawer/data-filter-drawer-options.d.ts +16 -0
- package/dist/types/components/data-model/data-filter-drawer/data-filter-drawer.d.ts +24 -0
- package/dist/types/components/data-model/data-filter-drawer/index.d.ts +25 -0
- package/dist/types/components/data-model/data-filter-form/components/condition-date/condition-date-options.d.ts +17 -1
- package/dist/types/components/data-model/data-filter-form/components/condition-date/condition-date.d.ts +33 -6
- package/dist/types/components/data-model/data-filter-form/components/condition-date/index.d.ts +33 -5
- package/dist/types/components/data-model/data-filter-form/components/condition-input/condition-input-options.d.ts +16 -0
- package/dist/types/components/data-model/data-filter-form/components/condition-input/condition-input.d.ts +30 -2
- package/dist/types/components/data-model/data-filter-form/components/condition-input/index.d.ts +30 -2
- package/dist/types/components/data-model/data-filter-form/components/condition-number/condition-number-options.d.ts +17 -1
- package/dist/types/components/data-model/data-filter-form/components/condition-number/condition-number.d.ts +33 -6
- package/dist/types/components/data-model/data-filter-form/components/condition-number/index.d.ts +33 -5
- package/dist/types/components/data-model/data-filter-form/components/condition-select/condition-select-options.d.ts +14 -2
- package/dist/types/components/data-model/data-filter-form/components/condition-select/condition-select.d.ts +30 -2
- package/dist/types/components/data-model/data-filter-form/components/condition-select/index.d.ts +30 -2
- package/dist/types/components/data-model/data-filter-form/composables/use-condition.d.ts +13 -7
- package/dist/types/components/data-model/data-filter-form/token.d.ts +1 -13
- package/dist/types/core/component/DataFilterComponents.d.ts +5 -2
- package/dist/types/modules/cms/cms-settings.d.ts +102 -0
- package/dist/types/modules/cms/dataviews/cms-articles/CmsArticlesForm.d.ts +11 -0
- package/dist/types/modules/cms/pages/cms-settigns/index.vue.d.ts +2 -0
- package/dist/types/modules/ms/components/image-select/image-select-api.d.ts +5 -0
- package/dist/types/modules/ms/components/image-select/image-select-panel.d.ts +8 -0
- package/dist/types/modules/ms/components/image-select/index.d.ts +3 -0
- package/dist/types/modules/ms/dataviews/ms-config/MsConfigTable.d.ts +2 -0
- package/dist/types/modules/ms/dataviews/ms-material/MsMaterialTable.d.ts +1 -1
- package/dist/types/modules/ms/image-upload-context/index.d.ts +13 -0
- package/dist/types/modules/ms/index.d.ts +1 -0
- package/package.json +2 -2
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover-options.js +0 -9
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover-options.js.map +0 -1
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js +0 -59
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js.map +0 -1
- package/dist/cjs/components/data-model/data-filter-popover/index.js +0 -8
- package/dist/cjs/components/data-model/data-filter-popover/index.js.map +0 -1
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover-options.js +0 -9
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover-options.js.map +0 -1
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js +0 -60
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js.map +0 -1
- package/dist/esm/components/data-model/data-filter-popover/index.js +0 -8
- package/dist/esm/components/data-model/data-filter-popover/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsMaterialTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-material/MsMaterialTable.ts"],"sourcesContent":["import {\r\n Component,\r\n DataTable,\r\n DataTableOptions,\r\n IComponents,\r\n Messager,\r\n TableColumn,\r\n} from \"@maketribe/dm\";\r\nimport { MsMaterial, MsMaterialForm } from \"./MsMaterialForm\";\r\nimport { MsConfigTable } from \"../ms-config\";\r\nimport { ITypeResolver } from \"../../../../core\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MsMaterialGroupNode } from \"./ms-material-group\";\r\nimport { DvOpt, UploadError, WebFileUpload } from \"@maketribe/request\";\r\nimport { MsMaterialComponents } from \"./MsMaterialComponents\";\r\n\r\nexport type MsMaterialType = {\r\n value: number;\r\n accept: string;\r\n label: string;\r\n limit: number;\r\n};\r\n\r\nexport type MaterialTableOptions = DataTableOptions & {\r\n materialComponents?: IComponents;\r\n};\r\n\r\nexport class MsMaterialTable\r\n extends DataTable<MsMaterial>\r\n implements ITypeResolver<MsMaterial>\r\n{\r\n static [DATA_MODEL_NAME]: string = \"mk-material\";\r\n\r\n materialTypes: MsMaterialType[] = [];\r\n\r\n allowMaterialTypeValues: MsMaterialType[\"value\"][] = [];\r\n\r\n materialComponents: IComponents;\r\n\r\n currentMaterialGroupId: MsMaterialGroupNode[\"id\"] | null = null;\r\n\r\n currentMaterialType: MsMaterialType | null = null;\r\n\r\n upload: WebFileUpload;\r\n\r\n materialForm: MsMaterialForm = this.register(new MsMaterialForm());\r\n\r\n constructor(options: MaterialTableOptions = {}) {\r\n super({\r\n name: MsMaterialTable[DATA_MODEL_NAME],\r\n moduleName: MODULE_NAME,\r\n ...options,\r\n });\r\n\r\n this.materialComponents =\r\n options.materialComponents ?? new MsMaterialComponents();\r\n\r\n this.upload = new WebFileUpload({\r\n filters: [\r\n (file) => {\r\n if (!this.currentMaterialType) {\r\n throw new UploadError(\"不能上传文件,素材类型无效\");\r\n }\r\n\r\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\r\n throw new UploadError(\"文件太大不能上传\");\r\n }\r\n },\r\n ],\r\n });\r\n }\r\n\r\n getMaterialTypes(): MsMaterialType[] {\r\n if (!this.allowMaterialTypeValues.length) {\r\n return this.materialTypes;\r\n }\r\n\r\n return this.materialTypes.filter((materialType) =>\r\n this.allowMaterialTypeValues.includes(materialType.value)\r\n );\r\n }\r\n\r\n async loadMaterialTypes() {\r\n const configResponse = await MsConfigTable.loadConfig<MsMaterialType[]>(\r\n \"ms-material-types\"\r\n );\r\n\r\n if (configResponse.data.code !== 200 || !configResponse.data.data) {\r\n throw new Error();\r\n }\r\n\r\n const config = configResponse.data.data;\r\n\r\n this.materialTypes = config.value || [];\r\n }\r\n\r\n protected async initialize() {\r\n await super.initialize();\r\n\r\n const dvOpt = DvOpt.createInstance({\r\n name: MsMaterialTable[DATA_MODEL_NAME],\r\n });\r\n\r\n this.upload.uploadEvent.on(({ uploadItem }) => {\r\n uploadItem.completeEvent.once(async () => {\r\n if (!this.currentMaterialGroupId || !this.currentMaterialType) {\r\n Messager.error({ message: \"上传失败\" });\r\n return;\r\n }\r\n\r\n try {\r\n const response = await dvOpt.save({\r\n materialGroupId: this.currentMaterialGroupId,\r\n type: this.currentMaterialType.value!,\r\n desc: uploadItem.payload.name,\r\n path: uploadItem.response!.data.data.path,\r\n });\r\n\r\n if (response.code !== 200) {\r\n Messager.error({ message: response.msg });\r\n return;\r\n }\r\n } catch {\r\n Messager.error({ message: \"网络异常\" });\r\n }\r\n\r\n this.load();\r\n });\r\n });\r\n\r\n this.materialTypes = [\r\n { value: 1, accept: \"image/*\", limit: 10, label: \"图片\" },\r\n { value: 2, accept: \"video/*\", limit: 500, label: \"视频\" },\r\n { value: 4, accept: \"*\", limit: 100, label: \"文档\" },\r\n ];\r\n\r\n this.currentMaterialType = this.materialTypes[0];\r\n\r\n const mapping = this.materialTypes.reduce((result, item) => {\r\n result[item.value] = result.label;\r\n\r\n return result;\r\n }, {} as Record<any, any>);\r\n\r\n this.setColumns([\r\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\r\n new TableColumn({\r\n name: \"type\",\r\n label: \"类型\",\r\n componentInfo: \"MKColumnObjectMappingText\",\r\n componentProps: {\r\n mapping,\r\n },\r\n }),\r\n new TableColumn({ name: \"desc\", label: \"描述\" }),\r\n new TableColumn({ name: \"path\", label: \"路径\" }),\r\n ]);\r\n }\r\n formatItem(item: MsMaterial): MsMaterial {\r\n return {\r\n id: item.id,\r\n materialGroupId: item.materialGroupId || null,\r\n type: item.type ? item.type : 1,\r\n desc: item.desc || \"\",\r\n path: item.path || \"\",\r\n };\r\n }\r\n\r\n resolveType(type: string): string {\r\n switch (type) {\r\n case \"1\":\r\n return \"MKImageView\";\r\n case \"2\":\r\n return \"MKVideoView\";\r\n case \"3\":\r\n return \"MKAudioView\";\r\n default:\r\n return \"MKDocumentView\";\r\n }\r\n }\r\n\r\n resolveItemType(item: MsMaterial): string {\r\n return this.resolveType(item.type.toString());\r\n }\r\n\r\n resolveMaterialComponent(item: MsMaterial): Component | null {\r\n return this.materialComponents.resolveComponent(this.resolveItemType(item));\r\n }\r\n\r\n setCurrentMaterialGroupId(materialGroupId: MsMaterialGroupNode[\"id\"] | null) {\r\n this.currentMaterialGroupId = materialGroupId;\r\n\r\n this.attachMaterialTableCondition();\r\n }\r\n\r\n setCurrentMaterialType(materialTypeId: MsMaterialType | null) {\r\n this.currentMaterialType = materialTypeId;\r\n\r\n this.attachMaterialTableCondition();\r\n }\r\n\r\n setAllowMaterialTypeValues(\r\n allowMaterialTypeValues: MsMaterialType[\"value\"][]\r\n ) {\r\n this.allowMaterialTypeValues = allowMaterialTypeValues;\r\n\r\n this.setCurrentMaterialType(this.getMaterialTypes()[0] ?? null);\r\n }\r\n\r\n protected attachMaterialTableCondition() {\r\n if (!this.currentMaterialGroupId || !this.currentMaterialType) {\r\n return;\r\n }\r\n\r\n this.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n\r\n defaultGroup.addCondition(\r\n \"materialGroupId\",\r\n \"=\",\r\n this.currentMaterialGroupId\r\n );\r\n\r\n defaultGroup.addCondition(\"type\", \"=\", this.currentMaterialType!.value);\r\n });\r\n\r\n this.load();\r\n }\r\n}\r\n"],"names":["DataTable","DATA_MODEL_NAME","MODULE_NAME","MsMaterialForm","MsMaterialComponents","WebFileUpload","UploadError","MsConfigTable","DvOpt","Messager","TableColumn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MsMaterialTable.js","sources":["../../../../../../src/modules/ms/dataviews/ms-material/MsMaterialTable.ts"],"sourcesContent":["import {\r\n Component,\r\n DataTable,\r\n DataTableOptions,\r\n IComponents,\r\n Messager,\r\n TableColumn,\r\n} from \"@maketribe/dm\";\r\nimport { MsMaterial, MsMaterialForm } from \"./MsMaterialForm\";\r\nimport { MsConfigTable } from \"../ms-config\";\r\nimport { ITypeResolver } from \"../../../../core\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MsMaterialGroupNode } from \"./ms-material-group\";\r\nimport { DvOpt, UploadError, WebFileUpload } from \"@maketribe/request\";\r\nimport { MsMaterialComponents } from \"./MsMaterialComponents\";\r\nimport { isEqual } from \"lodash-es\";\r\n\r\nexport type MsMaterialType = {\r\n value: number;\r\n accept: string;\r\n label: string;\r\n limit: number;\r\n};\r\n\r\nexport type MaterialTableOptions = DataTableOptions & {\r\n materialComponents?: IComponents;\r\n};\r\n\r\nexport class MsMaterialTable\r\n extends DataTable<MsMaterial>\r\n implements ITypeResolver<MsMaterial>\r\n{\r\n static [DATA_MODEL_NAME]: string = \"mk-material\";\r\n\r\n materialTypes: MsMaterialType[] = [];\r\n\r\n allowMaterialTypeValues: MsMaterialType[\"value\"][] = [];\r\n\r\n materialComponents: IComponents;\r\n\r\n currentMaterialGroupId: MsMaterialGroupNode[\"id\"] | null = null;\r\n\r\n currentMaterialType: MsMaterialType | null = null;\r\n\r\n upload: WebFileUpload;\r\n\r\n materialForm: MsMaterialForm = this.register(new MsMaterialForm());\r\n\r\n constructor(options: MaterialTableOptions = {}) {\r\n super({\r\n name: MsMaterialTable[DATA_MODEL_NAME],\r\n moduleName: MODULE_NAME,\r\n ...options,\r\n });\r\n\r\n this.materialComponents =\r\n options.materialComponents ?? new MsMaterialComponents();\r\n\r\n this.upload = new WebFileUpload({\r\n filters: [\r\n (file) => {\r\n if (!this.currentMaterialType) {\r\n throw new UploadError(\"不能上传文件,素材类型无效\");\r\n }\r\n\r\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\r\n throw new UploadError(\"文件太大不能上传\");\r\n }\r\n },\r\n ],\r\n });\r\n }\r\n\r\n getMaterialTypes(): MsMaterialType[] {\r\n if (!this.allowMaterialTypeValues.length) {\r\n return this.materialTypes;\r\n }\r\n\r\n return this.materialTypes.filter((materialType) =>\r\n this.allowMaterialTypeValues.includes(materialType.value)\r\n );\r\n }\r\n\r\n async loadMaterialTypes() {\r\n const configResponse = await MsConfigTable.loadConfig<MsMaterialType[]>(\r\n \"ms-material-types\"\r\n );\r\n\r\n if (configResponse.data.code !== 200 || !configResponse.data.data) {\r\n throw new Error();\r\n }\r\n\r\n const config = configResponse.data.data;\r\n\r\n this.materialTypes = config.value || [];\r\n }\r\n\r\n protected async initialize() {\r\n await super.initialize();\r\n\r\n const dvOpt = DvOpt.createInstance({\r\n name: MsMaterialTable[DATA_MODEL_NAME],\r\n });\r\n\r\n this.upload.uploadEvent.on(({ uploadItem }) => {\r\n uploadItem.completeEvent.once(async () => {\r\n if (!this.currentMaterialGroupId || !this.currentMaterialType) {\r\n Messager.error({ message: \"上传失败\" });\r\n return;\r\n }\r\n\r\n try {\r\n const response = await dvOpt.save({\r\n materialGroupId: this.currentMaterialGroupId,\r\n type: this.currentMaterialType.value!,\r\n desc: uploadItem.payload.name,\r\n path: uploadItem.response!.data.data.path,\r\n });\r\n\r\n if (response.code !== 200) {\r\n Messager.error({ message: response.msg });\r\n return;\r\n }\r\n } catch {\r\n Messager.error({ message: \"网络异常\" });\r\n }\r\n\r\n this.load();\r\n });\r\n });\r\n\r\n this.materialTypes = [\r\n { value: 1, accept: \"image/*\", limit: 10, label: \"图片\" },\r\n { value: 2, accept: \"video/*\", limit: 500, label: \"视频\" },\r\n { value: 4, accept: \"*\", limit: 100, label: \"文档\" },\r\n ];\r\n\r\n this.currentMaterialType = this.materialTypes[0];\r\n\r\n const mapping = this.materialTypes.reduce((result, item) => {\r\n result[item.value] = result.label;\r\n\r\n return result;\r\n }, {} as Record<any, any>);\r\n\r\n this.setColumns([\r\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\r\n new TableColumn({\r\n name: \"type\",\r\n label: \"类型\",\r\n componentInfo: \"MKColumnObjectMappingText\",\r\n componentProps: {\r\n mapping,\r\n },\r\n }),\r\n new TableColumn({ name: \"desc\", label: \"描述\" }),\r\n new TableColumn({ name: \"path\", label: \"路径\" }),\r\n ]);\r\n }\r\n formatItem(item: MsMaterial): MsMaterial {\r\n return {\r\n id: item.id,\r\n materialGroupId: item.materialGroupId || null,\r\n type: item.type ? item.type : 1,\r\n desc: item.desc || \"\",\r\n path: item.path || \"\",\r\n };\r\n }\r\n\r\n resolveType(type: string): string {\r\n switch (type) {\r\n case \"1\":\r\n return \"MKImageView\";\r\n case \"2\":\r\n return \"MKVideoView\";\r\n case \"3\":\r\n return \"MKAudioView\";\r\n default:\r\n return \"MKDocumentView\";\r\n }\r\n }\r\n\r\n resolveItemType(item: MsMaterial): string {\r\n return this.resolveType(item.type.toString());\r\n }\r\n\r\n resolveMaterialComponent(item: MsMaterial): Component | null {\r\n return this.materialComponents.resolveComponent(this.resolveItemType(item));\r\n }\r\n\r\n setCurrentMaterialGroupId(materialGroupId: MsMaterialGroupNode[\"id\"] | null) {\r\n this.currentMaterialGroupId = materialGroupId;\r\n\r\n this.attachMaterialTableCondition();\r\n }\r\n\r\n setCurrentMaterialType(materialType: MsMaterialType | null) {\r\n if (materialType?.value === this.currentMaterialType?.value) {\r\n return;\r\n }\r\n\r\n this.currentMaterialType = materialType;\r\n\r\n this.attachMaterialTableCondition();\r\n }\r\n\r\n setAllowMaterialTypeValues(\r\n allowMaterialTypeValues: MsMaterialType[\"value\"][]\r\n ) {\r\n const targetAllowMaterialTypeValues = allowMaterialTypeValues\r\n .slice()\r\n .sort();\r\n\r\n const originAllowMaterialTypeValues = this.allowMaterialTypeValues\r\n .slice()\r\n .sort();\r\n\r\n if (isEqual(targetAllowMaterialTypeValues, originAllowMaterialTypeValues)) {\r\n return;\r\n }\r\n\r\n this.allowMaterialTypeValues = allowMaterialTypeValues;\r\n\r\n this.setCurrentMaterialType(this.getMaterialTypes()[0] ?? null);\r\n }\r\n\r\n protected attachMaterialTableCondition() {\r\n if (!this.currentMaterialGroupId || !this.currentMaterialType) {\r\n return;\r\n }\r\n\r\n this.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n\r\n defaultGroup.addCondition(\r\n \"materialGroupId\",\r\n \"=\",\r\n this.currentMaterialGroupId\r\n );\r\n\r\n defaultGroup.addCondition(\"type\", \"=\", this.currentMaterialType!.value);\r\n });\r\n\r\n this.load();\r\n }\r\n}\r\n"],"names":["DataTable","DATA_MODEL_NAME","MODULE_NAME","MsMaterialForm","MsMaterialComponents","WebFileUpload","UploadError","MsConfigTable","DvOpt","Messager","TableColumn","_a","isEqual"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
6
|
+
const index = require("../components/image-select/index.js");
|
|
7
|
+
require("../../../components/basic/upload-file/upload-file.js");
|
|
8
|
+
const UploadContext = require("../../../components/basic/upload-file/context/UploadContext.js");
|
|
9
|
+
const request = require("@maketribe/request");
|
|
10
|
+
const utils = require("@maketribe/utils");
|
|
11
|
+
require("../../../components/basic/upload-file/context/web-file-upload-context.js");
|
|
12
|
+
require("../../../components/basic/upload-file/context/web-file-upload-context-options.js");
|
|
13
|
+
require("../../../components/basic/upload-file/ui/upload-image/index.js");
|
|
14
|
+
require("../../../components/basic/upload-file/upload-file-options.js");
|
|
15
|
+
class ImageUploadContext extends UploadContext.UploadContext {
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param cutSise 裁切尺寸
|
|
19
|
+
*/
|
|
20
|
+
constructor(cutSise) {
|
|
21
|
+
super();
|
|
22
|
+
__publicField(this, "cutSise");
|
|
23
|
+
this.cutSise = cutSise;
|
|
24
|
+
}
|
|
25
|
+
async selectFile() {
|
|
26
|
+
let cutWidth = 0;
|
|
27
|
+
let cutHeight = 0;
|
|
28
|
+
if (this.cutSise) {
|
|
29
|
+
let cutInfo = this.cutSise.split("*");
|
|
30
|
+
cutWidth = parseInt(cutInfo[0]) || 0;
|
|
31
|
+
cutHeight = parseInt(cutInfo[1]) || cutWidth;
|
|
32
|
+
}
|
|
33
|
+
const result = await index.MKImageSelect(cutWidth, cutHeight);
|
|
34
|
+
let path = result.path;
|
|
35
|
+
if (path && path.indexOf("data:image/") == 0) {
|
|
36
|
+
const webFileUpload = new request.WebFileUpload();
|
|
37
|
+
const blob = utils.base64ToBlob(path);
|
|
38
|
+
const uploadResult = await webFileUpload.upload(
|
|
39
|
+
new File([blob], `${utils.md5(Math.random().toString())}.${blob.type.toString().replace("image/", "") || "png"}`, { type: blob.type })
|
|
40
|
+
);
|
|
41
|
+
if (uploadResult.data.code !== 200) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
path: "",
|
|
45
|
+
msg: uploadResult.data.msg
|
|
46
|
+
};
|
|
47
|
+
} else {
|
|
48
|
+
path = uploadResult.data.data.path;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { success: true, path, msg: "" };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ImageUploadContext = ImageUploadContext;
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/modules/ms/image-upload-context/index.ts"],"sourcesContent":["import { MKImageSelect } from \"../components/image-select\";\r\nimport { UploadContext, UploadResult } from \"../../../components/basic/upload-file\";\r\nimport { base64ToBlob,md5 } from \"@maketribe/utils\";\r\nimport { WebFileUpload } from \"@maketribe/request\";\r\n\r\n\r\n/**\r\n * 图片上传上下文\r\n */\r\nexport class ImageUploadContext extends UploadContext {\r\n cutSise?:string;\r\n\r\n /**\r\n * \r\n * @param cutSise 裁切尺寸 \r\n */\r\n\tconstructor(cutSise?:string) {\r\n\t\tsuper();\r\n this.cutSise = cutSise;\r\n\t}\r\n\r\n\tasync selectFile(): Promise<UploadResult> {\r\n\r\n let cutWidth = 0;\r\n let cutHeight = 0;\r\n\r\n if(this.cutSise){\r\n let cutInfo = this.cutSise.split(\"*\");\r\n cutWidth = parseInt(cutInfo[0]) || 0;\r\n cutHeight = parseInt(cutInfo[1]) || cutWidth;\r\n }\r\n\r\n\r\n\t\tconst result = await MKImageSelect(cutWidth,cutHeight);\r\n\r\n let path:any = result.path;\r\n\r\n // base 64 则上传\r\n if(path && path.indexOf(\"data:image/\") == 0){\r\n\r\n const webFileUpload = new WebFileUpload();\r\n // 开始上传\r\n const blob = base64ToBlob(path); \r\n\r\n // 上传\r\n const uploadResult = await webFileUpload.upload(\r\n new File([blob], `${md5(Math.random().toString())}.${blob.type.toString().replace(\"image/\",\"\") || \"png\"}`, { type: blob.type })\r\n );\r\n\r\n if (uploadResult.data.code !== 200) {\r\n \r\n return {\r\n success: false, path: \"\", msg: uploadResult.data.msg,\r\n };\r\n }\r\n else{\r\n path = uploadResult.data.data.path;\r\n }\r\n }\r\n\r\n\t\treturn { success: true, path: path, msg: \"\", };\r\n\t}\r\n}\r\n"],"names":["UploadContext","MKImageSelect","WebFileUpload","base64ToBlob","md5"],"mappings":";;;;;;;;;;;;;;AASO,MAAM,2BAA2BA,cAAAA,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrD,YAAY,SAAiB;AACtB;AAPN;AAQE,SAAK,UAAU;AAAA,EAClB;AAAA,EAEA,MAAM,aAAoC;AAEvC,QAAI,WAAW;AACf,QAAI,YAAY;AAEhB,QAAG,KAAK,SAAQ;AACd,UAAI,UAAU,KAAK,QAAQ,MAAM,GAAG;AACpC,iBAAW,SAAS,QAAQ,CAAC,CAAC,KAAK;AACnC,kBAAY,SAAS,QAAQ,CAAC,CAAC,KAAK;AAAA,IACtC;AAGF,UAAM,SAAS,MAAMC,MAAAA,cAAc,UAAS,SAAS;AAEnD,QAAI,OAAW,OAAO;AAGtB,QAAG,QAAQ,KAAK,QAAQ,aAAa,KAAK,GAAE;AAEpC,YAAA,gBAAgB,IAAIC,QAAAA;AAEpB,YAAA,OAAOC,mBAAa,IAAI;AAGxB,YAAA,eAAe,MAAM,cAAc;AAAA,QACvC,IAAI,KAAK,CAAC,IAAI,GAAG,GAAGC,MAAAA,IAAI,KAAK,OAAO,EAAE,SAAU,CAAA,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,QAAQ,UAAS,EAAE,KAAK,KAAK,IAAI,EAAE,MAAM,KAAK,KAAA,CAAM;AAAA,MAAA;AAG5H,UAAA,aAAa,KAAK,SAAS,KAAK;AAE3B,eAAA;AAAA,UACL,SAAS;AAAA,UAAO,MAAM;AAAA,UAAK,KAAM,aAAa,KAAK;AAAA,QAAA;AAAA,MACrD,OAEE;AACK,eAAA,aAAa,KAAK,KAAK;AAAA,MAChC;AAAA,IACF;AAEF,WAAO,EAAE,SAAS,MAAM,MAAY,KAAK,GAAI;AAAA,EAC9C;AACD;;"}
|
|
@@ -47,6 +47,8 @@ require("../../components/basic/upload-file/ui/upload-image/index.js");
|
|
|
47
47
|
require("../../components/basic/upload-file/upload-file-options.js");
|
|
48
48
|
const materialUploadContextOptions = require("./material-upload-context/material-upload-context-options.js");
|
|
49
49
|
const materialUploadContext = require("./material-upload-context/material-upload-context.js");
|
|
50
|
+
require("@element-plus/icons-vue");
|
|
51
|
+
require("../../components/basic/image-cropper/index.js");
|
|
50
52
|
const _interopNamespaceDefaultOnly = (e) => Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: "Module" }));
|
|
51
53
|
const msModule = (module2) => {
|
|
52
54
|
module2.registerDataTable(MsConfigTable.MsConfigTable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/modules/ms/index.ts"],"sourcesContent":["import { defineAsyncComponent } from \"vue\";\r\nimport { InternalMkModule, MkModule } from \"../../core\";\r\nimport {\r\n MsConfigTable,\r\n MsConfigForm,\r\n MsDenyIPAccessListForm,\r\n MsDenyIPAccessListTable,\r\n MsIPWhitelistTable,\r\n MsIPWhitelistForm,\r\n MsMaterialTable,\r\n MsMaterialForm,\r\n MsMaterialGroupTree,\r\n MsMaterialGroupForm,\r\n MsMemberTable,\r\n MsMemberForm,\r\n MsMenuTree,\r\n MsMenuForm,\r\n MsPermissionPointDefineTable,\r\n MsPermissionPointDefineForm,\r\n MsRouteTable,\r\n MsRouteForm,\r\n MsRegionTable,\r\n MsRegionForm,\r\n MsRoleTable,\r\n MsRoleForm,\r\n} from \"./dataviews\";\r\nimport { MKMaterialSelect } from \"./components\";\r\n\r\nexport * from \"./dataviews\";\r\n\r\nexport * from \"./components\";\r\n\r\nexport * from \"./material-upload-context\";\r\n\r\nconst msModule: MkModule = (module: InternalMkModule) => {\r\n // module.app.use(MKMaterialSelect);\r\n\r\n // 注册配置相关DataModel\r\n module.registerDataTable(MsConfigTable);\r\n module.registerDataForm(MsConfigForm);\r\n\r\n // 注册黑名单相关DataModel\r\n module.registerDataTable(MsDenyIPAccessListTable);\r\n module.registerDataForm(MsDenyIPAccessListForm);\r\n\r\n // 注册白名单相关DataModel\r\n module.registerDataTable(MsIPWhitelistTable);\r\n module.registerDataForm(MsIPWhitelistForm);\r\n\r\n // 注册素材相关DataModel\r\n module.registerDataTable(MsMaterialTable);\r\n module.registerDataForm(MsMaterialForm);\r\n module.registerDataTree(MsMaterialGroupTree);\r\n module.registerDataForm(MsMaterialGroupForm);\r\n\r\n // 注册成员相关DataModel\r\n module.registerDataTable(MsMemberTable);\r\n module.registerDataForm(MsMemberForm);\r\n\r\n // 注册菜单相关DataModel\r\n module.registerDataTree(MsMenuTree);\r\n module.registerDataForm(MsMenuForm);\r\n module.registerDataTable(MsPermissionPointDefineTable);\r\n module.registerDataForm(MsPermissionPointDefineForm);\r\n module.registerDataTable(MsRouteTable);\r\n module.registerDataForm(MsRouteForm);\r\n\r\n // 注册省市区相关DataModel\r\n module.registerDataTable(MsRegionTable);\r\n module.registerDataForm(MsRegionForm);\r\n\r\n // 注册角色相关DataModel\r\n module.registerDataTable(MsRoleTable);\r\n module.registerDataForm(MsRoleForm);\r\n\r\n module.dataFormComponents.registerComponent({\r\n name: \"MKFormRichTextEditor\",\r\n title: \"富文本\",\r\n component: defineAsyncComponent(\r\n () => import(\"./components/rich-text-editor\")\r\n ),\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-material/list\",\r\n path: \"/sys/materials\",\r\n component: () => import(\"./pages/ms-material/index.vue\"),\r\n meta: { name: \"ms-material\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-role/single/list/dialog\",\r\n path: \"/sys/roles\",\r\n component: () => import(\"./pages/ms-role/index.vue\"),\r\n meta: { name: \"ms-role\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/local-log/single/tree/dialog\",\r\n path: \"/log/local\",\r\n component: () => import(\"./pages/local-log/index.vue\"),\r\n meta: { name: \"local-log\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-menu/list\",\r\n path: \"/sys/menus\",\r\n component: () => import(\"./pages/ms-menu/index.vue\"),\r\n meta: { name: \"ms-menu\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"icons/list\",\r\n path: \"/sys/icons\",\r\n component: () => import(\"./pages/icons/index.vue\"),\r\n });\r\n};\r\n\r\nexport default msModule;\r\n"],"names":["module","MsConfigTable","MsConfigForm","MsDenyIPAccessListTable","MsDenyIPAccessListForm","MsIPWhitelistTable","MsIPWhitelistForm","MsMaterialTable","MsMaterialForm","MsMaterialGroupTree","MsMaterialGroupForm","MsMemberTable","MsMemberForm","MsMenuTree","MsMenuForm","MsPermissionPointDefineTable","MsPermissionPointDefineForm","MsRouteTable","MsRouteForm","MsRegionTable","MsRegionForm","MsRoleTable","MsRoleForm","defineAsyncComponent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/modules/ms/index.ts"],"sourcesContent":["import { defineAsyncComponent } from \"vue\";\r\nimport { InternalMkModule, MkModule } from \"../../core\";\r\nimport {\r\n MsConfigTable,\r\n MsConfigForm,\r\n MsDenyIPAccessListForm,\r\n MsDenyIPAccessListTable,\r\n MsIPWhitelistTable,\r\n MsIPWhitelistForm,\r\n MsMaterialTable,\r\n MsMaterialForm,\r\n MsMaterialGroupTree,\r\n MsMaterialGroupForm,\r\n MsMemberTable,\r\n MsMemberForm,\r\n MsMenuTree,\r\n MsMenuForm,\r\n MsPermissionPointDefineTable,\r\n MsPermissionPointDefineForm,\r\n MsRouteTable,\r\n MsRouteForm,\r\n MsRegionTable,\r\n MsRegionForm,\r\n MsRoleTable,\r\n MsRoleForm,\r\n} from \"./dataviews\";\r\nimport { MKMaterialSelect } from \"./components\";\r\n\r\nexport * from \"./dataviews\";\r\n\r\nexport * from \"./components\";\r\n\r\nexport * from \"./material-upload-context\";\r\n\r\nexport * from \"./image-upload-context\";\r\n\r\nconst msModule: MkModule = (module: InternalMkModule) => {\r\n // module.app.use(MKMaterialSelect);\r\n\r\n // 注册配置相关DataModel\r\n module.registerDataTable(MsConfigTable);\r\n module.registerDataForm(MsConfigForm);\r\n\r\n // 注册黑名单相关DataModel\r\n module.registerDataTable(MsDenyIPAccessListTable);\r\n module.registerDataForm(MsDenyIPAccessListForm);\r\n\r\n // 注册白名单相关DataModel\r\n module.registerDataTable(MsIPWhitelistTable);\r\n module.registerDataForm(MsIPWhitelistForm);\r\n\r\n // 注册素材相关DataModel\r\n module.registerDataTable(MsMaterialTable);\r\n module.registerDataForm(MsMaterialForm);\r\n module.registerDataTree(MsMaterialGroupTree);\r\n module.registerDataForm(MsMaterialGroupForm);\r\n\r\n // 注册成员相关DataModel\r\n module.registerDataTable(MsMemberTable);\r\n module.registerDataForm(MsMemberForm);\r\n\r\n // 注册菜单相关DataModel\r\n module.registerDataTree(MsMenuTree);\r\n module.registerDataForm(MsMenuForm);\r\n module.registerDataTable(MsPermissionPointDefineTable);\r\n module.registerDataForm(MsPermissionPointDefineForm);\r\n module.registerDataTable(MsRouteTable);\r\n module.registerDataForm(MsRouteForm);\r\n\r\n // 注册省市区相关DataModel\r\n module.registerDataTable(MsRegionTable);\r\n module.registerDataForm(MsRegionForm);\r\n\r\n // 注册角色相关DataModel\r\n module.registerDataTable(MsRoleTable);\r\n module.registerDataForm(MsRoleForm);\r\n\r\n module.dataFormComponents.registerComponent({\r\n name: \"MKFormRichTextEditor\",\r\n title: \"富文本\",\r\n component: defineAsyncComponent(\r\n () => import(\"./components/rich-text-editor\")\r\n ),\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-material/list\",\r\n path: \"/sys/materials\",\r\n component: () => import(\"./pages/ms-material/index.vue\"),\r\n meta: { name: \"ms-material\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-role/single/list/dialog\",\r\n path: \"/sys/roles\",\r\n component: () => import(\"./pages/ms-role/index.vue\"),\r\n meta: { name: \"ms-role\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/local-log/single/tree/dialog\",\r\n path: \"/log/local\",\r\n component: () => import(\"./pages/local-log/index.vue\"),\r\n meta: { name: \"local-log\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"dv/ms-menu/list\",\r\n path: \"/sys/menus\",\r\n component: () => import(\"./pages/ms-menu/index.vue\"),\r\n meta: { name: \"ms-menu\" },\r\n });\r\n\r\n module.registerExtendsPage({\r\n name: \"icons/list\",\r\n path: \"/sys/icons\",\r\n component: () => import(\"./pages/icons/index.vue\"),\r\n });\r\n};\r\n\r\nexport default msModule;\r\n"],"names":["module","MsConfigTable","MsConfigForm","MsDenyIPAccessListTable","MsDenyIPAccessListForm","MsIPWhitelistTable","MsIPWhitelistForm","MsMaterialTable","MsMaterialForm","MsMaterialGroupTree","MsMaterialGroupForm","MsMemberTable","MsMemberForm","MsMenuTree","MsMenuForm","MsPermissionPointDefineTable","MsPermissionPointDefineForm","MsRouteTable","MsRouteForm","MsRegionTable","MsRegionForm","MsRoleTable","MsRoleForm","defineAsyncComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCM,MAAA,WAAqB,CAACA,YAA6B;AAIvD,EAAAA,QAAO,kBAAkBC,cAAAA,aAAa;AACtC,EAAAD,QAAO,iBAAiBE,aAAAA,YAAY;AAGpC,EAAAF,QAAO,kBAAkBG,wBAAAA,uBAAuB;AAChD,EAAAH,QAAO,iBAAiBI,uBAAAA,sBAAsB;AAG9C,EAAAJ,QAAO,kBAAkBK,mBAAAA,kBAAkB;AAC3C,EAAAL,QAAO,iBAAiBM,kBAAAA,iBAAiB;AAGzC,EAAAN,QAAO,kBAAkBO,gBAAAA,eAAe;AACxC,EAAAP,QAAO,iBAAiBQ,eAAAA,cAAc;AACtC,EAAAR,QAAO,iBAAiBS,oBAAAA,mBAAmB;AAC3C,EAAAT,QAAO,iBAAiBU,oBAAAA,mBAAmB;AAG3C,EAAAV,QAAO,kBAAkBW,cAAAA,aAAa;AACtC,EAAAX,QAAO,iBAAiBY,aAAAA,YAAY;AAGpC,EAAAZ,QAAO,iBAAiBa,WAAAA,UAAU;AAClC,EAAAb,QAAO,iBAAiBc,WAAAA,UAAU;AAClC,EAAAd,QAAO,kBAAkBe,6BAAAA,4BAA4B;AACrD,EAAAf,QAAO,iBAAiBgB,4BAAAA,2BAA2B;AACnD,EAAAhB,QAAO,kBAAkBiB,aAAAA,YAAY;AACrC,EAAAjB,QAAO,iBAAiBkB,YAAAA,WAAW;AAGnC,EAAAlB,QAAO,kBAAkBmB,cAAAA,aAAa;AACtC,EAAAnB,QAAO,iBAAiBoB,aAAAA,YAAY;AAGpC,EAAApB,QAAO,kBAAkBqB,YAAAA,WAAW;AACpC,EAAArB,QAAO,iBAAiBsB,WAAAA,UAAU;AAElC,EAAAtB,QAAO,mBAAmB,kBAAkB;AAAA,IAC1C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAWuB,IAAA;AAAA,MACT,MAAM,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,wCAA+B,CAAA;AAAA,IAC9C;AAAA,EAAA,CACD;AAED,EAAAvB,QAAO,oBAAoB;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,kCAA+B,CAAA,CAAA;AAAA,IACvD,MAAM,EAAE,MAAM,cAAc;AAAA,EAAA,CAC7B;AAED,EAAAA,QAAO,oBAAoB;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,8BAA2B,CAAA,CAAA;AAAA,IACnD,MAAM,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AAED,EAAAA,QAAO,oBAAoB;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,gCAA6B,CAAA,CAAA;AAAA,IACrD,MAAM,EAAE,MAAM,YAAY;AAAA,EAAA,CAC3B;AAED,EAAAA,QAAO,oBAAoB;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,8BAA2B,CAAA,CAAA;AAAA,IACnD,MAAM,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AAED,EAAAA,QAAO,oBAAoB;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,4BAAyB,CAAA,CAAA;AAAA,EAAA,CAClD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,6 +36,8 @@ const index$1 = require("../../components/material-list/index.js");
|
|
|
36
36
|
require("../../../../core/DataModelDefines.js");
|
|
37
37
|
require("vue-router");
|
|
38
38
|
require("@maketribe/locale");
|
|
39
|
+
require("../../dataviews/ms-config/MsConfigTable.js");
|
|
40
|
+
require("lodash-es");
|
|
39
41
|
require("../../dataviews/department/DepartmentForm.js");
|
|
40
42
|
require("../../dataviews/department/DepartmentTable.js");
|
|
41
43
|
require("../../dataviews/department/DepartmentTree.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -37,6 +37,8 @@ require("../../../../components/business/verify-dialog/index.js");
|
|
|
37
37
|
require("../../../../components/business/resource-list/index.js");
|
|
38
38
|
require("../../../../components/business/resource-manager/index.js");
|
|
39
39
|
const useSingleView = require("../../../../composables/use-single-view.js");
|
|
40
|
+
require("../../dataviews/ms-config/MsConfigTable.js");
|
|
41
|
+
require("lodash-es");
|
|
40
42
|
const MsRouteTable = require("../../dataviews/ms-menu/ms-route/MsRouteTable.js");
|
|
41
43
|
require("../../dataviews/department/DepartmentForm.js");
|
|
42
44
|
require("../../dataviews/department/DepartmentTable.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer v-if=\"dataTree\">\r\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\r\n <MKTableView>\r\n <MKTableTree defaultExpandAll>\r\n <template #col-data.title-content=\"{ row }\">\r\n <MKSvgIcon :iconClass=\"row.data.iconName\" />\r\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\r\n <ElButton\r\n v-if=\"row.data.type === MenuType.Menu\"\r\n link\r\n type=\"primary\"\r\n class=\"ms-menu__url\"\r\n @click=\"handleUrlClick(row.data)\"\r\n >\r\n {{ row.data.targetUrl || \"空\" }}\r\n </ElButton>\r\n </template>\r\n </MKTableTree>\r\n </MKTableView>\r\n </MKDataTable>\r\n </MKPageContainer>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n unref,\r\n computed,\r\n watch,\r\n ref,\r\n Ref,\r\n reactive,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { DataForm, DataTree, Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { ElMessage } from \"element-plus\";\r\nimport { DataModelDefines } from \"../../../../core\";\r\nimport {\r\n MKPageContainer,\r\n MKDataTable,\r\n MKTableView,\r\n MKTableTree,\r\n} from \"../../../../components\";\r\nimport { useSingleViewWithDialog } from \"../../../../composables\";\r\nimport { MenuType } from \"../../../../constants\";\r\nimport { MsRouteTable, MsMenuItemNode } from \"../../dataviews\";\r\n\r\nconst router = useRouter();\r\n\r\nconst dataTree: Ref<DataTree | null> = ref(null);\r\nconst dataForm: Ref<DataForm | null> = ref(null);\r\n\r\nconst routeTable = reactive(new MsRouteTable()) as MsRouteTable;\r\n\r\nwatch(\r\n computed(() => unref(router.currentRoute).meta.name as string),\r\n (name) => {\r\n dataTree.value = DataModelDefines.instance.getDataTree(name);\r\n\r\n dataForm.value = DataModelDefines.instance.getDataForm(name);\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst handleUrlClick = async (item: MsMenuItemNode) => {\r\n routeTable.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"menuId\", \"=\", item.id);\r\n });\r\n\r\n const result = await Dialoger.dataTableSelectDialog(routeTable);\r\n\r\n if (!result.isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n unref(dataTree)?.getLoadingManager().startLoading();\r\n\r\n const response = await DvOpt.createInstance({ name: \"ms-menu\" }).save({\r\n id: item.id,\r\n routeId: result.selections[0],\r\n });\r\n\r\n if (response.code !== 200) {\r\n ElMessage.error(response.msg);\r\n return;\r\n }\r\n\r\n unref(dataTree)?.load();\r\n\r\n ElMessage.success(\"更新成功\");\r\n } catch {\r\n ElMessage.error(\"网络异常\");\r\n } finally {\r\n unref(dataTree)?.getLoadingManager().completeLoading();\r\n }\r\n};\r\n\r\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\r\n\r\nonBeforeUnmount(() => {\r\n routeTable.dispose();\r\n});\r\n</script>\r\n"],"names":["useRouter","ref","reactive","MsRouteTable","watch","computed","unref","DataModelDefines","Dialoger","DvOpt","ElMessage","useSingleViewWithDialog","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer v-if=\"dataTree\">\r\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\r\n <MKTableView>\r\n <MKTableTree defaultExpandAll>\r\n <template #col-data.title-content=\"{ row }\">\r\n <MKSvgIcon :iconClass=\"row.data.iconName\" />\r\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\r\n <ElButton\r\n v-if=\"row.data.type === MenuType.Menu\"\r\n link\r\n type=\"primary\"\r\n class=\"ms-menu__url\"\r\n @click=\"handleUrlClick(row.data)\"\r\n >\r\n {{ row.data.targetUrl || \"空\" }}\r\n </ElButton>\r\n </template>\r\n </MKTableTree>\r\n </MKTableView>\r\n </MKDataTable>\r\n </MKPageContainer>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n unref,\r\n computed,\r\n watch,\r\n ref,\r\n Ref,\r\n reactive,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { DataForm, DataTree, Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { ElMessage } from \"element-plus\";\r\nimport { DataModelDefines } from \"../../../../core\";\r\nimport {\r\n MKPageContainer,\r\n MKDataTable,\r\n MKTableView,\r\n MKTableTree,\r\n} from \"../../../../components\";\r\nimport { useSingleViewWithDialog } from \"../../../../composables\";\r\nimport { MenuType } from \"../../../../constants\";\r\nimport { MsRouteTable, MsMenuItemNode } from \"../../dataviews\";\r\n\r\nconst router = useRouter();\r\n\r\nconst dataTree: Ref<DataTree | null> = ref(null);\r\nconst dataForm: Ref<DataForm | null> = ref(null);\r\n\r\nconst routeTable = reactive(new MsRouteTable()) as MsRouteTable;\r\n\r\nwatch(\r\n computed(() => unref(router.currentRoute).meta.name as string),\r\n (name) => {\r\n dataTree.value = DataModelDefines.instance.getDataTree(name);\r\n\r\n dataForm.value = DataModelDefines.instance.getDataForm(name);\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst handleUrlClick = async (item: MsMenuItemNode) => {\r\n routeTable.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"menuId\", \"=\", item.id);\r\n });\r\n\r\n const result = await Dialoger.dataTableSelectDialog(routeTable);\r\n\r\n if (!result.isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n unref(dataTree)?.getLoadingManager().startLoading();\r\n\r\n const response = await DvOpt.createInstance({ name: \"ms-menu\" }).save({\r\n id: item.id,\r\n routeId: result.selections[0],\r\n });\r\n\r\n if (response.code !== 200) {\r\n ElMessage.error(response.msg);\r\n return;\r\n }\r\n\r\n unref(dataTree)?.load();\r\n\r\n ElMessage.success(\"更新成功\");\r\n } catch {\r\n ElMessage.error(\"网络异常\");\r\n } finally {\r\n unref(dataTree)?.getLoadingManager().completeLoading();\r\n }\r\n};\r\n\r\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\r\n\r\nonBeforeUnmount(() => {\r\n routeTable.dispose();\r\n});\r\n</script>\r\n"],"names":["useRouter","ref","reactive","MsRouteTable","watch","computed","unref","DataModelDefines","Dialoger","DvOpt","ElMessage","useSingleViewWithDialog","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,UAAM,SAASA,UAAAA;AAET,UAAA,WAAiCC,QAAI,IAAI;AACzC,UAAA,WAAiCA,QAAI,IAAI;AAE/C,UAAM,aAAaC,IAAAA,SAAS,IAAIC,aAAAA,aAAc,CAAA;AAE9CC,QAAA;AAAA,MACEC,aAAS,MAAMC,IAAAA,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQC,iBAAA,iBAAiB,SAAS,YAAY,IAAI;AAE3D,iBAAS,QAAQA,iBAAA,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGd,UAAA,iBAAiB,OAAO,SAAyB;;AAC1C,iBAAA,aAAa,CAAC,iBAAiB;AACxC,qBAAa,MAAM;AACnB,qBAAa,aAAa,UAAU,KAAK,KAAK,EAAE;AAAA,MAAA,CACjD;AAED,YAAM,SAAS,MAAMC,GAAAA,SAAS,sBAAsB,UAAU;AAE1D,UAAA,CAAC,OAAO,WAAW;AACrB;AAAA,MACF;AAEI,UAAA;AACFF,kBAAAA,MAAM,QAAQ,MAAdA,mBAAiB,oBAAoB;AAE/B,cAAA,WAAW,MAAMG,QAAAA,MAAM,eAAe,EAAE,MAAM,UAAA,CAAW,EAAE,KAAK;AAAA,UACpE,IAAI,KAAK;AAAA,UACT,SAAS,OAAO,WAAW,CAAC;AAAA,QAAA,CAC7B;AAEG,YAAA,SAAS,SAAS,KAAK;AACfC,sBAAAA,UAAA,MAAM,SAAS,GAAG;AAC5B;AAAA,QACF;AAEMJ,wBAAA,QAAQ,MAARA,mBAAW;AAEjBI,8BAAU,QAAQ,MAAM;AAAA,MAAA,QAClB;AACNA,8BAAU,MAAM,MAAM;AAAA,MAAA,UACtB;AACAJ,kBAAAA,MAAM,QAAQ,MAAdA,mBAAiB,oBAAoB;AAAA,MACvC;AAAA,IAAA;AAGFK,kBAAAA,wBAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;AAEzDC,QAAAA,gBAAgB,MAAM;AACpB,iBAAW,QAAQ;AAAA,IAAA,CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,6 +36,8 @@ require("../../../../../components/business/resource-manager/index.js");
|
|
|
36
36
|
require("../../../../../core/DataModelDefines.js");
|
|
37
37
|
require("vue-router");
|
|
38
38
|
require("@maketribe/locale");
|
|
39
|
+
require("../../../dataviews/ms-config/MsConfigTable.js");
|
|
40
|
+
require("lodash-es");
|
|
39
41
|
const MsRoleForm = require("../../../dataviews/ms-role/MsRoleForm.js");
|
|
40
42
|
require("../../../dataviews/department/DepartmentForm.js");
|
|
41
43
|
require("../../../dataviews/department/DepartmentTable.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aside.vue.js","sources":["../../../../../../../src/modules/ms/pages/ms-role/components/aside.vue"],"sourcesContent":["<template>\r\n <div class=\"ms-role-aside\">\r\n <div class=\"ms-role-aside__main\" v-loading=\"loading\">\r\n <ElScrollbar height=\"100%\">\r\n <div class=\"ms-role-aside__role-list\">\r\n <div\r\n v-for=\"role in roles\"\r\n :class=\"[\r\n 'ms-role-aside__role-item',\r\n 'flex-box',\r\n role.id === currentRole?.id ? 'is-active' : '',\r\n ]\"\r\n :key=\"role.id\"\r\n @click=\"handleRoleClick(role)\"\r\n >\r\n <div class=\"flex-box-main\">\r\n <MKSvgIcon class=\"ms-role-aside__role-icon\" iconClass=\"User\" />\r\n <span class=\"ms-role-aside__role-desc\">{{ role.desc }}</span>\r\n </div>\r\n <div @click.prevent class=\"flex-box-tools\">\r\n <ElDropdown>\r\n <span class=\"ms-role-aside__icon\">\r\n <MKSvgIcon iconClass=\"MoreFilled\" />\r\n </span>\r\n\r\n <template #dropdown>\r\n <ElDropdownMenu>\r\n <ElDropdownItem :icon=\"Edit\" @click=\"handleMemberRoleEdit(role)\">\r\n 编辑\r\n </ElDropdownItem>\r\n <ElDropdownItem :icon=\"Delete\" @click=\"handleDelete(role)\">\r\n 删除\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n </template>\r\n </ElDropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, Ref, watch, computed, unref } from \"vue\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { Dialoger } from \"@maketribe/dm\";\r\nimport { Edit, Delete } from \"@element-plus/icons-vue\";\r\nimport { ElButton, ElMessage, ElScrollbar, ElMessageBox } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../../../components\";\r\nimport { MsRole, MsRoleForm } from \"../../../dataviews\";\r\n\r\nconst props = defineProps({\r\n roleForm: {\r\n type: MsRoleForm,\r\n required: true,\r\n },\r\n});\r\n\r\nconst emit = defineEmits([\"role-select\"]);\r\n\r\nconst dvOpt = DvOpt.createInstance({ name: \"ms-role\" });\r\n\r\nconst roles: Ref<MsRole[]> = ref([]);\r\n\r\nconst currentRole: Ref<MsRole | null> = ref(null);\r\n\r\nconst loading = ref(false);\r\n\r\nonMounted(() => {\r\n loadRoleList();\r\n});\r\n \r\nwatch(currentRole, () => {\r\n emit(\"role-select\", currentRole.value);\r\n}); \r\n \r\n//asdasda\r\nwatch(\r\n computed(() => props.roleForm),\r\n (roleForm, _, onCleanup) => {\r\n const disposable = roleForm.submittedEvent.on(() => {\r\n loadRoleList();\r\n });\r\n\r\n onCleanup(() => {\r\n disposable.dispose();\r\n });\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst loadRoleList = async () => {\r\n try {\r\n loading.value = true;\r\n\r\n roles.value = await dvOpt.query().list<MsRole>();\r\n\r\n // 加载完成之后默认选中第一个\r\n if(roles.value.length){\r\n handleRoleClick(roles.value[0])\r\n }\r\n\r\n } finally {\r\n loading.value = false;\r\n }\r\n};\r\n\r\nconst handleMemberRoleEdit = (role: MsRole) => {\r\n Dialoger.dataFormDialog({\r\n dataForm: props.roleForm,\r\n recId: role.id,\r\n });\r\n};\r\n\r\nconst handleRoleClick = (role: MsRole) => {\r\n currentRole.value = role;\r\n};\r\n\r\n\r\nconst handleDelete = async (role: MsRole) => {\r\n const isConfirm = await ElMessageBox.confirm(\"是否确认删除\", {\r\n type: \"warning\",\r\n }).then(\r\n () => true,\r\n () => false\r\n );\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n const result = await dvOpt.delete(role.id);\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"删除成功\" });\r\n\r\n if (unref(currentRole)?.id === role.id) {\r\n currentRole.value = null;\r\n }\r\n\r\n loadRoleList();\r\n } catch (e) {\r\n console.error(e);\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n</script>\r\n"],"names":["DvOpt","ref","onMounted","watch","computed","Dialoger","ElMessageBox","ElMessage","unref"],"mappings":"
|
|
1
|
+
{"version":3,"file":"aside.vue.js","sources":["../../../../../../../src/modules/ms/pages/ms-role/components/aside.vue"],"sourcesContent":["<template>\r\n <div class=\"ms-role-aside\">\r\n <div class=\"ms-role-aside__main\" v-loading=\"loading\">\r\n <ElScrollbar height=\"100%\">\r\n <div class=\"ms-role-aside__role-list\">\r\n <div\r\n v-for=\"role in roles\"\r\n :class=\"[\r\n 'ms-role-aside__role-item',\r\n 'flex-box',\r\n role.id === currentRole?.id ? 'is-active' : '',\r\n ]\"\r\n :key=\"role.id\"\r\n @click=\"handleRoleClick(role)\"\r\n >\r\n <div class=\"flex-box-main\">\r\n <MKSvgIcon class=\"ms-role-aside__role-icon\" iconClass=\"User\" />\r\n <span class=\"ms-role-aside__role-desc\">{{ role.desc }}</span>\r\n </div>\r\n <div @click.prevent class=\"flex-box-tools\">\r\n <ElDropdown>\r\n <span class=\"ms-role-aside__icon\">\r\n <MKSvgIcon iconClass=\"MoreFilled\" />\r\n </span>\r\n\r\n <template #dropdown>\r\n <ElDropdownMenu>\r\n <ElDropdownItem :icon=\"Edit\" @click=\"handleMemberRoleEdit(role)\">\r\n 编辑\r\n </ElDropdownItem>\r\n <ElDropdownItem :icon=\"Delete\" @click=\"handleDelete(role)\">\r\n 删除\r\n </ElDropdownItem>\r\n </ElDropdownMenu>\r\n </template>\r\n </ElDropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, Ref, watch, computed, unref } from \"vue\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { Dialoger } from \"@maketribe/dm\";\r\nimport { Edit, Delete } from \"@element-plus/icons-vue\";\r\nimport { ElButton, ElMessage, ElScrollbar, ElMessageBox } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../../../components\";\r\nimport { MsRole, MsRoleForm } from \"../../../dataviews\";\r\n\r\nconst props = defineProps({\r\n roleForm: {\r\n type: MsRoleForm,\r\n required: true,\r\n },\r\n});\r\n\r\nconst emit = defineEmits([\"role-select\"]);\r\n\r\nconst dvOpt = DvOpt.createInstance({ name: \"ms-role\" });\r\n\r\nconst roles: Ref<MsRole[]> = ref([]);\r\n\r\nconst currentRole: Ref<MsRole | null> = ref(null);\r\n\r\nconst loading = ref(false);\r\n\r\nonMounted(() => {\r\n loadRoleList();\r\n});\r\n \r\nwatch(currentRole, () => {\r\n emit(\"role-select\", currentRole.value);\r\n}); \r\n \r\n//asdasda\r\nwatch(\r\n computed(() => props.roleForm),\r\n (roleForm, _, onCleanup) => {\r\n const disposable = roleForm.submittedEvent.on(() => {\r\n loadRoleList();\r\n });\r\n\r\n onCleanup(() => {\r\n disposable.dispose();\r\n });\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst loadRoleList = async () => {\r\n try {\r\n loading.value = true;\r\n\r\n roles.value = await dvOpt.query().list<MsRole>();\r\n\r\n // 加载完成之后默认选中第一个\r\n if(roles.value.length){\r\n handleRoleClick(roles.value[0])\r\n }\r\n\r\n } finally {\r\n loading.value = false;\r\n }\r\n};\r\n\r\nconst handleMemberRoleEdit = (role: MsRole) => {\r\n Dialoger.dataFormDialog({\r\n dataForm: props.roleForm,\r\n recId: role.id,\r\n });\r\n};\r\n\r\nconst handleRoleClick = (role: MsRole) => {\r\n currentRole.value = role;\r\n};\r\n\r\n\r\nconst handleDelete = async (role: MsRole) => {\r\n const isConfirm = await ElMessageBox.confirm(\"是否确认删除\", {\r\n type: \"warning\",\r\n }).then(\r\n () => true,\r\n () => false\r\n );\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n const result = await dvOpt.delete(role.id);\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"删除成功\" });\r\n\r\n if (unref(currentRole)?.id === role.id) {\r\n currentRole.value = null;\r\n }\r\n\r\n loadRoleList();\r\n } catch (e) {\r\n console.error(e);\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n</script>\r\n"],"names":["DvOpt","ref","onMounted","watch","computed","Dialoger","ElMessageBox","ElMessage","unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAEb,UAAM,QAAQA,QAAAA,MAAM,eAAe,EAAE,MAAM,WAAW;AAEhD,UAAA,QAAuBC,QAAI,CAAA,CAAE;AAE7B,UAAA,cAAkCA,QAAI,IAAI;AAE1C,UAAA,UAAUA,QAAI,KAAK;AAEzBC,QAAAA,UAAU,MAAM;AACD;IAAA,CACd;AAEDC,QAAA,MAAM,aAAa,MAAM;AAClB,WAAA,eAAe,YAAY,KAAK;AAAA,IAAA,CACtC;AAGDA,QAAA;AAAA,MACEC,aAAS,MAAM,MAAM,QAAQ;AAAA,MAC7B,CAAC,UAAU,GAAG,cAAc;AAC1B,cAAM,aAAa,SAAS,eAAe,GAAG,MAAM;AACrC;QAAA,CACd;AAED,kBAAU,MAAM;AACd,qBAAW,QAAQ;AAAA,QAAA,CACpB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,UAAM,eAAe,YAAY;AAC3B,UAAA;AACF,gBAAQ,QAAQ;AAEhB,cAAM,QAAQ,MAAM,MAAM,QAAQ,KAAa;AAG5C,YAAA,MAAM,MAAM,QAAO;AACJ,0BAAA,MAAM,MAAM,CAAC,CAAC;AAAA,QAChC;AAAA,MAAA,UAEA;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGI,UAAA,uBAAuB,CAAC,SAAiB;AAC7CC,SAAAA,SAAS,eAAe;AAAA,QACtB,UAAU,MAAM;AAAA,QAChB,OAAO,KAAK;AAAA,MAAA,CACb;AAAA,IAAA;AAGG,UAAA,kBAAkB,CAAC,SAAiB;AACxC,kBAAY,QAAQ;AAAA,IAAA;AAIhB,UAAA,eAAe,OAAO,SAAiB;;AAC3C,YAAM,YAAY,MAAMC,yBAAa,QAAQ,UAAU;AAAA,QACrD,MAAM;AAAA,MACP,CAAA,EAAE;AAAA,QACD,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAGR,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEI,UAAA;AACF,cAAM,SAAS,MAAM,MAAM,OAAO,KAAK,EAAE;AAErC,YAAA,OAAO,SAAS,KAAK;AACvBC,sBAAA,UAAU,MAAM,EAAE,SAAS,OAAO,IAAK,CAAA;AACvC;AAAA,QACF;AAEAA,oBAAAA,UAAU,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAErC,cAAIC,SAAM,MAAA,WAAW,MAAjBA,mBAAoB,QAAO,KAAK,IAAI;AACtC,sBAAY,QAAQ;AAAA,QACtB;AAEa;eACN,GAAG;AACV,gBAAQ,MAAM,CAAC;AACfD,oBAAAA,UAAU,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,MACrC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -8,6 +8,8 @@ require("../../../../../../core/DataModelDefines.js");
|
|
|
8
8
|
require("vue-router");
|
|
9
9
|
require("@maketribe/request");
|
|
10
10
|
require("@maketribe/locale");
|
|
11
|
+
require("../../../../dataviews/ms-config/MsConfigTable.js");
|
|
12
|
+
require("lodash-es");
|
|
11
13
|
const MsRolePermissionConfigTable = require("../../../../dataviews/ms-role/MsRolePermissionConfigTable.js");
|
|
12
14
|
require("../../../../../../components/basic/svg-icon/index.js");
|
|
13
15
|
require("../../../../../../components/data-model/data-form/index.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-permission-config-options.js","sources":["../../../../../../../../src/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { RolePermissionConfigTable } from \"../../../../dataviews\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\n\r\nexport const rolePermissionConfigProps = buildProps({\r\n rolePermissionConfigTable: {\r\n type: RolePermissionConfigTable,\r\n required: true,\r\n },\r\n} as const);\r\n\r\nexport type RolePermissionConfigProps = ExtractPropTypes<\r\n typeof rolePermissionConfigProps\r\n>;\r\n\r\nexport const rolePermissionConfigEmits = {\r\n roleChange: (id: any) => true,\r\n};\r\n\r\nexport type RolePermissionConfigEmits = typeof rolePermissionConfigEmits;\r\n"],"names":["buildProps","RolePermissionConfigTable"],"mappings":"
|
|
1
|
+
{"version":3,"file":"role-permission-config-options.js","sources":["../../../../../../../../src/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { RolePermissionConfigTable } from \"../../../../dataviews\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\n\r\nexport const rolePermissionConfigProps = buildProps({\r\n rolePermissionConfigTable: {\r\n type: RolePermissionConfigTable,\r\n required: true,\r\n },\r\n} as const);\r\n\r\nexport type RolePermissionConfigProps = ExtractPropTypes<\r\n typeof rolePermissionConfigProps\r\n>;\r\n\r\nexport const rolePermissionConfigEmits = {\r\n roleChange: (id: any) => true,\r\n};\r\n\r\nexport type RolePermissionConfigEmits = typeof rolePermissionConfigEmits;\r\n"],"names":["buildProps","RolePermissionConfigTable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,4BAA4BA,MAAAA,WAAW;AAAA,EAClD,2BAA2B;AAAA,IACzB,MAAMC,4BAAA;AAAA,IACN,UAAU;AAAA,EACZ;AACF,CAAU;AAMH,MAAM,4BAA4B;AAAA,EACvC,YAAY,CAAC,OAAY;AAC3B;;;"}
|
|
@@ -35,6 +35,8 @@ require("../../../../components/business/resource-manager/index.js");
|
|
|
35
35
|
require("../../../../core/DataModelDefines.js");
|
|
36
36
|
require("vue-router");
|
|
37
37
|
require("@maketribe/locale");
|
|
38
|
+
require("../../dataviews/ms-config/MsConfigTable.js");
|
|
39
|
+
require("lodash-es");
|
|
38
40
|
const MsRoleForm = require("../../dataviews/ms-role/MsRoleForm.js");
|
|
39
41
|
const MsRolePermissionConfigTable = require("../../dataviews/ms-role/MsRolePermissionConfigTable.js");
|
|
40
42
|
const MsMemberRoleTable = require("../../dataviews/ms-member-role/MsMemberRoleTable.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-role/index.vue"],"sourcesContent":["<template>\r\n<div class=\"ms-role\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);margin-left: 10px;\">\r\n <MKSvgIcon iconClass=\"jiaoseguanli\" style=\"margin-right: 5px;\" />\r\n 角色管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <el-button type=\"primary\" text @click=\"handleAddRoleClick\" style=\"margin-right: 10px;\">\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-right: 5px;\" />\r\n 添加角色\r\n </el-button>\r\n </template>\r\n </el-page-header>\r\n <div class=\"ms-role__body-warp\">\r\n <div class=\"ms-role__aside\">\r\n <RoleAside\r\n @role-select=\"handleRoleSelect\"\r\n :role-form=\"roleForm\"\r\n ref=\"RoleAsideEl\"\r\n />\r\n </div>\r\n <div class=\"ms-role__main\">\r\n <div class=\"ms-role__content\" v-if=\"currentRole\">\r\n <div class=\"flex-box\">\r\n <div class=\"ms-role__title flex-box-main\">\r\n <MKSvgIcon class=\"ms-role-aside__role-icon\" iconClass=\"User\" />\r\n {{ currentRole.desc }}\r\n </div>\r\n <div class=\"ms-role__tools\">\r\n <ElButton type=\"primary\" text @click=\"handlePermissionEdit\">\r\n <template #icon>\r\n <MKSvgIcon iconClass=\"Key\" />\r\n </template>\r\n 权限设置\r\n </ElButton>\r\n <ElButton type=\"primary\" @click=\"handleSelectUserClick\">\r\n <template #icon>\r\n <MKSvgIcon iconClass=\"User\" />\r\n </template>\r\n 添加成员\r\n </ElButton>\r\n <ElButton\r\n :disabled=\"disabledBatchDelete\"\r\n @click=\"handleBatchDelete\"\r\n >\r\n 批量删除\r\n </ElButton>\r\n </div>\r\n </div>\r\n <MKDataTable :data-table=\"memberRoleTable\">\r\n <MKTable />\r\n <MKDataTablePagination />\r\n </MKDataTable>\r\n </div>\r\n </div>\r\n </div>\r\n <ElDialog v-model=\"isShowPermissionDialog\" appendToBody width=\"80%\">\r\n <MKRolePermissionConfig :rolePermissionConfigTable=\"rolePermissionConfigTable\" />\r\n </ElDialog>\r\n</div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n reactive,\r\n Ref,\r\n ref,\r\n watch,\r\n unref,\r\n computed,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { ElButton, ElMessage, ElMessageBox } from \"element-plus\";\r\nimport { Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { MKDataTable } from \"../../../../components\";\r\nimport {\r\n MsRole,\r\n MsMemberRoleTable,\r\n MsRoleForm,\r\n RolePermissionConfigTable,\r\n} from \"../../dataviews\";\r\nimport RoleAside from \"./components/aside.vue\";\r\nimport { MKRolePermissionConfig } from \"./components/role-permission-config\";\r\n\r\nconst dvOpt = DvOpt.createInstance({ name: \"ms-member-role\" });\r\n\r\nconst currentRole: Ref<MsRole | null> = ref(null);\r\n\r\nconst isShowPermissionDialog = ref(false);\r\n\r\nconst memberRoleTable = reactive(new MsMemberRoleTable()) as MsMemberRoleTable;\r\n\r\nconst roleForm = reactive(new MsRoleForm()) as MsRoleForm;\r\nconst rolePermissionConfigTable = reactive(\r\n new RolePermissionConfigTable()\r\n) as RolePermissionConfigTable;\r\n\r\nconst disabledBatchDelete = computed(\r\n () => memberRoleTable.getSelection().length === 0\r\n);\r\n\r\nwatch(currentRole, (currentRole) => {\r\n memberRoleTable.setCurrentRole(currentRole);\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n memberRoleTable.dispose();\r\n roleForm.dispose();\r\n rolePermissionConfigTable.dispose();\r\n});\r\n\r\nconst handleAddRoleClick = () => {\r\n Dialoger.dataFormDialog({\r\n dataForm: roleForm\r\n });\r\n};\r\n\r\nconst handleRoleSelect = (role: MsRole) => {\r\n currentRole.value = role;\r\n};\r\n\r\nconst handleSelectUserClick = async () => {\r\n const selectResult = await Dialoger.dataTableSelectDialog(\r\n memberRoleTable.memberTable\r\n );\r\n\r\n if (!selectResult.isConfirm) {\r\n return;\r\n }\r\n\r\n const roleId = unref(currentRole)!.id;\r\n\r\n const memberRoleList = selectResult.selections.map((item) => ({\r\n roleId,\r\n memberId: item,\r\n }));\r\n\r\n try {\r\n const result = await dvOpt.batchSave(memberRoleList);\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"添加成功\" });\r\n\r\n memberRoleTable.load();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n\r\nconst handleBatchDelete = async () => {\r\n const isConfirm = await ElMessageBox.confirm(\"是否确认删除\", {\r\n type: \"warning\",\r\n }).then(\r\n () => true,\r\n () => false\r\n );\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n const result = await dvOpt.batchDelete(memberRoleTable.getSelection());\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"删除成功\" });\r\n memberRoleTable.load();\r\n } catch (e) {\r\n console.error(e);\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n\r\nconst handlePermissionEdit = () => {\r\n rolePermissionConfigTable.selectRolePermission(unref(currentRole)!);\r\n\r\n isShowPermissionDialog.value = true;\r\n};\r\n</script>\r\n"],"names":["DvOpt","ref","reactive","MsMemberRoleTable","MsRoleForm","RolePermissionConfigTable","computed","watch","currentRole","onBeforeUnmount","Dialoger","unref","ElMessage","ElMessageBox"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-role/index.vue"],"sourcesContent":["<template>\r\n<div class=\"ms-role\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);margin-left: 10px;\">\r\n <MKSvgIcon iconClass=\"jiaoseguanli\" style=\"margin-right: 5px;\" />\r\n 角色管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <el-button type=\"primary\" text @click=\"handleAddRoleClick\" style=\"margin-right: 10px;\">\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-right: 5px;\" />\r\n 添加角色\r\n </el-button>\r\n </template>\r\n </el-page-header>\r\n <div class=\"ms-role__body-warp\">\r\n <div class=\"ms-role__aside\">\r\n <RoleAside\r\n @role-select=\"handleRoleSelect\"\r\n :role-form=\"roleForm\"\r\n ref=\"RoleAsideEl\"\r\n />\r\n </div>\r\n <div class=\"ms-role__main\">\r\n <div class=\"ms-role__content\" v-if=\"currentRole\">\r\n <div class=\"flex-box\">\r\n <div class=\"ms-role__title flex-box-main\">\r\n <MKSvgIcon class=\"ms-role-aside__role-icon\" iconClass=\"User\" />\r\n {{ currentRole.desc }}\r\n </div>\r\n <div class=\"ms-role__tools\">\r\n <ElButton type=\"primary\" text @click=\"handlePermissionEdit\">\r\n <template #icon>\r\n <MKSvgIcon iconClass=\"Key\" />\r\n </template>\r\n 权限设置\r\n </ElButton>\r\n <ElButton type=\"primary\" @click=\"handleSelectUserClick\">\r\n <template #icon>\r\n <MKSvgIcon iconClass=\"User\" />\r\n </template>\r\n 添加成员\r\n </ElButton>\r\n <ElButton\r\n :disabled=\"disabledBatchDelete\"\r\n @click=\"handleBatchDelete\"\r\n >\r\n 批量删除\r\n </ElButton>\r\n </div>\r\n </div>\r\n <MKDataTable :data-table=\"memberRoleTable\">\r\n <MKTable />\r\n <MKDataTablePagination />\r\n </MKDataTable>\r\n </div>\r\n </div>\r\n </div>\r\n <ElDialog v-model=\"isShowPermissionDialog\" appendToBody width=\"80%\">\r\n <MKRolePermissionConfig :rolePermissionConfigTable=\"rolePermissionConfigTable\" />\r\n </ElDialog>\r\n</div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n reactive,\r\n Ref,\r\n ref,\r\n watch,\r\n unref,\r\n computed,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { ElButton, ElMessage, ElMessageBox } from \"element-plus\";\r\nimport { Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { MKDataTable } from \"../../../../components\";\r\nimport {\r\n MsRole,\r\n MsMemberRoleTable,\r\n MsRoleForm,\r\n RolePermissionConfigTable,\r\n} from \"../../dataviews\";\r\nimport RoleAside from \"./components/aside.vue\";\r\nimport { MKRolePermissionConfig } from \"./components/role-permission-config\";\r\n\r\nconst dvOpt = DvOpt.createInstance({ name: \"ms-member-role\" });\r\n\r\nconst currentRole: Ref<MsRole | null> = ref(null);\r\n\r\nconst isShowPermissionDialog = ref(false);\r\n\r\nconst memberRoleTable = reactive(new MsMemberRoleTable()) as MsMemberRoleTable;\r\n\r\nconst roleForm = reactive(new MsRoleForm()) as MsRoleForm;\r\nconst rolePermissionConfigTable = reactive(\r\n new RolePermissionConfigTable()\r\n) as RolePermissionConfigTable;\r\n\r\nconst disabledBatchDelete = computed(\r\n () => memberRoleTable.getSelection().length === 0\r\n);\r\n\r\nwatch(currentRole, (currentRole) => {\r\n memberRoleTable.setCurrentRole(currentRole);\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n memberRoleTable.dispose();\r\n roleForm.dispose();\r\n rolePermissionConfigTable.dispose();\r\n});\r\n\r\nconst handleAddRoleClick = () => {\r\n Dialoger.dataFormDialog({\r\n dataForm: roleForm\r\n });\r\n};\r\n\r\nconst handleRoleSelect = (role: MsRole) => {\r\n currentRole.value = role;\r\n};\r\n\r\nconst handleSelectUserClick = async () => {\r\n const selectResult = await Dialoger.dataTableSelectDialog(\r\n memberRoleTable.memberTable\r\n );\r\n\r\n if (!selectResult.isConfirm) {\r\n return;\r\n }\r\n\r\n const roleId = unref(currentRole)!.id;\r\n\r\n const memberRoleList = selectResult.selections.map((item) => ({\r\n roleId,\r\n memberId: item,\r\n }));\r\n\r\n try {\r\n const result = await dvOpt.batchSave(memberRoleList);\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"添加成功\" });\r\n\r\n memberRoleTable.load();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n\r\nconst handleBatchDelete = async () => {\r\n const isConfirm = await ElMessageBox.confirm(\"是否确认删除\", {\r\n type: \"warning\",\r\n }).then(\r\n () => true,\r\n () => false\r\n );\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n const result = await dvOpt.batchDelete(memberRoleTable.getSelection());\r\n\r\n if (result.code !== 200) {\r\n ElMessage.error({ message: result.msg });\r\n return;\r\n }\r\n\r\n ElMessage.success({ message: \"删除成功\" });\r\n memberRoleTable.load();\r\n } catch (e) {\r\n console.error(e);\r\n ElMessage.error({ message: \"网络异常\" });\r\n }\r\n};\r\n\r\nconst handlePermissionEdit = () => {\r\n rolePermissionConfigTable.selectRolePermission(unref(currentRole)!);\r\n\r\n isShowPermissionDialog.value = true;\r\n};\r\n</script>\r\n"],"names":["DvOpt","ref","reactive","MsMemberRoleTable","MsRoleForm","RolePermissionConfigTable","computed","watch","currentRole","onBeforeUnmount","Dialoger","unref","ElMessage","ElMessageBox"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQA,QAAAA,MAAM,eAAe,EAAE,MAAM,kBAAkB;AAEvD,UAAA,cAAkCC,QAAI,IAAI;AAE1C,UAAA,yBAAyBA,QAAI,KAAK;AAExC,UAAM,kBAAkBC,IAAAA,SAAS,IAAIC,kBAAAA,kBAAmB,CAAA;AAExD,UAAM,WAAWD,IAAAA,SAAS,IAAIE,WAAAA,WAAY,CAAA;AAC1C,UAAM,4BAA4BF,IAAA;AAAA,MAChC,IAAIG,sDAA0B;AAAA,IAAA;AAGhC,UAAM,sBAAsBC,IAAA;AAAA,MAC1B,MAAM,gBAAgB,eAAe,WAAW;AAAA,IAAA;AAG5CC,cAAA,aAAa,CAACC,iBAAgB;AAClC,sBAAgB,eAAeA,YAAW;AAAA,IAAA,CAC3C;AAEDC,QAAAA,gBAAgB,MAAM;AACpB,sBAAgB,QAAQ;AACxB,eAAS,QAAQ;AACjB,gCAA0B,QAAQ;AAAA,IAAA,CACnC;AAED,UAAM,qBAAqB,MAAM;AAC/BC,SAAAA,SAAS,eAAe;AAAA,QACtB,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAGG,UAAA,mBAAmB,CAAC,SAAiB;AACzC,kBAAY,QAAQ;AAAA,IAAA;AAGtB,UAAM,wBAAwB,YAAY;AAClC,YAAA,eAAe,MAAMA,GAAAA,SAAS;AAAA,QAClC,gBAAgB;AAAA,MAAA;AAGd,UAAA,CAAC,aAAa,WAAW;AAC3B;AAAA,MACF;AAEM,YAAA,SAASC,IAAAA,MAAM,WAAW,EAAG;AAEnC,YAAM,iBAAiB,aAAa,WAAW,IAAI,CAAC,UAAU;AAAA,QAC5D;AAAA,QACA,UAAU;AAAA,MACV,EAAA;AAEE,UAAA;AACF,cAAM,SAAS,MAAM,MAAM,UAAU,cAAc;AAE/C,YAAA,OAAO,SAAS,KAAK;AACvBC,sBAAA,UAAU,MAAM,EAAE,SAAS,OAAO,IAAK,CAAA;AACvC;AAAA,QACF;AAEAA,oBAAAA,UAAU,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAErC,wBAAgB,KAAK;AAAA,eACd,GAAG;AACV,gBAAQ,MAAM,CAAC;AAEfA,oBAAAA,UAAU,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,MACrC;AAAA,IAAA;AAGF,UAAM,oBAAoB,YAAY;AACpC,YAAM,YAAY,MAAMC,yBAAa,QAAQ,UAAU;AAAA,QACrD,MAAM;AAAA,MACP,CAAA,EAAE;AAAA,QACD,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAGR,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEI,UAAA;AACF,cAAM,SAAS,MAAM,MAAM,YAAY,gBAAgB,cAAc;AAEjE,YAAA,OAAO,SAAS,KAAK;AACvBD,sBAAA,UAAU,MAAM,EAAE,SAAS,OAAO,IAAK,CAAA;AACvC;AAAA,QACF;AAEAA,oBAAAA,UAAU,QAAQ,EAAE,SAAS,OAAQ,CAAA;AACrC,wBAAgB,KAAK;AAAA,eACd,GAAG;AACV,gBAAQ,MAAM,CAAC;AACfA,oBAAAA,UAAU,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,MACrC;AAAA,IAAA;AAGF,UAAM,uBAAuB,MAAM;AACP,gCAAA,qBAAqBD,UAAM,WAAW,CAAE;AAElE,6BAAuB,QAAQ;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -39,7 +39,9 @@ async function ImageCropper(options) {
|
|
|
39
39
|
"ref": (el) => imageCropperContentEl.value = el,
|
|
40
40
|
"src": options.src,
|
|
41
41
|
"fixedBox": fixedBox,
|
|
42
|
-
"ratioOptions": ratioOptions
|
|
42
|
+
"ratioOptions": ratioOptions,
|
|
43
|
+
"maxHeight": options.maxHeight,
|
|
44
|
+
"maxWidth": options.maxWidth
|
|
43
45
|
}, null);
|
|
44
46
|
},
|
|
45
47
|
footer: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-cropper-api.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-api.tsx"],"sourcesContent":["import { Dialoger } from \"@maketribe/dm\";\r\nimport ImageCropperContent, {\r\n ImageCropperRatioOption,\r\n} from \"./image-cropper-content\";\r\nimport { Fragment } from \"vue/jsx-runtime\";\r\nimport { ElButton } from \"element-plus\";\r\nimport { ref, Ref, unref } from \"vue\";\r\n\r\nexport type MKImageCropperOptions = {\r\n src: string;\r\n ratioOptions?: Array<ImageCropperRatioOption>;\r\n fixedBox?: boolean;\r\n};\r\nexport type MKImageCropperResult = {\r\n isConfirm: boolean;\r\n data: string;\r\n size: { width: number; height: number };\r\n};\r\n\r\nexport async function ImageCropper(\r\n options: MKImageCropperOptions\r\n): Promise<MKImageCropperResult> {\r\n const ratioOptions = options.ratioOptions ?? [];\r\n const fixedBox = options.fixedBox ?? false;\r\n\r\n return new Promise((resolve) => {\r\n const imageCropperContentEl: Ref<typeof ImageCropperContent | null> =\r\n ref(null);\r\n\r\n const handleCancelClick = () => {\r\n dialogInstance.destroy();\r\n\r\n resolve({\r\n isConfirm: false,\r\n data: \"\",\r\n size: { width: 0, height: 0 },\r\n });\r\n };\r\n\r\n const handleConfirmClick = async () => {\r\n dialogInstance.destroy();\r\n\r\n const cropperRef = unref(imageCropperContentEl)!.cropperRef;\r\n\r\n resolve({\r\n isConfirm: true,\r\n data: await new Promise(cropperRef.getCropData.bind(cropperRef)),\r\n size: { width: cropperRef.cropW, height: cropperRef.cropH },\r\n });\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"图片裁切\",\r\n onClose: handleCancelClick,\r\n body: () => {\r\n return (\r\n <ImageCropperContent\r\n ref={((el: any) => (imageCropperContentEl.value = el)) as any}\r\n src={options.src}\r\n fixedBox={fixedBox}\r\n ratioOptions={ratioOptions}\r\n />\r\n );\r\n },\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n <ElButton type=\"primary\" onClick={handleConfirmClick}>\r\n 确认\r\n </ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["ImageCropper","options","ratioOptions","fixedBox","Promise","resolve","imageCropperContentEl","ref","handleCancelClick","dialogInstance","destroy","isConfirm","data","size","width","height","handleConfirmClick","cropperRef","unref","getCropData","bind","cropW","cropH","Dialoger","customRender","title","onClose","body","_createVNode","ImageCropperContent","el","value","src","footer","_Fragment","ElButton","default","_createTextVNode"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"image-cropper-api.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-api.tsx"],"sourcesContent":["import { Dialoger } from \"@maketribe/dm\";\r\nimport ImageCropperContent, {\r\n ImageCropperRatioOption,\r\n} from \"./image-cropper-content\";\r\nimport { Fragment } from \"vue/jsx-runtime\";\r\nimport { ElButton } from \"element-plus\";\r\nimport { ref, Ref, unref } from \"vue\";\r\n\r\nexport type MKImageCropperOptions = {\r\n src: string;\r\n ratioOptions?: Array<ImageCropperRatioOption>;\r\n fixedBox?: boolean;\r\n maxWidth?:number;\r\n maxHeight?:number;\r\n};\r\nexport type MKImageCropperResult = {\r\n isConfirm: boolean;\r\n data: string;\r\n size: { width: number; height: number };\r\n};\r\n\r\nexport async function ImageCropper(\r\n options: MKImageCropperOptions\r\n): Promise<MKImageCropperResult> {\r\n const ratioOptions = options.ratioOptions ?? [];\r\n const fixedBox = options.fixedBox ?? false;\r\n\r\n return new Promise((resolve) => {\r\n const imageCropperContentEl: Ref<typeof ImageCropperContent | null> =\r\n ref(null);\r\n\r\n const handleCancelClick = () => {\r\n dialogInstance.destroy();\r\n\r\n resolve({\r\n isConfirm: false,\r\n data: \"\",\r\n size: { width: 0, height: 0 },\r\n });\r\n };\r\n\r\n const handleConfirmClick = async () => {\r\n dialogInstance.destroy();\r\n\r\n const cropperRef = unref(imageCropperContentEl)!.cropperRef;\r\n\r\n resolve({\r\n isConfirm: true,\r\n data: await new Promise(cropperRef.getCropData.bind(cropperRef)),\r\n size: { width: cropperRef.cropW, height: cropperRef.cropH },\r\n });\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"图片裁切\",\r\n onClose: handleCancelClick,\r\n body: () => {\r\n return (\r\n <ImageCropperContent\r\n ref={((el: any) => (imageCropperContentEl.value = el)) as any}\r\n src={options.src}\r\n fixedBox={fixedBox}\r\n ratioOptions={ratioOptions}\r\n maxHeight={options.maxHeight}\r\n maxWidth={options.maxWidth}\r\n />\r\n );\r\n },\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n <ElButton type=\"primary\" onClick={handleConfirmClick}>\r\n 确认\r\n </ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["ImageCropper","options","ratioOptions","fixedBox","Promise","resolve","imageCropperContentEl","ref","handleCancelClick","dialogInstance","destroy","isConfirm","data","size","width","height","handleConfirmClick","cropperRef","unref","getCropData","bind","cropW","cropH","Dialoger","customRender","title","onClose","body","_createVNode","ImageCropperContent","el","value","src","maxHeight","maxWidth","footer","_Fragment","ElButton","default","_createTextVNode"],"mappings":";;;;;AAqBO,eAAeA,aACpBC,SAC+B;AAC/B,QAAMC,eAAeD,QAAQC,gBAAgB;AAC7C,QAAMC,WAAWF,QAAQE,YAAY;AAErC,SAAO,IAAIC,QAASC,aAAY;AAC9B,UAAMC,wBACJC,IAAI,IAAI;AAEV,UAAMC,oBAAoBA,MAAM;AAC9BC,qBAAeC,QAAO;AAEtBL,cAAQ;AAAA,QACNM,WAAW;AAAA,QACXC,MAAM;AAAA,QACNC,MAAM;AAAA,UAAEC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAE;AAAA,MAC9B,CAAC;AAAA;AAGH,UAAMC,qBAAqB,YAAY;AACrCP,qBAAeC,QAAO;AAEtB,YAAMO,aAAaC,MAAMZ,qBAAqB,EAAGW;AAEjDZ,cAAQ;AAAA,QACNM,WAAW;AAAA,QACXC,MAAM,MAAM,IAAIR,QAAQa,WAAWE,YAAYC,KAAKH,UAAU,CAAC;AAAA,QAC/DJ,MAAM;AAAA,UAAEC,OAAOG,WAAWI;AAAAA,UAAON,QAAQE,WAAWK;AAAAA,QAAM;AAAA,MAC5D,CAAC;AAAA;AAGH,UAAMb,iBAAiBc,SAASC,aAAa;AAAA,MAC3CC,OAAO;AAAA,MACPC,SAASlB;AAAAA,MACTmB,MAAMA,MAAM;AACV,eAAAC,YAAAC,qBAAA;AAAA,UAAA,OAEWC,QAAaxB,sBAAsByB,QAAQD;AAAAA,UAAG,OAChD7B,QAAQ+B;AAAAA,UAAG,YACN7B;AAAAA,UAAQ,gBACJD;AAAAA,UAAY,aACfD,QAAQgC;AAAAA,UAAS,YAClBhC,QAAQiC;AAAAA,QAAQ,GAAA,IAAA;AAAA,MAG/B;AAAA,MACDC,QAAQA,MAAM;AACZ,eAAAP,YAAAQ,UAAAR,MAAAA,CAAAA,YAAAS,UAAA;AAAA,UAAA,WAEuB7B;AAAAA,QAAiB,GAAA;AAAA,UAAA8B,SAAAA,MAAA,CAAAC,gBAAA,IAAA,CAAA;AAAA,SAAAX,GAAAA,YAAAS,UAAA;AAAA,UAAA,QAAA;AAAA,UAAA,WACFrB;AAAAA,QAAkB,GAAA;AAAA,UAAAsB,SAAAA,MAAA,CAAAC,gBAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAK1D;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;"}
|
|
@@ -3,6 +3,8 @@ const imageCropperContentProps = buildProps({
|
|
|
3
3
|
// modelValue: { type: String, required: true },
|
|
4
4
|
src: { type: String, required: true },
|
|
5
5
|
fixedBox: { type: Boolean, default: false },
|
|
6
|
+
maxWidth: { type: Number, default: 0 },
|
|
7
|
+
maxHeight: { type: Number, default: 0 },
|
|
6
8
|
ratioOptions: {
|
|
7
9
|
type: Array,
|
|
8
10
|
default: () => []
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-cropper-content-options.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-content-options.ts"],"sourcesContent":["import { buildProps } from \"@maketribe/utils\";\r\nimport { ExtractPropTypes } from \"vue\";\r\n\r\nexport const imageCropperContentProps = buildProps({\r\n // modelValue: { type: String, required: true },\r\n src: { type: String, required: true },\r\n fixedBox: { type: Boolean, default: false },\r\n ratioOptions: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n} as const);\r\n\r\nexport type ImageCropperContentProps = ExtractPropTypes<\r\n typeof imageCropperContentProps\r\n>;\r\n\r\nexport const imageCropperContentEmits = {\r\n // \"update:model-value\": (modelValue: string) => true,\r\n};\r\n\r\nexport type ImageCropperContentEmits = typeof imageCropperContentEmits;\r\n"],"names":[],"mappings":";AAGO,MAAM,2BAA2B,WAAW;AAAA;AAAA,EAEjD,KAAK,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC1C,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAM,CAAC;AAAA,EAClB;AACF,CAAU;AAMH,MAAM,2BAA2B;AAAA;AAExC;"}
|
|
1
|
+
{"version":3,"file":"image-cropper-content-options.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-content-options.ts"],"sourcesContent":["import { buildProps } from \"@maketribe/utils\";\r\nimport { ExtractPropTypes } from \"vue\";\r\n\r\nexport const imageCropperContentProps = buildProps({\r\n // modelValue: { type: String, required: true },\r\n src: { type: String, required: true },\r\n fixedBox: { type: Boolean, default: false },\r\n maxWidth:{ type:Number,default:0},\r\n maxHeight:{ type:Number,default:0},\r\n ratioOptions: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n} as const);\r\n\r\nexport type ImageCropperContentProps = ExtractPropTypes<\r\n typeof imageCropperContentProps\r\n>;\r\n\r\nexport const imageCropperContentEmits = {\r\n // \"update:model-value\": (modelValue: string) => true,\r\n};\r\n\r\nexport type ImageCropperContentEmits = typeof imageCropperContentEmits;\r\n"],"names":[],"mappings":";AAGO,MAAM,2BAA2B,WAAW;AAAA;AAAA,EAEjD,KAAK,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC1C,UAAS,EAAE,MAAK,QAAO,SAAQ,EAAC;AAAA,EAChC,WAAU,EAAE,MAAK,QAAO,SAAQ,EAAC;AAAA,EACjC,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS,MAAM,CAAC;AAAA,EAClB;AACF,CAAU;AAMH,MAAM,2BAA2B;AAAA;AAExC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed,
|
|
1
|
+
import { defineComponent, ref, computed, unref, watch, createVNode, isVNode } from "vue";
|
|
2
2
|
import { VueCropper } from "vue-cropper";
|
|
3
3
|
import { MKSvgIcon } from "../svg-icon/index.js";
|
|
4
4
|
import { imageCropperContentProps, imageCropperContentEmits } from "./image-cropper-content-options.js";
|
|
@@ -6,7 +6,6 @@ import { ElOption, ElTooltip, ElScrollbar, ElForm, ElFormItem, ElSelect, ElInput
|
|
|
6
6
|
function _isSlot(s) {
|
|
7
7
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
8
8
|
}
|
|
9
|
-
const ORIGIN_RATIO = "origin";
|
|
10
9
|
const FREE_RATIO = "free";
|
|
11
10
|
const BASE64_PREFIX = /^data:image\/([^;]+);base64,/;
|
|
12
11
|
const ImageCropperContent = /* @__PURE__ */ defineComponent({
|
|
@@ -27,28 +26,26 @@ const ImageCropperContent = /* @__PURE__ */ defineComponent({
|
|
|
27
26
|
}
|
|
28
27
|
return url.slice(index + 1) || "jpeg";
|
|
29
28
|
});
|
|
30
|
-
const originRatioOption = reactive({
|
|
31
|
-
value: ORIGIN_RATIO,
|
|
32
|
-
label: "原图比例",
|
|
33
|
-
width: 1,
|
|
34
|
-
height: 1
|
|
35
|
-
});
|
|
36
29
|
const ratioOptions = computed(() => {
|
|
37
|
-
return [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
30
|
+
return [
|
|
31
|
+
...props.ratioOptions.map((item) => ({
|
|
32
|
+
...item,
|
|
33
|
+
value: item.value.toString()
|
|
34
|
+
})),
|
|
35
|
+
// originRatioOption,
|
|
36
|
+
{
|
|
37
|
+
value: FREE_RATIO,
|
|
38
|
+
label: "自由比例",
|
|
39
|
+
width: 1,
|
|
40
|
+
height: 1
|
|
41
|
+
}
|
|
42
|
+
];
|
|
46
43
|
});
|
|
47
|
-
const autoCropWidth = ref(
|
|
48
|
-
const autoCropHeight = ref(
|
|
49
|
-
const currentRatio = ref(
|
|
50
|
-
const maxWidth = ref(
|
|
51
|
-
const maxHeight = ref(
|
|
44
|
+
const autoCropWidth = ref(props.maxWidth);
|
|
45
|
+
const autoCropHeight = ref(props.maxHeight);
|
|
46
|
+
const currentRatio = ref(ratioOptions.value[0].value);
|
|
47
|
+
const maxWidth = ref(props.maxWidth);
|
|
48
|
+
const maxHeight = ref(props.maxHeight);
|
|
52
49
|
const enlarge = computed(() => {
|
|
53
50
|
var _a, _b;
|
|
54
51
|
const width = ((_a = unref(cropperRef)) == null ? void 0 : _a.cropW) ?? 1;
|
|
@@ -69,8 +66,12 @@ const ImageCropperContent = /* @__PURE__ */ defineComponent({
|
|
|
69
66
|
const image = new Image();
|
|
70
67
|
image.src = src;
|
|
71
68
|
image.onload = () => {
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
if (!props.maxWidth) {
|
|
70
|
+
autoCropWidth.value = image.naturalWidth;
|
|
71
|
+
}
|
|
72
|
+
if (props.maxHeight) {
|
|
73
|
+
autoCropHeight.value = image.naturalHeight;
|
|
74
|
+
}
|
|
74
75
|
};
|
|
75
76
|
}, {
|
|
76
77
|
immediate: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-cropper-content.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-content.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n reactive,\r\n ref,\r\n Ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { VueCropper } from \"vue-cropper\";\r\nimport { MKSvgIcon } from \"../svg-icon\";\r\nimport {\r\n imageCropperContentEmits,\r\n imageCropperContentProps,\r\n} from \"./image-cropper-content-options\";\r\nimport {\r\n ElForm,\r\n ElFormItem,\r\n ElInputNumber,\r\n ElOption,\r\n ElScrollbar,\r\n ElSelect,\r\n ElTooltip,\r\n} from \"element-plus\";\r\n\r\nexport type ImageCropperRatioOption = {\r\n value: string;\r\n label: string;\r\n width: number;\r\n height: number;\r\n};\r\n\r\nconst ORIGIN_RATIO = \"origin\";\r\nconst FREE_RATIO = \"free\";\r\n\r\nconst BASE64_PREFIX = /^data:image\\/([^;]+);base64,/;\r\n\r\nexport default defineComponent({\r\n name: \"MKImageContentCropper\",\r\n props: imageCropperContentProps,\r\n emits: imageCropperContentEmits,\r\n setup(props) {\r\n const cropperRef: Ref<any> = ref(null);\r\n\r\n const outputType = computed(() => {\r\n const base64Match = props.src.match(BASE64_PREFIX);\r\n\r\n if (base64Match?.[1]) {\r\n return base64Match?.[1];\r\n }\r\n\r\n const url = new URL(props.src, location.origin).toString();\r\n\r\n const index = url.lastIndexOf(\".\");\r\n\r\n if (index === -1) {\r\n return \"jpeg\";\r\n }\r\n\r\n return url.slice(index + 1) || \"jpeg\";\r\n });\r\n\r\n const originRatioOption: ImageCropperRatioOption = reactive({\r\n value: ORIGIN_RATIO,\r\n label: \"原图比例\",\r\n width: 1,\r\n height: 1,\r\n });\r\n\r\n const ratioOptions = computed(() => {\r\n return [\r\n originRatioOption,\r\n { value: FREE_RATIO, label: \"自由比例\", width: 1, height: 1 },\r\n ...props.ratioOptions.map((item: any) => ({\r\n ...item,\r\n value: item.value.toString(),\r\n })),\r\n ] as ImageCropperRatioOption[];\r\n });\r\n\r\n const autoCropWidth = ref(0);\r\n const autoCropHeight = ref(0);\r\n\r\n const currentRatio: Ref<string> = ref(ORIGIN_RATIO);\r\n\r\n const maxWidth: Ref<number> = ref(0);\r\n const maxHeight: Ref<number> = ref(0);\r\n\r\n const enlarge = computed(() => {\r\n const width = unref(cropperRef)?.cropW ?? 1;\r\n const height = unref(cropperRef)?.cropH ?? 1;\r\n\r\n const ratio = unref(maxWidth) / unref(maxHeight);\r\n const cropRatio = width / height;\r\n\r\n return cropRatio > ratio\r\n ? unref(maxWidth) / width\r\n : unref(maxHeight) / height;\r\n });\r\n\r\n const setCurrentRatio = (value: string) => {\r\n currentRatio.value = value;\r\n };\r\n\r\n const isFixed = computed(() => unref(currentRatio) !== FREE_RATIO);\r\n\r\n const fixedNumber = computed(() => {\r\n const option = unref(ratioOptions).find(\r\n (option) => option.value === unref(currentRatio)\r\n );\r\n\r\n return [option?.width ?? 1, option?.height ?? 1];\r\n });\r\n\r\n watch(\r\n computed(() => props.src),\r\n (src) => {\r\n const image = new Image();\r\n image.src = src;\r\n\r\n image.onload = () => {\r\n maxWidth.value =\r\n autoCropWidth.value =\r\n originRatioOption.width =\r\n image.naturalWidth;\r\n maxHeight.value =\r\n autoCropHeight.value =\r\n originRatioOption.height =\r\n image.naturalHeight;\r\n };\r\n },\r\n { immediate: true }\r\n );\r\n\r\n // watch(currentRatio, (currentRatio) => {\r\n // new MouseEvent(\"mousemove\", {});\r\n // // debugger;\r\n // unref(cropperRef).changeCropNow(new MouseEvent(\"mousemove\"));\r\n // });\r\n\r\n const handleRotateLeft = () => {\r\n unref(cropperRef).rotateLeft();\r\n };\r\n\r\n const handleRotateRight = () => {\r\n unref(cropperRef).rotateRight();\r\n };\r\n\r\n const setCropperRef = (el: any) => {\r\n cropperRef.value = el;\r\n };\r\n\r\n return {\r\n enlarge,\r\n maxWidth,\r\n maxHeight,\r\n outputType,\r\n cropperRef,\r\n ratioOptions,\r\n autoCropWidth,\r\n autoCropHeight,\r\n currentRatio,\r\n isFixed,\r\n fixedNumber,\r\n setCurrentRatio,\r\n setCropperRef,\r\n handleRotateLeft,\r\n handleRotateRight,\r\n };\r\n },\r\n render() {\r\n const {\r\n enlarge,\r\n maxWidth,\r\n maxHeight,\r\n outputType,\r\n ratioOptions,\r\n autoCropHeight,\r\n autoCropWidth,\r\n isFixed,\r\n fixedNumber,\r\n currentRatio,\r\n setCurrentRatio,\r\n setCropperRef,\r\n handleRotateLeft,\r\n handleRotateRight,\r\n $props,\r\n $slots,\r\n } = this;\r\n\r\n const ratioOptionsVNodes = unref(ratioOptions).map((ratioOption) => (\r\n <ElOption value={ratioOption.value} label={ratioOption.label} />\r\n ));\r\n\r\n return (\r\n <div class=\"mk-image-cropper\">\r\n <div class=\"mk-image-cropper__main\">\r\n <VueCropper\r\n ref={setCropperRef}\r\n outputType={outputType}\r\n img={$props.src}\r\n auto-crop\r\n canMoveBox\r\n auto-crop-width={autoCropWidth}\r\n auto-crop-height={autoCropHeight}\r\n fixedBox={$props.fixedBox}\r\n fixed={isFixed}\r\n fixedNumber={fixedNumber}\r\n enlarge={enlarge}\r\n />\r\n\r\n <div class=\"mk-image-cropper__bar\">\r\n <ElTooltip content=\"左旋\">\r\n <MKSvgIcon iconClass=\"RefreshLeft\" onClick={handleRotateLeft} />\r\n </ElTooltip>\r\n <ElTooltip content=\"右旋\">\r\n <MKSvgIcon iconClass=\"RefreshRight\" onClick={handleRotateRight} />\r\n </ElTooltip>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mk-image-cropper__tools\">\r\n <ElScrollbar height=\"100%\">\r\n <ElForm label-position=\"top\">\r\n <ElFormItem label=\"比例\">\r\n <ElSelect\r\n placeholder=\"选择比例\"\r\n modelValue={currentRatio}\r\n onUpdate:modelValue={setCurrentRatio}\r\n >\r\n {ratioOptionsVNodes}\r\n </ElSelect>\r\n </ElFormItem>\r\n <ElFormItem label=\"最大输出宽度\">\r\n <ElInputNumber\r\n placeholder=\"宽度\"\r\n modelValue={maxWidth}\r\n onUpdate:modelValue={\r\n ((v: number) => (this.maxWidth = v)) as any\r\n }\r\n />\r\n </ElFormItem>\r\n\r\n <ElFormItem label=\"最大输出高度\">\r\n <ElInputNumber\r\n placeholder=\"高度\"\r\n modelValue={maxHeight}\r\n onUpdate:modelValue={\r\n ((v: number) => (this.maxHeight = v)) as any\r\n }\r\n />\r\n </ElFormItem>\r\n </ElForm>\r\n\r\n {$slots.tools?.()}\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","ORIGIN_RATIO","FREE_RATIO","BASE64_PREFIX","defineComponent","name","props","imageCropperContentProps","emits","imageCropperContentEmits","setup","cropperRef","ref","outputType","computed","base64Match","src","match","url","URL","location","origin","index","lastIndexOf","slice","originRatioOption","reactive","value","label","width","height","ratioOptions","map","item","autoCropWidth","autoCropHeight","currentRatio","maxWidth","maxHeight","enlarge","unref","cropW","cropH","ratio","cropRatio","setCurrentRatio","isFixed","fixedNumber","option","find","watch","image","Image","onload","naturalWidth","naturalHeight","immediate","handleRotateLeft","rotateLeft","handleRotateRight","rotateRight","setCropperRef","el","render","$props","$slots","ratioOptionsVNodes","ratioOption","_createVNode","ElOption","VueCropper","fixedBox","ElTooltip","default","MKSvgIcon","ElScrollbar","ElForm","ElFormItem","ElSelect","ElInputNumber","v","tools"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image-cropper-content.js","sources":["../../../../../src/components/basic/image-cropper/image-cropper-content.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n reactive,\r\n ref,\r\n Ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { VueCropper } from \"vue-cropper\";\r\nimport { MKSvgIcon } from \"../svg-icon\";\r\nimport {\r\n imageCropperContentEmits,\r\n imageCropperContentProps,\r\n} from \"./image-cropper-content-options\";\r\nimport {\r\n ElForm,\r\n ElFormItem,\r\n ElInputNumber,\r\n ElOption,\r\n ElScrollbar,\r\n ElSelect,\r\n ElTooltip,\r\n} from \"element-plus\";\r\n\r\nexport type ImageCropperRatioOption = {\r\n value: string;\r\n label: string;\r\n width: number;\r\n height: number;\r\n};\r\n\r\n// const ORIGIN_RATIO = \"origin\";\r\nconst FREE_RATIO = \"free\";\r\n\r\nconst BASE64_PREFIX = /^data:image\\/([^;]+);base64,/;\r\n\r\nexport default defineComponent({\r\n name: \"MKImageContentCropper\",\r\n props: imageCropperContentProps,\r\n emits: imageCropperContentEmits,\r\n setup(props) {\r\n const cropperRef: Ref<any> = ref(null);\r\n\r\n const outputType = computed(() => {\r\n const base64Match = props.src.match(BASE64_PREFIX);\r\n\r\n if (base64Match?.[1]) {\r\n return base64Match?.[1];\r\n }\r\n\r\n const url = new URL(props.src, location.origin).toString();\r\n\r\n const index = url.lastIndexOf(\".\");\r\n\r\n if (index === -1) {\r\n return \"jpeg\";\r\n }\r\n\r\n return url.slice(index + 1) || \"jpeg\";\r\n });\r\n\r\n // const originRatioOption: ImageCropperRatioOption = reactive({\r\n // value: ORIGIN_RATIO,\r\n // label: \"原图比例\",\r\n // width: 1,\r\n // height: 1,\r\n // });\r\n\r\n const ratioOptions = computed(() => {\r\n return [\r\n ...props.ratioOptions.map((item: any) => ({\r\n ...item,\r\n value: item.value.toString(),\r\n })),\r\n // originRatioOption,\r\n { value: FREE_RATIO, label: \"自由比例\", width: 1, height: 1 },\r\n \r\n ] as ImageCropperRatioOption[];\r\n });\r\n\r\n const autoCropWidth = ref(props.maxWidth);\r\n const autoCropHeight = ref(props.maxHeight);\r\n\r\n const currentRatio: Ref<string> = ref(ratioOptions.value[0].value);\r\n\r\n const maxWidth: Ref<number> = ref(props.maxWidth);\r\n const maxHeight: Ref<number> = ref(props.maxHeight);\r\n\r\n const enlarge = computed(() => {\r\n const width = unref(cropperRef)?.cropW ?? 1;\r\n const height = unref(cropperRef)?.cropH ?? 1;\r\n\r\n const ratio = unref(maxWidth) / unref(maxHeight);\r\n const cropRatio = width / height;\r\n \r\n return cropRatio > ratio\r\n ? unref(maxWidth) / width\r\n : unref(maxHeight) / height;\r\n });\r\n\r\n const setCurrentRatio = (value: string) => {\r\n currentRatio.value = value;\r\n };\r\n\r\n const isFixed = computed(() => unref(currentRatio) !== FREE_RATIO);\r\n\r\n const fixedNumber = computed(() => {\r\n const option = unref(ratioOptions).find(\r\n (option) => option.value === unref(currentRatio)\r\n );\r\n\r\n return [option?.width ?? 1, option?.height ?? 1];\r\n });\r\n\r\n watch(\r\n computed(() => props.src),\r\n (src) => {\r\n const image = new Image();\r\n image.src = src;\r\n\r\n image.onload = () => {\r\n\r\n if(!props.maxWidth){\r\n autoCropWidth.value = image.naturalWidth;\r\n }\r\n\r\n if(props.maxHeight){\r\n autoCropHeight.value = image.naturalHeight;\r\n }\r\n \r\n \r\n };\r\n },\r\n { immediate: true }\r\n );\r\n\r\n // watch(currentRatio, (currentRatio) => {\r\n // new MouseEvent(\"mousemove\", {});\r\n // // debugger;\r\n // unref(cropperRef).changeCropNow(new MouseEvent(\"mousemove\"));\r\n // });\r\n\r\n const handleRotateLeft = () => {\r\n unref(cropperRef).rotateLeft();\r\n };\r\n\r\n const handleRotateRight = () => {\r\n unref(cropperRef).rotateRight();\r\n };\r\n\r\n const setCropperRef = (el: any) => {\r\n cropperRef.value = el;\r\n };\r\n\r\n return {\r\n enlarge,\r\n maxWidth,\r\n maxHeight,\r\n outputType,\r\n cropperRef,\r\n ratioOptions,\r\n autoCropWidth,\r\n autoCropHeight,\r\n currentRatio,\r\n isFixed,\r\n fixedNumber,\r\n setCurrentRatio,\r\n setCropperRef,\r\n handleRotateLeft,\r\n handleRotateRight,\r\n };\r\n },\r\n render() {\r\n const {\r\n enlarge,\r\n maxWidth,\r\n maxHeight,\r\n outputType,\r\n ratioOptions,\r\n autoCropHeight,\r\n autoCropWidth,\r\n isFixed,\r\n fixedNumber,\r\n currentRatio,\r\n setCurrentRatio,\r\n setCropperRef,\r\n handleRotateLeft,\r\n handleRotateRight,\r\n $props,\r\n $slots,\r\n } = this;\r\n\r\n const ratioOptionsVNodes = unref(ratioOptions).map((ratioOption) => (\r\n <ElOption value={ratioOption.value} label={ratioOption.label} />\r\n ));\r\n\r\n return (\r\n <div class=\"mk-image-cropper\">\r\n <div class=\"mk-image-cropper__main\">\r\n <VueCropper\r\n ref={setCropperRef}\r\n outputType={outputType}\r\n img={$props.src}\r\n auto-crop\r\n canMoveBox\r\n auto-crop-width={autoCropWidth}\r\n auto-crop-height={autoCropHeight}\r\n fixedBox={$props.fixedBox}\r\n fixed={isFixed}\r\n fixedNumber={fixedNumber}\r\n enlarge={enlarge}\r\n />\r\n\r\n <div class=\"mk-image-cropper__bar\">\r\n <ElTooltip content=\"左旋\">\r\n <MKSvgIcon iconClass=\"RefreshLeft\" onClick={handleRotateLeft} />\r\n </ElTooltip>\r\n <ElTooltip content=\"右旋\">\r\n <MKSvgIcon iconClass=\"RefreshRight\" onClick={handleRotateRight} />\r\n </ElTooltip>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mk-image-cropper__tools\">\r\n <ElScrollbar height=\"100%\">\r\n <ElForm label-position=\"top\">\r\n <ElFormItem label=\"比例\">\r\n <ElSelect\r\n placeholder=\"选择比例\"\r\n modelValue={currentRatio}\r\n onUpdate:modelValue={setCurrentRatio}\r\n >\r\n {ratioOptionsVNodes}\r\n </ElSelect>\r\n </ElFormItem>\r\n <ElFormItem label=\"最大输出宽度\">\r\n <ElInputNumber\r\n placeholder=\"宽度\"\r\n modelValue={maxWidth}\r\n onUpdate:modelValue={\r\n ((v: number) => (this.maxWidth = v)) as any\r\n }\r\n />\r\n </ElFormItem>\r\n\r\n <ElFormItem label=\"最大输出高度\">\r\n <ElInputNumber\r\n placeholder=\"高度\"\r\n modelValue={maxHeight}\r\n onUpdate:modelValue={\r\n ((v: number) => (this.maxHeight = v)) as any\r\n }\r\n />\r\n </ElFormItem>\r\n </ElForm>\r\n\r\n {$slots.tools?.()}\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","FREE_RATIO","BASE64_PREFIX","defineComponent","name","props","imageCropperContentProps","emits","imageCropperContentEmits","setup","cropperRef","ref","outputType","computed","base64Match","src","match","url","URL","location","origin","index","lastIndexOf","slice","ratioOptions","map","item","value","label","width","height","autoCropWidth","maxWidth","autoCropHeight","maxHeight","currentRatio","enlarge","unref","cropW","cropH","ratio","cropRatio","setCurrentRatio","isFixed","fixedNumber","option","find","watch","image","Image","onload","naturalWidth","naturalHeight","immediate","handleRotateLeft","rotateLeft","handleRotateRight","rotateRight","setCropperRef","el","render","$props","$slots","ratioOptionsVNodes","ratioOption","_createVNode","ElOption","VueCropper","fixedBox","ElTooltip","default","MKSvgIcon","ElScrollbar","ElForm","ElFormItem","ElSelect","ElInputNumber","v","tools"],"mappings":";;;;;AAuBsB,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,QAAAL,CAAA;AAAA;AAUtB,MAAMM,aAAa;AAEnB,MAAMC,gBAAgB;AAEtB,MAAeC,sDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,OAAOC;AAAAA,EACPC,MAAMJ,OAAO;AACX,UAAMK,aAAuBC,IAAI,IAAI;AAErC,UAAMC,aAAaC,SAAS,MAAM;AAChC,YAAMC,cAAcT,MAAMU,IAAIC,MAAMd,aAAa;AAEjD,UAAIY,2CAAc,IAAI;AACpB,eAAOA,2CAAc;AAAA,MACvB;AAEA,YAAMG,MAAM,IAAIC,IAAIb,MAAMU,KAAKI,SAASC,MAAM,EAAEtB;AAEhD,YAAMuB,QAAQJ,IAAIK,YAAY,GAAG;AAEjC,UAAID,UAAU,IAAI;AAChB,eAAO;AAAA,MACT;AAEA,aAAOJ,IAAIM,MAAMF,QAAQ,CAAC,KAAK;AAAA,IACjC,CAAC;AASD,UAAMG,eAAeX,SAAS,MAAM;AAClC,aAAQ;AAAA,QACN,GAAGR,MAAMmB,aAAaC,IAAKC,WAAe;AAAA,UACxC,GAAGA;AAAAA,UACHC,OAAOD,KAAKC,MAAM7B,SAAS;AAAA,QAC7B,EAAE;AAAA;AAAA,QAEF;AAAA,UAAE6B,OAAO1B;AAAAA,UAAY2B,OAAO;AAAA,UAAQC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAE;AAAA,MAAC;AAAA,IAG7D,CAAC;AAED,UAAMC,gBAAgBpB,IAAIN,MAAM2B,QAAQ;AACxC,UAAMC,iBAAiBtB,IAAIN,MAAM6B,SAAS;AAE1C,UAAMC,eAA4BxB,IAAIa,aAAaG,MAAM,CAAC,EAAEA,KAAK;AAEjE,UAAMK,WAAwBrB,IAAIN,MAAM2B,QAAQ;AAChD,UAAME,YAAyBvB,IAAIN,MAAM6B,SAAS;AAElD,UAAME,UAAUvB,SAAS,MAAM;;AAC7B,YAAMgB,UAAQQ,WAAM3B,UAAU,MAAhB2B,mBAAmBC,UAAS;AAC1C,YAAMR,WAASO,WAAM3B,UAAU,MAAhB2B,mBAAmBE,UAAS;AAE3C,YAAMC,QAAQH,MAAML,QAAQ,IAAIK,MAAMH,SAAS;AAC/C,YAAMO,YAAYZ,QAAQC;AAE1B,aAAOW,YAAYD,QACfH,MAAML,QAAQ,IAAIH,QAClBQ,MAAMH,SAAS,IAAIJ;AAAAA,IACzB,CAAC;AAED,UAAMY,kBAAmBf,WAAkB;AACzCQ,mBAAaR,QAAQA;AAAAA;AAGvB,UAAMgB,UAAU9B,SAAS,MAAMwB,MAAMF,YAAY,MAAMlC,UAAU;AAEjE,UAAM2C,cAAc/B,SAAS,MAAM;AACjC,YAAMgC,SAASR,MAAMb,YAAY,EAAEsB,KAChCD,CAAAA,YAAWA,QAAOlB,UAAUU,MAAMF,YAAY,CACjD;AAEA,aAAO,EAACU,iCAAQhB,UAAS,IAAGgB,iCAAQf,WAAU,CAAC;AAAA,IACjD,CAAC;AAEDiB,UACElC,SAAS,MAAMR,MAAMU,GAAG,GACvBA,SAAQ;AACP,YAAMiC,QAAQ,IAAIC;AAClBD,YAAMjC,MAAMA;AAEZiC,YAAME,SAAS,MAAM;AAEnB,YAAG,CAAC7C,MAAM2B,UAAS;AACjBD,wBAAcJ,QAAQqB,MAAMG;AAAAA,QAC9B;AAEA,YAAG9C,MAAM6B,WAAU;AACjBD,yBAAeN,QAAQqB,MAAMI;AAAAA,QAC/B;AAAA;IAIJ,GACA;AAAA,MAAEC,WAAW;AAAA,IAAK,CACpB;AAQA,UAAMC,mBAAmBA,MAAM;AAC7BjB,YAAM3B,UAAU,EAAE6C;;AAGpB,UAAMC,oBAAoBA,MAAM;AAC9BnB,YAAM3B,UAAU,EAAE+C;;AAGpB,UAAMC,gBAAiBC,QAAY;AACjCjD,iBAAWiB,QAAQgC;AAAAA;AAGrB,WAAO;AAAA,MACLvB;AAAAA,MACAJ;AAAAA,MACAE;AAAAA,MACAtB;AAAAA,MACAF;AAAAA,MACAc;AAAAA,MACAO;AAAAA,MACAE;AAAAA,MACAE;AAAAA,MACAQ;AAAAA,MACAC;AAAAA,MACAF;AAAAA,MACAgB;AAAAA,MACAJ;AAAAA,MACAE;AAAAA;EAEH;AAAA,EACDI,SAAS;AACP,UAAM;AAAA,MACJxB;AAAAA,MACAJ;AAAAA,MACAE;AAAAA,MACAtB;AAAAA,MACAY;AAAAA,MACAS;AAAAA,MACAF;AAAAA,MACAY;AAAAA,MACAC;AAAAA,MACAT;AAAAA,MACAO;AAAAA,MACAgB;AAAAA,MACAJ;AAAAA,MACAE;AAAAA,MACAK;AAAAA,MACAC;AAAAA,IACD,IAAG;AAEJ,UAAMC,qBAAqB1B,MAAMb,YAAY,EAAEC,IAAKuC,iBAAWC,YAAAC,UAAA;AAAA,MAAA,SAC5CF,YAAYrC;AAAAA,MAAK,SAASqC,YAAYpC;AAAAA,IAAK,GAAA,IAAA,CAC7D;AAED,WAAAqC,YAAA,OAAA;AAAA,MAAA,SAAA;AAAA,IAAA,GAAA,CAAAA,YAAA,OAAA;AAAA,MAAA,SAAA;AAAA,OAAAA,CAAAA,YAAAE,YAAA;AAAA,MAAA,OAIaT;AAAAA,MAAa,cACN9C;AAAAA,MAAU,OACjBiD,OAAO9C;AAAAA,MAAG,aAAA;AAAA,MAAA,cAAA;AAAA,MAAA,mBAGEgB;AAAAA,MAAa,oBACZE;AAAAA,MAAc,YACtB4B,OAAOO;AAAAA,MAAQ,SAClBzB;AAAAA,MAAO,eACDC;AAAAA,MAAW,WACfR;AAAAA,IAAO,GAAA,IAAA,GAAA6B,YAAA,OAAA;AAAA,MAAA,SAAA;AAAA,OAAAA,CAAAA,YAAAI,WAAA;AAAA,MAAA,WAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAL,CAAAA,YAAAM,WAAA;AAAA,QAAA,aAAA;AAAA,QAAA,WAK8BjB;AAAAA,MAAgB,GAAA,IAAA,CAAA;AAAA,KAAAW,GAAAA,YAAAI,WAAA;AAAA,MAAA,WAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAL,CAAAA,YAAAM,WAAA;AAAA,QAAA,aAAA;AAAA,QAAA,WAGff;AAAAA,MAAiB,GAAA,IAAA,CAAA;AAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAAS,YAAA,OAAA;AAAA,MAAA,SAAA;AAAA,OAAAA,CAAAA,YAAAO,aAAA;AAAA,MAAA,UAAA;AAAA,IAAA,GAAA;AAAA,MAAAF,SAAAA,MAAAA;;AAAAL,gBAAAA,YAAAQ,QAAA;AAAA,UAAA,kBAAA;AAAA,QAAA,GAAA;AAAA,UAAAH,SAAAA,MAAAL,CAAAA,YAAAS,YAAA;AAAA,YAAA,SAAA;AAAA,UAAA,GAAA;AAAA,YAAAJ,SAAAA,MAAAL,CAAAA,YAAAU,UAAA;AAAA,cAAA,eAAA;AAAA,cAAA,cAW9CxC;AAAAA,cAAY,uBACHO;AAAAA,YAAe,GAAAhD,QAEnCqE,kBAAkB,IAAlBA,qBAAkB;AAAA,cAAAO,SAAAA,MAAA,CAAlBP,kBAAkB;AAAA,YAAA,CAAA,CAAA;AAAA,WAAAE,GAAAA,YAAAS,YAAA;AAAA,YAAA,SAAA;AAAA,UAAA,GAAA;AAAA,YAAAJ,SAAAA,MAAAL,CAAAA,YAAAW,eAAA;AAAA,cAAA,eAAA;AAAA,cAAA,cAMP5C;AAAAA,cAAQ,uBAEhB6C,OAAe,KAAK7C,WAAW6C;AAAAA,YAAE,GAAA,IAAA,CAAA;AAAA,WAAAZ,GAAAA,YAAAS,YAAA;AAAA,YAAA,SAAA;AAAA,UAAA,GAAA;AAAA,YAAAJ,SAAAA,MAAAL,CAAAA,YAAAW,eAAA;AAAA,cAAA,eAAA;AAAA,cAAA,cAQzB1C;AAAAA,cAAS,uBAEjB2C,OAAe,KAAK3C,YAAY2C;AAAAA,YAAE,GAAA,IAAA,CAAA;AAAA,UAAA,CAAA,CAAA;AAAA,QAAA,CAAA,IAM3Cf,YAAOgB,UAAPhB,+BAAgB;AAAA;AAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAK3B;AACF,CAAC;"}
|
|
@@ -194,6 +194,8 @@ const UploadImage = /* @__PURE__ */ defineComponent({
|
|
|
194
194
|
}, null)]);
|
|
195
195
|
}
|
|
196
196
|
const imageViewer = unref(isShowImageViewer) ? createVNode(ElImageViewer, {
|
|
197
|
+
"teleported": true,
|
|
198
|
+
"zIndex": 99,
|
|
197
199
|
"onClose": handleCloseImageViewer,
|
|
198
200
|
"urlList": [unref(currentImageSrc)]
|
|
199
201
|
}, null) : null;
|