@maketribe/ms-app 3.2.4 → 3.2.6
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/assets/iconfonts/iconfont.js +1 -1
- package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js +4 -0
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js +108 -0
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js +4 -0
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js +24 -18
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js +93 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js +128 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js +51 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js +4 -0
- package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +26 -46
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -5
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.js +7 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/{HtmlCodeTool.vue.js → PreviewToolbar.vue.js} +56 -43
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js +4 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +2 -2
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/index.vue.js +3 -1
- package/dist/cjs/components/basic/doc-editor/plugins/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +3 -1
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
- package/dist/cjs/components/business/resource-list/ResourceManager.js +0 -24
- package/dist/cjs/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/cjs/components/business/resource-list/resource-list.vue.js +38 -15
- 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 +1 -12
- package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/table/table.js +0 -1
- package/dist/cjs/components/data-model/data-table/views/table/table.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js +12 -9
- package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js +1 -0
- package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/tree/tree.js +14 -2
- package/dist/cjs/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/cjs/composables/use-single-view.js +2 -0
- package/dist/cjs/composables/use-single-view.js.map +1 -1
- package/dist/cjs/core/MSAppClient.js +8 -6
- package/dist/cjs/core/MSAppClient.js.map +1 -1
- package/dist/cjs/core/PageManager.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +24 -9
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js +26 -0
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -0
- package/dist/cjs/modules/cms/index.js +2 -1
- package/dist/cjs/modules/cms/index.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +44 -22
- 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-list.vue.js +2 -2
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +99 -87
- 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 +45 -5
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-item.vue.js +0 -1
- package/dist/cjs/modules/ms/components/material-list/material-item.vue.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-list-options.js +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-list-options.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-select/material-select-api.js +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTree.js +18 -0
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +4 -1
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
- package/dist/cjs/modules/ms/index.js +2 -2
- package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js +13 -16
- 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 +49 -7
- package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js +5 -0
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js +109 -0
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js +4 -0
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js +25 -19
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js +94 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js +128 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js +52 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js +5 -0
- package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +27 -47
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -5
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.js +7 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +117 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js +5 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/index.vue.js +3 -1
- package/dist/esm/components/basic/doc-editor/plugins/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/nodes.js +3 -1
- package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
- package/dist/esm/components/business/resource-list/ResourceManager.js +1 -25
- package/dist/esm/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/esm/components/business/resource-list/resource-list.vue.js +39 -16
- 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 +2 -13
- package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/table/table.js +0 -1
- package/dist/esm/components/data-model/data-table/views/table/table.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/table-view/header/header.js +12 -9
- package/dist/esm/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/tree/tree-options.js +1 -0
- package/dist/esm/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/tree/tree.js +15 -3
- package/dist/esm/components/data-model/data-table/views/tree/tree.js.map +1 -1
- package/dist/esm/composables/use-single-view.js +2 -0
- package/dist/esm/composables/use-single-view.js.map +1 -1
- package/dist/esm/core/MSAppClient.js +8 -6
- package/dist/esm/core/MSAppClient.js.map +1 -1
- package/dist/esm/core/PageManager.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/modules/cms/components/part-tree/index.vue.js +25 -10
- package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js +26 -0
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -0
- package/dist/esm/modules/cms/index.js +2 -1
- package/dist/esm/modules/cms/index.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +46 -24
- 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-list.vue.js +2 -2
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +101 -89
- 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 +46 -6
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-item.vue.js +0 -1
- package/dist/esm/modules/ms/components/material-list/material-item.vue.js.map +1 -1
- package/dist/esm/modules/ms/components/material-list/material-list-options.js +1 -1
- package/dist/esm/modules/ms/components/material-list/material-list-options.js.map +1 -1
- package/dist/esm/modules/ms/components/material-select/material-select-api.js +1 -1
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTree.js +18 -0
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +4 -1
- package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
- package/dist/esm/modules/ms/index.js +2 -2
- package/dist/esm/modules/ms/pages/ms-material/index.vue2.js +14 -17
- 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 +50 -8
- package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
- package/dist/style/components/basic/doc-editor/index.css +1 -1
- package/dist/style/components/index.css +2 -2
- package/dist/style/components/material-item.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/modules/cms/index.css +1 -1
- package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
- package/dist/style/modules/cms/resource-manager.css +1 -1
- package/dist/style/src/components/basic/doc-editor/index.scss +22 -2
- package/dist/style/src/components/material-item.scss +66 -63
- package/dist/style/src/modules/cms/pages/cms-contents/index.scss +1 -2
- package/dist/style/src/modules/cms/resource-manager.scss +63 -0
- package/dist/style/src/theme/theme.scss +310 -303
- package/dist/style/theme/theme.css +1 -1
- package/dist/types/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.d.ts +20 -0
- package/dist/types/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.d.ts +57 -0
- package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +1 -0
- package/dist/types/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.d.ts +2 -0
- package/dist/types/components/business/resource-list/ResourceManager.d.ts +0 -1
- package/dist/types/components/business/resource-manager/index.d.ts +32 -6
- package/dist/types/components/business/resource-manager/resource-manager.vue.d.ts +10 -1
- package/dist/types/components/data-model/data-table/views/table/index.d.ts +1 -1
- package/dist/types/components/data-model/data-table/views/table/table.d.ts +1 -1
- package/dist/types/components/data-model/data-table/views/tree/index.d.ts +3 -0
- package/dist/types/components/data-model/data-table/views/tree/tree-options.d.ts +1 -0
- package/dist/types/components/data-model/data-table/views/tree/tree.d.ts +3 -0
- package/dist/types/modules/cms/components/part-tree/index.d.ts +5 -9
- package/dist/types/modules/cms/components/part-tree/index.vue.d.ts +16 -15
- package/dist/types/modules/cms/dataviews/cms-parts/CmsContentManPartForm.d.ts +8 -0
- package/dist/types/modules/cms/dataviews/cms-parts/index.d.ts +1 -0
- package/dist/types/modules/ms/dataviews/ms-material/index.d.ts +0 -1
- package/dist/types/modules/ms/dataviews/ms-menu/MsMenuTree.d.ts +1 -0
- package/package.json +5 -5
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js +0 -4
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js.map +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -131
- package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js +0 -104
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js +0 -5
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js.map +0 -1
- package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -131
- package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +0 -1
- package/dist/style/modules/cms/pages/cms-contents/part-edit-add-page.css +0 -1
- package/dist/style/src/modules/cms/pages/cms-contents/part-edit-add-page.scss +0 -127
- package/dist/types/modules/ms/dataviews/ms-material/MsMaterialMan.d.ts +0 -31
- /package/dist/types/components/basic/doc-editor/plugins/{ToolbarPlugin/HtmlCodeTool.vue.d.ts → HtmlBlockPlugin/index.vue.d.ts} +0 -0
- /package/dist/types/{modules/cms/pages/cms-contents/part-edit-add-page.vue.d.ts → components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolba-back.vue.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\nimport { MSAppClient } from \"../../../core\";\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\nimport { R } from \"@maketribe/request\";\n\nexport type ResourceInfo = {\n name: string;\n path: string;\n isDirectory: boolean;\n extension: string;\n isSelected: boolean;\n};\n\nexport type ResourceManagerOptions = {\n extensions?: string[];\n baseURL: string;\n};\n\nexport class ResourceManager extends Disposable {\n directories: string[];\n\n resourceInfoList: ResourceInfo[];\n\n loadingManager: LoadingManager;\n\n isShowEditDialog: boolean = false;\n\n currentEditText: string = \"\";\n\n filterExtensions: string[] = [];\n\n baseURL: string = \"\";\n\n get selectResourceList() {\n return this.resourceInfoList.filter((item) => item.isSelected);\n }\n\n get loading() {\n return this.loadingManager.loading;\n }\n\n constructor(options: ResourceManagerOptions) {\n super();\n\n this.directories = [];\n\n this.resourceInfoList = [];\n\n this.loadingManager = new LoadingManager();\n\n this.filterExtensions = options.extensions ?? [];\n this.baseURL = options.baseURL;\n }\n\n async loadResourceInfoList(\n toPath: string = this.directories.length\n ? `/${this.directories.join(\"/\")}`\n : \"\"\n ) {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n const response = await httpRequest.post<R<ResourceInfo[]>>(\n `${this.baseURL}/resource/resource-list`,\n {\n directoryPath: toPath,\n extensions: this.filterExtensions,\n }\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n this.resourceInfoList = [];\n return;\n }\n\n this.resourceInfoList = response.data.data.map((item) => ({\n ...item,\n isSelected: false,\n }));\n\n var directorySegments = toPath.startsWith(\"/\")\n ? toPath.slice(1).split(\"/\")\n : toPath.split(\"/\");\n\n this.directories = directorySegments.filter(Boolean);\n } catch (e) {\n console.error(e);\n\n Messager.error({ message: \"网络异常\" });\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n async deleteSelectResourceList() {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n const response = await httpRequest.post(\n `${this.baseURL}/resource/delete-resource-list`,\n { paths: this.selectResourceList.map((item) => item.path) }\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n this.loadResourceInfoList();\n return;\n }\n\n await this.loadResourceInfoList();\n } catch (e) {\n console.error(e);\n\n Messager.error({ message: \"网络异常\" });\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n async getExistPathList(pathList: string[]) {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n return await httpRequest.post(\n `${this.baseURL}/resource/get-exist-path-list`,\n { pathList }\n );\n } catch (e) {\n console.error(e);\n\n Messager.error({ message: \"网络异常\" });\n\n throw e;\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n async uploadResourceList(files: File[]) {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n var directory = this.directories.length\n ? `/${this.directories.join(\"/\")}`\n : \"\";\n\n var formData = new FormData();\n for (var i = 0; i < files.length; i++) {\n formData.append(files[i].name, files[i]);\n }\n formData.append(\"directory\", directory);\n\n const response = await httpRequest.post(\n `${this.baseURL}/resource/update-resource-list`,\n formData\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n this.loadResourceInfoList();\n return;\n }\n\n await this.loadResourceInfoList();\n } catch (e) {\n console.error(e);\n\n Messager.error({ message: \"网络异常\" });\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n async downloadSelectResource() {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n const response = await httpRequest.post(\n `${this.baseURL}/resource/get-download-resource-url`,\n { filePath: this.selectResourceList[0].path }\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n return;\n }\n\n var aElement = document.createElement(\"a\");\n aElement.href = response.data.data;\n aElement.target = \"_blank\";\n\n aElement.click();\n }\n\n async editSelectFile() {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n var resourceInfo = this.selectResourceList[0];\n\n const response = await httpRequest.post(\n `${this.baseURL}/resource/get-text`,\n {\n path: resourceInfo.path,\n }\n );\n\n this.isShowEditDialog = true;\n this.currentEditText = response.data.data;\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n async saveEditFile() {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n this.loadingManager.startLoading();\n\n var resourceInfo = this.selectResourceList[0];\n\n const response = await httpRequest.post(\n `${this.baseURL}/resource/set-text`,\n {\n path: resourceInfo.path,\n content: this.currentEditText,\n }\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n return;\n }\n\n this.isShowEditDialog = false;\n this.currentEditText = \"\";\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n\n clearAllSelect() {\n for (var resourceInfo of this.selectResourceList) {\n resourceInfo.isSelected = false;\n }\n }\n\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\n if (!event.ctrlKey) {\n this.clearAllSelect();\n\n item.isSelected = true;\n return;\n }\n\n item.isSelected = !item.isSelected;\n }\n\n async publishAssets() {\n const httpRequest = MSAppClient.instance!.httpRequest;\n\n try {\n const isConfirm = await Dialoger.confirm({\n title: \"发布资源\",\n message: \"是否发布资源?\",\n type: \"warning\",\n });\n\n if (!isConfirm) {\n return;\n }\n\n this.loadingManager.startLoading();\n\n const response = await httpRequest.post(\n `${this.baseURL}/content/publish/assets`\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n return;\n }\n\n Messager.success({ message: \"发布成功\" });\n } finally {\n this.loadingManager.completeLoading();\n }\n }\n}\n"],"names":["Disposable","LoadingManager","MSAppClient","Messager","Dialoger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\r\nimport { R } from \"@maketribe/request\";\r\n\r\nexport type ResourceInfo = {\r\n name: string;\r\n path: string;\r\n isDirectory: boolean;\r\n extension: string;\r\n isSelected: boolean;\r\n};\r\n\r\nexport type ResourceManagerOptions = {\r\n extensions?: string[];\r\n baseURL: string;\r\n};\r\n\r\nexport class ResourceManager extends Disposable {\r\n directories: string[];\r\n\r\n resourceInfoList: ResourceInfo[];\r\n\r\n loadingManager: LoadingManager;\r\n\r\n isShowEditDialog: boolean = false;\r\n\r\n currentEditText: string = \"\";\r\n\r\n filterExtensions: string[] = [];\r\n\r\n baseURL: string = \"\";\r\n\r\n get selectResourceList() {\r\n return this.resourceInfoList.filter((item) => item.isSelected);\r\n }\r\n\r\n get loading() {\r\n return this.loadingManager.loading;\r\n }\r\n\r\n constructor(options: ResourceManagerOptions) {\r\n super();\r\n\r\n this.directories = [];\r\n\r\n this.resourceInfoList = [];\r\n\r\n this.loadingManager = new LoadingManager();\r\n\r\n this.filterExtensions = options.extensions ?? [];\r\n this.baseURL = options.baseURL;\r\n }\r\n\r\n async loadResourceInfoList(\r\n toPath: string = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\"\r\n ) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post<R<ResourceInfo[]>>(\r\n `${this.baseURL}/resource/resource-list`,\r\n {\r\n directoryPath: toPath,\r\n extensions: this.filterExtensions,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.resourceInfoList = [];\r\n return;\r\n }\r\n\r\n this.resourceInfoList = response.data.data.map((item) => ({\r\n ...item,\r\n isSelected: false,\r\n }));\r\n\r\n var directorySegments = toPath.startsWith(\"/\")\r\n ? toPath.slice(1).split(\"/\")\r\n : toPath.split(\"/\");\r\n\r\n this.directories = directorySegments.filter(Boolean);\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async deleteSelectResourceList() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/delete-resource-list`,\r\n { paths: this.selectResourceList.map((item) => item.path) }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async getExistPathList(pathList: string[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n return await httpRequest.post(\r\n `${this.baseURL}/resource/get-exist-path-list`,\r\n { pathList }\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n\r\n throw e;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async uploadResourceList(files: File[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var directory = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n var formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append(files[i].name, files[i]);\r\n }\r\n formData.append(\"directory\", directory);\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/update-resource-list`,\r\n formData\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async downloadSelectResource() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-download-resource-url`,\r\n { filePath: this.selectResourceList[0].path }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n var aElement = document.createElement(\"a\");\r\n aElement.href = response.data.data;\r\n aElement.target = \"_blank\";\r\n\r\n aElement.click();\r\n }\r\n\r\n async editSelectFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-text`,\r\n {\r\n path: resourceInfo.path,\r\n }\r\n );\r\n\r\n this.isShowEditDialog = true;\r\n this.currentEditText = response.data.data;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async saveEditFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/set-text`,\r\n {\r\n path: resourceInfo.path,\r\n content: this.currentEditText,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n this.isShowEditDialog = false;\r\n this.currentEditText = \"\";\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n clearAllSelect() {\r\n for (var resourceInfo of this.selectResourceList) {\r\n resourceInfo.isSelected = false;\r\n }\r\n }\r\n\r\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\r\n if (!event.ctrlKey) {\r\n this.clearAllSelect();\r\n\r\n item.isSelected = true;\r\n return;\r\n }\r\n\r\n item.isSelected = !item.isSelected;\r\n }\r\n\r\n \r\n}\r\n"],"names":["Disposable","LoadingManager","MSAppClient","Messager"],"mappings":"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"}
|
|
@@ -3,11 +3,10 @@ const vue = require("vue");
|
|
|
3
3
|
const elementPlus = require("element-plus");
|
|
4
4
|
const ResourceManager = require("./ResourceManager.js");
|
|
5
5
|
const index_vue_vue_type_script_setup_true_lang = require("./components/resource-item/index.vue.js");
|
|
6
|
-
const _hoisted_1 = { class: "resource-list" };
|
|
7
|
-
const _hoisted_2 =
|
|
8
|
-
const _hoisted_3 =
|
|
9
|
-
const _hoisted_4 =
|
|
10
|
-
const _hoisted_5 = ["onClick", "onDblclick"];
|
|
6
|
+
const _hoisted_1 = { class: "resource-list-header" };
|
|
7
|
+
const _hoisted_2 = ["onClick"];
|
|
8
|
+
const _hoisted_3 = { class: "resource-list-list" };
|
|
9
|
+
const _hoisted_4 = ["onClick", "onDblclick"];
|
|
11
10
|
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
12
11
|
__name: "resource-list",
|
|
13
12
|
props: {
|
|
@@ -20,6 +19,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
20
19
|
setup(__props, { emit: __emit }) {
|
|
21
20
|
const props = __props;
|
|
22
21
|
const emit = __emit;
|
|
22
|
+
const listMode = vue.ref("row");
|
|
23
23
|
const handleBreadcrumbClick = (index) => {
|
|
24
24
|
if (typeof index !== "number") {
|
|
25
25
|
props.resourceManager.loadResourceInfoList("/");
|
|
@@ -51,17 +51,28 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
51
51
|
const _component_MKSvgIcon = vue.resolveComponent("MKSvgIcon");
|
|
52
52
|
const _component_ElBreadcrumbItem = vue.resolveComponent("ElBreadcrumbItem");
|
|
53
53
|
const _component_ElBreadcrumb = vue.resolveComponent("ElBreadcrumb");
|
|
54
|
-
return vue.openBlock(), vue.createElementBlock("div",
|
|
55
|
-
vue.
|
|
54
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
55
|
+
class: vue.normalizeClass(["resource-list", { row: listMode.value == "row" }])
|
|
56
|
+
}, [
|
|
57
|
+
vue.createElementVNode("div", _hoisted_1, [
|
|
56
58
|
vue.createVNode(_component_ElBreadcrumb, null, {
|
|
57
59
|
default: vue.withCtx(() => [
|
|
58
60
|
vue.createVNode(_component_ElBreadcrumbItem, null, {
|
|
59
61
|
default: vue.withCtx(() => [
|
|
62
|
+
__props.resourceManager.directories.length >= 1 ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
63
|
+
key: 0,
|
|
64
|
+
class: "resource-list-breadcrumb-item",
|
|
65
|
+
onClick: _cache[0] || (_cache[0] = ($event) => handleBreadcrumbClick(__props.resourceManager.directories.length - 2))
|
|
66
|
+
}, [
|
|
67
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: "ArrowLeftBold" }),
|
|
68
|
+
vue.createTextVNode(" 返回 ")
|
|
69
|
+
])) : vue.createCommentVNode("", true),
|
|
60
70
|
vue.createElementVNode("span", {
|
|
61
71
|
class: "resource-list-breadcrumb-item",
|
|
62
|
-
onClick: _cache[
|
|
72
|
+
onClick: _cache[1] || (_cache[1] = ($event) => handleBreadcrumbClick())
|
|
63
73
|
}, [
|
|
64
|
-
vue.createVNode(_component_MKSvgIcon, { iconClass: "HomeFilled" })
|
|
74
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: "HomeFilled" }),
|
|
75
|
+
vue.createTextVNode(" 根目录 ")
|
|
65
76
|
])
|
|
66
77
|
]),
|
|
67
78
|
_: 1
|
|
@@ -72,25 +83,37 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
72
83
|
vue.createElementVNode("span", {
|
|
73
84
|
class: "resource-list-breadcrumb-item",
|
|
74
85
|
onClick: ($event) => handleBreadcrumbClick(i)
|
|
75
|
-
}, vue.toDisplayString(item), 9,
|
|
86
|
+
}, vue.toDisplayString(item), 9, _hoisted_2)
|
|
76
87
|
]),
|
|
77
88
|
_: 2
|
|
78
89
|
}, 1024);
|
|
79
90
|
}), 128))
|
|
80
91
|
]),
|
|
81
92
|
_: 1
|
|
82
|
-
})
|
|
93
|
+
}),
|
|
94
|
+
vue.createElementVNode("div", {
|
|
95
|
+
class: "resource-list-mode",
|
|
96
|
+
onClick: _cache[2] || (_cache[2] = ($event) => listMode.value = listMode.value == "row" ? "col" : "row")
|
|
97
|
+
}, [
|
|
98
|
+
listMode.value == "row" ? (vue.openBlock(), vue.createBlock(_component_MKSvgIcon, {
|
|
99
|
+
key: 0,
|
|
100
|
+
iconClass: "Grid"
|
|
101
|
+
})) : (vue.openBlock(), vue.createBlock(_component_MKSvgIcon, {
|
|
102
|
+
key: 1,
|
|
103
|
+
iconClass: "Fold"
|
|
104
|
+
}))
|
|
105
|
+
])
|
|
83
106
|
]),
|
|
84
107
|
vue.createElementVNode("div", {
|
|
85
108
|
class: "resource-list-main",
|
|
86
109
|
onClick: handleMainClick,
|
|
87
|
-
onDragover: _cache[
|
|
110
|
+
onDragover: _cache[3] || (_cache[3] = vue.withModifiers(() => {
|
|
88
111
|
}, ["prevent"])),
|
|
89
112
|
onDrop: vue.withModifiers(handleDrop, ["prevent"])
|
|
90
113
|
}, [
|
|
91
114
|
vue.createVNode(vue.unref(elementPlus.ElScrollbar), { height: "100%" }, {
|
|
92
115
|
default: vue.withCtx(() => [
|
|
93
|
-
vue.createElementVNode("div",
|
|
116
|
+
vue.createElementVNode("div", _hoisted_3, [
|
|
94
117
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.resourceManager.resourceInfoList, (item) => {
|
|
95
118
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
96
119
|
class: "resource-list__item",
|
|
@@ -101,14 +124,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
101
124
|
key: item.path,
|
|
102
125
|
resourceItem: item
|
|
103
126
|
}, null, 8, ["resourceItem"]))
|
|
104
|
-
], 40,
|
|
127
|
+
], 40, _hoisted_4);
|
|
105
128
|
}), 256))
|
|
106
129
|
])
|
|
107
130
|
]),
|
|
108
131
|
_: 1
|
|
109
132
|
})
|
|
110
133
|
], 32)
|
|
111
|
-
]);
|
|
134
|
+
], 2);
|
|
112
135
|
};
|
|
113
136
|
}
|
|
114
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-list.vue.js","sources":["../../../../../src/components/business/resource-list/resource-list.vue"],"sourcesContent":["<template>\n <div class=\"resource-list\">\n <div class=\"resource-list-header\">\n <ElBreadcrumb>\n <ElBreadcrumbItem>\n <span\n class=\"resource-list-breadcrumb-item\"\n @click=\"handleBreadcrumbClick()\"\n >\n <MKSvgIcon iconClass=\"HomeFilled\" />\n </span>\n </ElBreadcrumbItem>\n <ElBreadcrumbItem\n v-for=\"(item, i) in resourceManager.directories\"\n :key=\"item\"\n >\n <span\n class=\"resource-list-breadcrumb-item\"\n @click=\"handleBreadcrumbClick(i)\"\n >\n {{ item }}\n </span>\n </ElBreadcrumbItem>\n </ElBreadcrumb>\n </div>\n\n <div\n class=\"resource-list-main\"\n @click=\"handleMainClick\"\n @dragover.prevent\n @drop.prevent=\"handleDrop\"\n >\n <ElScrollbar height=\"100%\">\n <div class=\"resource-list-list\">\n <div\n v-for=\"item in resourceManager.resourceInfoList\"\n class=\"resource-list__item\"\n @click.stop=\"handleClick($event, item)\"\n @dblclick=\"handleDbClick(item)\"\n >\n <ResourceItem :key=\"item.path\" :resourceItem=\"item\" />\n </div>\n </div>\n </ElScrollbar>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { ElScrollbar } from \"element-plus\";\nimport { ResourceManager, ResourceInfo } from \"./ResourceManager\";\nimport ResourceItem from \"./components/resource-item/index.vue\";\n\nconst props = defineProps({\n resourceManager: {\n type: ResourceManager,\n required: true,\n }
|
|
1
|
+
{"version":3,"file":"resource-list.vue.js","sources":["../../../../../src/components/business/resource-list/resource-list.vue"],"sourcesContent":["<template>\r\n <div class=\"resource-list\" :class=\"{row:listMode=='row'}\">\r\n <div class=\"resource-list-header\">\r\n <ElBreadcrumb>\r\n <ElBreadcrumbItem>\r\n <span class=\"resource-list-breadcrumb-item\" v-if=\"resourceManager.directories.length>=1\"\r\n @click=\"handleBreadcrumbClick(resourceManager.directories.length-2)\"\r\n >\r\n <MKSvgIcon iconClass=\"ArrowLeftBold\" />\r\n 返回\r\n </span>\r\n <span\r\n class=\"resource-list-breadcrumb-item\"\r\n @click=\"handleBreadcrumbClick()\"\r\n >\r\n <MKSvgIcon iconClass=\"HomeFilled\" />\r\n 根目录\r\n </span>\r\n </ElBreadcrumbItem>\r\n <ElBreadcrumbItem\r\n v-for=\"(item, i) in resourceManager.directories\"\r\n :key=\"item\"\r\n >\r\n <span\r\n class=\"resource-list-breadcrumb-item\"\r\n @click=\"handleBreadcrumbClick(i)\"\r\n >\r\n {{ item }}\r\n </span>\r\n </ElBreadcrumbItem>\r\n </ElBreadcrumb>\r\n <div class=\"resource-list-mode\" @click=\"listMode = listMode=='row' ? 'col':'row'\">\r\n <MKSvgIcon v-if=\"listMode=='row'\" iconClass=\"Grid\" />\r\n <MKSvgIcon v-else iconClass=\"Fold\" />\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"resource-list-main\"\r\n @click=\"handleMainClick\"\r\n @dragover.prevent\r\n @drop.prevent=\"handleDrop\"\r\n >\r\n <ElScrollbar height=\"100%\">\r\n <div class=\"resource-list-list\">\r\n <div\r\n v-for=\"item in resourceManager.resourceInfoList\"\r\n class=\"resource-list__item\"\r\n @click.stop=\"handleClick($event, item)\"\r\n @dblclick=\"handleDbClick(item)\"\r\n >\r\n <ResourceItem :key=\"item.path\" :resourceItem=\"item\" />\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 } from \"vue\";\r\nimport { ElScrollbar } from \"element-plus\";\r\nimport { ResourceManager, ResourceInfo } from \"./ResourceManager\";\r\nimport ResourceItem from \"./components/resource-item/index.vue\";\r\n\r\nconst props = defineProps({\r\n resourceManager: {\r\n type: ResourceManager,\r\n required: true,\r\n }\r\n});\r\n\r\nconst emit = defineEmits([\"drop\"]);\r\nconst listMode = ref(\"row\")\r\n\r\nconst handleBreadcrumbClick = (index?: number) => {\r\n if (typeof index !== \"number\") {\r\n props.resourceManager.loadResourceInfoList(\"/\");\r\n\r\n return;\r\n }\r\n\r\n props.resourceManager.loadResourceInfoList(\r\n props.resourceManager.directories.splice(0, index + 1).join(\"/\")\r\n );\r\n};\r\n\r\nconst handleMainClick = () => {\r\n props.resourceManager.clearAllSelect();\r\n};\r\n\r\nconst handleClick = (event: MouseEvent, item: ResourceInfo) => {\r\n props.resourceManager.handleSelectClick(event, item);\r\n};\r\n\r\nconst handleDbClick = (item: ResourceInfo) => {\r\n if (!item.isDirectory) {\r\n return;\r\n }\r\n\r\n props.resourceManager.loadResourceInfoList(item.path);\r\n};\r\n\r\nconst handleDrop = async (event: DragEvent) => {\r\n emit(\"drop\", event);\r\n};\r\n\r\nonMounted(() => {\r\n props.resourceManager.loadResourceInfoList();\r\n});\r\n</script>\r\n"],"names":["ref","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;AAiEA,UAAM,QAAQ;AAOd,UAAM,OAAO;AACP,UAAA,WAAWA,QAAI,KAAK;AAEpB,UAAA,wBAAwB,CAAC,UAAmB;AAC5C,UAAA,OAAO,UAAU,UAAU;AACvB,cAAA,gBAAgB,qBAAqB,GAAG;AAE9C;AAAA,MACF;AAEA,YAAM,gBAAgB;AAAA,QACpB,MAAM,gBAAgB,YAAY,OAAO,GAAG,QAAQ,CAAC,EAAE,KAAK,GAAG;AAAA,MAAA;AAAA,IACjE;AAGF,UAAM,kBAAkB,MAAM;AAC5B,YAAM,gBAAgB;IAAe;AAGjC,UAAA,cAAc,CAAC,OAAmB,SAAuB;AACvD,YAAA,gBAAgB,kBAAkB,OAAO,IAAI;AAAA,IAAA;AAG/C,UAAA,gBAAgB,CAAC,SAAuB;AACxC,UAAA,CAAC,KAAK,aAAa;AACrB;AAAA,MACF;AAEM,YAAA,gBAAgB,qBAAqB,KAAK,IAAI;AAAA,IAAA;AAGhD,UAAA,aAAa,OAAO,UAAqB;AAC7C,WAAK,QAAQ,KAAK;AAAA,IAAA;AAGpBC,QAAAA,UAAU,MAAM;AACd,YAAM,gBAAgB;IAAqB,CAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -69,9 +69,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
69
69
|
vue.unref(resourceManager).isShowEditDialog = false;
|
|
70
70
|
vue.unref(resourceManager).currentEditText = "";
|
|
71
71
|
};
|
|
72
|
-
const publishAssetsHandle = () => {
|
|
73
|
-
vue.unref(resourceManager).publishAssets();
|
|
74
|
-
};
|
|
75
72
|
const handleUploadClick = () => {
|
|
76
73
|
var input = document.createElement("input");
|
|
77
74
|
input.type = "file";
|
|
@@ -213,15 +210,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
213
210
|
]),
|
|
214
211
|
_: 1
|
|
215
212
|
}),
|
|
216
|
-
vue.
|
|
217
|
-
type: "primary",
|
|
218
|
-
onClick: publishAssetsHandle
|
|
219
|
-
}, {
|
|
220
|
-
default: vue.withCtx(() => [
|
|
221
|
-
vue.createTextVNode("发布资产")
|
|
222
|
-
]),
|
|
223
|
-
_: 1
|
|
224
|
-
})
|
|
213
|
+
vue.renderSlot(_ctx.$slots, "tools")
|
|
225
214
|
]),
|
|
226
215
|
vue.createVNode(vue.unref(index.MKResourceList), {
|
|
227
216
|
resourceManager: resourceManager.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-manager.vue.js","sources":["../../../../../src/components/business/resource-manager/resource-manager.vue"],"sourcesContent":["<template>\n <div v-loading=\"resourceManager.loading\" class=\"resource-manager\">\n <div class=\"resource-manager-tools\">\n <ElButton\n v-if=\"selectResourceCount > 0\"\n type=\"danger\"\n @click=\"handleDeleteClick\"\n >\n 删除\n </ElButton>\n <ElButton\n v-if=\"\n selectResourceCount === 1 &&\n !resourceManager.selectResourceList[0].isDirectory\n \"\n @click=\"handleEdit\"\n >\n 编辑\n </ElButton>\n <ElButton\n v-if=\"\n selectResourceCount === 1 &&\n !resourceManager.selectResourceList[0].isDirectory\n \"\n @click=\"handleDownload()\"\n >\n 下载\n </ElButton>\n <ElButton type=\"primary\" @click=\"handleUploadClick\">上传</ElButton>\n <ElButton type=\"primary\" @click=\"publishAssetsHandle\">发布资产</ElButton>\n </div>\n\n <MKResourceList :resourceManager=\"resourceManager\" @drop=\"handleDrop\" />\n </div>\n\n <ElDialog v-model=\"isShowEditDialog\" @close=\"handleEditDialogClose\">\n <MKCodeEditor\n v-if=\"isShowEditDialog\"\n v-model=\"resourceManager.currentEditText\"\n />\n <template #footer>\n <ElButton @click=\"handleEditDialogClose\">取消</ElButton>\n <ElButton\n type=\"primary\"\n v-loading=\"resourceManager.loading\"\n @click=\"handleEditDialogConfirm\"\n >\n 保存\n </ElButton>\n </template>\n </ElDialog>\n\n <ElDialog\n v-model=\"isShowConfirmDialog\"\n title=\"文件已存在\"\n @close=\"handleDialogCancelClick\"\n >\n <div v-for=\"path in existPathList\" :key=\"path\">{{ path }}</div>\n\n <template #footer>\n <ElButton type=\"danger\" @click=\"handleDialogOverrideClick\">覆盖</ElButton>\n <ElButton type=\"warning\" @click=\"handleDialogSkipClick\">跳过</ElButton>\n <ElButton @click=\"handleDialogCancelClick\">取消</ElButton>\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, computed, unref, ref } from \"vue\";\nimport { ElButton, ElMessageBox, ElMessage, ElDialog } from \"element-plus\";\nimport { MKCodeEditor } from \"../../basic\";\nimport { MKResourceList, ResourceManager } from \"../resource-list\";\n\nconst props = defineProps({\n resourceManager: {\n type: ResourceManager,\n required: true,\n },\n});\n\nconst isShowConfirmDialog = ref(false);\n\nlet waitUploadFiles: File[] = [];\nconst existPathList = ref([] as string[]);\n\nconst resourceManager = computed(() => props.resourceManager);\n\nconst isShowEditDialog = computed(\n () => unref(resourceManager).isShowEditDialog\n);\n\nconst selectResourceCount = computed(\n () => unref(resourceManager).selectResourceList.length\n);\n\nconst handleDeleteClick = async () => {\n const isConfirm = await ElMessageBox.confirm(\"是否删除选中文件\", {\n type: \"warning\",\n }).then(\n () => true,\n () => false\n );\n\n if (!isConfirm) {\n return;\n }\n\n unref(resourceManager).deleteSelectResourceList();\n};\n\nconst handleEdit = () => {\n unref(resourceManager).editSelectFile();\n};\n\nconst handleEditDialogConfirm = () => {\n unref(resourceManager).saveEditFile();\n};\n\nconst handleEditDialogClose = () => {\n unref(resourceManager).isShowEditDialog = false;\n unref(resourceManager).currentEditText = \"\";\n};\n\nconst publishAssetsHandle = () => {\n unref(resourceManager).publishAssets();\n};\n\nconst handleUploadClick = () => {\n /** @type {HTMLInputElement} */\n var input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = true;\n\n input.addEventListener(\"change\", () => {\n var files = new Array(input.files!.length)\n .fill(0)\n .map((_, i) => input.files![i]);\n\n unref(resourceManager).uploadResourceList(files);\n });\n\n input.click();\n};\n\nconst handleDownload = () => {\n unref(resourceManager).downloadSelectResource();\n};\n\nconst handleDrop = async (event: DragEvent) => {\n waitUploadFiles = [];\n\n var _items = event.dataTransfer?.items;\n\n var fileSystemEntry = _items![0].webkitGetAsEntry() as any;\n\n const internalProcess = async (item: any, path: string = \"\") => {\n if (item.isFile) {\n return [\n await new Promise((resolve) => {\n item.file((file: File) => {\n resolve(\n new File([file], `${path}${file.name}`, { type: file.type })\n );\n });\n }),\n ] as File[];\n } else if (item.isDirectory) {\n var directoryReader = item.createReader();\n\n const entries = (await new Promise((resolve) => {\n directoryReader.readEntries(resolve);\n })) as any[];\n\n var result: File[] = [];\n\n for (let i = 0; i < entries.length; i++) {\n result = result.concat(\n await internalProcess(entries[i], `${path}${item.name}/`)\n );\n }\n\n return result;\n }\n\n return [];\n };\n\n const files = (waitUploadFiles = await internalProcess(fileSystemEntry));\n\n try {\n unref(resourceManager).loadingManager.startLoading();\n\n const checkResponse = await unref(resourceManager).getExistPathList(\n files.map((file) => file.name)\n );\n\n if (checkResponse.data.code !== 200) {\n ElMessage.error({ message: checkResponse.data.msg });\n return;\n }\n\n if (checkResponse.data.data?.length === 0) {\n await unref(resourceManager).uploadResourceList(files);\n\n waitUploadFiles = [];\n return;\n }\n\n existPathList.value = checkResponse.data.data ?? [];\n\n isShowConfirmDialog.value = true;\n } catch (e) {\n console.log(e);\n ElMessage.error(\"网络异常,上传失败\");\n } finally {\n unref(resourceManager).loadingManager.completeLoading();\n }\n};\n\nconst handleDialogOverrideClick = async () => {\n try {\n await unref(resourceManager).uploadResourceList(waitUploadFiles);\n } catch (e) {\n console.log(e);\n ElMessage.error(\"网络异常,上传失败\");\n }\n\n handleDialogCancelClick();\n};\n\nconst handleDialogSkipClick = async () => {\n try {\n const files = waitUploadFiles.filter(\n (file) => !unref(existPathList).includes(file.name)\n );\n\n if (files.length) {\n await unref(resourceManager).uploadResourceList(files);\n }\n } catch (e) {\n console.log(e);\n ElMessage.error(\"网络异常,上传失败\");\n }\n\n handleDialogCancelClick();\n};\n\nconst handleDialogCancelClick = () => {\n isShowConfirmDialog.value = false;\n existPathList.value = [];\n waitUploadFiles = [];\n};\n\nonMounted(() => {\n unref(resourceManager).loadResourceInfoList();\n});\n</script>\n"],"names":["ref","computed","unref","ElMessageBox","ElMessage","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource-manager.vue.js","sources":["../../../../../src/components/business/resource-manager/resource-manager.vue"],"sourcesContent":["<template>\r\n <div v-loading=\"resourceManager.loading\" class=\"resource-manager\">\r\n <div class=\"resource-manager-tools\">\r\n <ElButton\r\n v-if=\"selectResourceCount > 0\"\r\n type=\"danger\"\r\n @click=\"handleDeleteClick\"\r\n >\r\n 删除\r\n </ElButton>\r\n <ElButton\r\n v-if=\"\r\n selectResourceCount === 1 &&\r\n !resourceManager.selectResourceList[0].isDirectory\r\n \"\r\n @click=\"handleEdit\"\r\n >\r\n 编辑\r\n </ElButton>\r\n <ElButton\r\n v-if=\"\r\n selectResourceCount === 1 &&\r\n !resourceManager.selectResourceList[0].isDirectory\r\n \"\r\n @click=\"handleDownload()\"\r\n >\r\n 下载\r\n </ElButton>\r\n <ElButton type=\"primary\" @click=\"handleUploadClick\">上传</ElButton>\r\n <slot name=\"tools\"></slot>\r\n </div>\r\n <MKResourceList :resourceManager=\"resourceManager\" @drop=\"handleDrop\" />\r\n </div>\r\n\r\n <ElDialog v-model=\"isShowEditDialog\" @close=\"handleEditDialogClose\">\r\n <MKCodeEditor\r\n v-if=\"isShowEditDialog\"\r\n v-model=\"resourceManager.currentEditText\"\r\n />\r\n <template #footer>\r\n <ElButton @click=\"handleEditDialogClose\">取消</ElButton>\r\n <ElButton\r\n type=\"primary\"\r\n v-loading=\"resourceManager.loading\"\r\n @click=\"handleEditDialogConfirm\"\r\n >\r\n 保存\r\n </ElButton>\r\n </template>\r\n </ElDialog>\r\n\r\n <ElDialog\r\n v-model=\"isShowConfirmDialog\"\r\n title=\"文件已存在\"\r\n @close=\"handleDialogCancelClick\"\r\n >\r\n <div v-for=\"path in existPathList\" :key=\"path\">{{ path }}</div>\r\n\r\n <template #footer>\r\n <ElButton type=\"danger\" @click=\"handleDialogOverrideClick\">覆盖</ElButton>\r\n <ElButton type=\"warning\" @click=\"handleDialogSkipClick\">跳过</ElButton>\r\n <ElButton @click=\"handleDialogCancelClick\">取消</ElButton>\r\n </template>\r\n </ElDialog>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, computed, unref, ref } from \"vue\";\r\nimport { ElButton, ElMessageBox, ElMessage, ElDialog } from \"element-plus\";\r\nimport { MKCodeEditor } from \"../../basic\";\r\nimport { MKResourceList, ResourceManager } from \"../resource-list\";\r\n\r\nconst props = defineProps({\r\n resourceManager: {\r\n type: ResourceManager,\r\n required: true,\r\n },\r\n});\r\n\r\nconst isShowConfirmDialog = ref(false);\r\n\r\nlet waitUploadFiles: File[] = [];\r\nconst existPathList = ref([] as string[]);\r\n\r\nconst resourceManager = computed(() => props.resourceManager);\r\n\r\nconst isShowEditDialog = computed(\r\n () => unref(resourceManager).isShowEditDialog\r\n);\r\n\r\nconst selectResourceCount = computed(\r\n () => unref(resourceManager).selectResourceList.length\r\n);\r\n\r\nconst handleDeleteClick = 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 unref(resourceManager).deleteSelectResourceList();\r\n};\r\n\r\nconst handleEdit = () => {\r\n unref(resourceManager).editSelectFile();\r\n};\r\n\r\nconst handleEditDialogConfirm = () => {\r\n unref(resourceManager).saveEditFile();\r\n};\r\n\r\nconst handleEditDialogClose = () => {\r\n unref(resourceManager).isShowEditDialog = false;\r\n unref(resourceManager).currentEditText = \"\";\r\n};\r\n\r\nconst handleUploadClick = () => {\r\n /** @type {HTMLInputElement} */\r\n var input = document.createElement(\"input\");\r\n input.type = \"file\";\r\n input.multiple = true;\r\n\r\n input.addEventListener(\"change\", () => {\r\n var files = new Array(input.files!.length)\r\n .fill(0)\r\n .map((_, i) => input.files![i]);\r\n\r\n unref(resourceManager).uploadResourceList(files);\r\n });\r\n\r\n input.click();\r\n};\r\n\r\nconst handleDownload = () => {\r\n unref(resourceManager).downloadSelectResource();\r\n};\r\n\r\nconst handleDrop = async (event: DragEvent) => {\r\n waitUploadFiles = [];\r\n\r\n var _items = event.dataTransfer?.items;\r\n\r\n var fileSystemEntry = _items![0].webkitGetAsEntry() as any;\r\n\r\n const internalProcess = async (item: any, path: string = \"\") => {\r\n if (item.isFile) {\r\n return [\r\n await new Promise((resolve) => {\r\n item.file((file: File) => {\r\n resolve(\r\n new File([file], `${path}${file.name}`, { type: file.type })\r\n );\r\n });\r\n }),\r\n ] as File[];\r\n } else if (item.isDirectory) {\r\n var directoryReader = item.createReader();\r\n\r\n const entries = (await new Promise((resolve) => {\r\n directoryReader.readEntries(resolve);\r\n })) as any[];\r\n\r\n var result: File[] = [];\r\n\r\n for (let i = 0; i < entries.length; i++) {\r\n result = result.concat(\r\n await internalProcess(entries[i], `${path}${item.name}/`)\r\n );\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return [];\r\n };\r\n\r\n const files = (waitUploadFiles = await internalProcess(fileSystemEntry));\r\n\r\n try {\r\n unref(resourceManager).loadingManager.startLoading();\r\n\r\n const checkResponse = await unref(resourceManager).getExistPathList(\r\n files.map((file) => file.name)\r\n );\r\n\r\n if (checkResponse.data.code !== 200) {\r\n ElMessage.error({ message: checkResponse.data.msg });\r\n return;\r\n }\r\n\r\n if (checkResponse.data.data?.length === 0) {\r\n await unref(resourceManager).uploadResourceList(files);\r\n\r\n waitUploadFiles = [];\r\n return;\r\n }\r\n\r\n existPathList.value = checkResponse.data.data ?? [];\r\n\r\n isShowConfirmDialog.value = true;\r\n } catch (e) {\r\n console.log(e);\r\n ElMessage.error(\"网络异常,上传失败\");\r\n } finally {\r\n unref(resourceManager).loadingManager.completeLoading();\r\n }\r\n};\r\n\r\nconst handleDialogOverrideClick = async () => {\r\n try {\r\n await unref(resourceManager).uploadResourceList(waitUploadFiles);\r\n } catch (e) {\r\n console.log(e);\r\n ElMessage.error(\"网络异常,上传失败\");\r\n }\r\n\r\n handleDialogCancelClick();\r\n};\r\n\r\nconst handleDialogSkipClick = async () => {\r\n try {\r\n const files = waitUploadFiles.filter(\r\n (file) => !unref(existPathList).includes(file.name)\r\n );\r\n\r\n if (files.length) {\r\n await unref(resourceManager).uploadResourceList(files);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n ElMessage.error(\"网络异常,上传失败\");\r\n }\r\n\r\n handleDialogCancelClick();\r\n};\r\n\r\nconst handleDialogCancelClick = () => {\r\n isShowConfirmDialog.value = false;\r\n existPathList.value = [];\r\n waitUploadFiles = [];\r\n};\r\n\r\nonMounted(() => {\r\n unref(resourceManager).loadResourceInfoList();\r\n});\r\n</script>\r\n"],"names":["ref","computed","unref","ElMessageBox","ElMessage","onMounted"],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
19
19
|
const dataTableContext = vue.inject(token.DATA_TABLE_CONTEXT_KEY);
|
|
20
20
|
const dataTableEl = vue.computed(() => (dataTableContext == null ? void 0 : dataTableContext.el) ?? null);
|
|
21
21
|
const tableEl = vue.ref(null);
|
|
22
|
-
window.tableEl = tableEl;
|
|
23
22
|
const dataTable = vue.computed(() => props.dataTable ?? dataTableContext.dataTable);
|
|
24
23
|
const rowKey = vue.computed(() => props.rowKey || vue.unref(dataTable).primaryKey);
|
|
25
24
|
const list = vue.computed(() => props.getList(vue.unref(dataTable)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n onMounted,\n ref,\n Ref,\n unref,\n watch,\n nextTick,\n inject,\n} from \"vue\";\nimport { Column, ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { isEqual } from \"lodash-es\";\nimport MKDataTableColumn from \"../../data-table-column\";\nimport { tableProps } from \"./table-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\nimport Sortable from \"sortablejs\";\nimport { OrderType } from \"@maketribe/request\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const treeProps = computed(() => {\n return props.treeProps;\n });\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTableEl = computed(() => dataTableContext?.el ?? null);\n\n const tableEl: Ref<InstanceType<typeof ElTable> | null> = ref(null);\n\n (window as any).tableEl = tableEl;\n\n const dataTable = computed(\n () => props.dataTable ?? dataTableContext!.dataTable\n );\n\n const rowKey = computed(() => props.rowKey || unref(dataTable).primaryKey);\n\n const list = computed(() => props.getList(unref(dataTable)));\n\n const selectionColumn = computed(() => unref(dataTable).selectionColumn);\n\n type SortChangeEvent = { column: Column; prop: string; order: string };\n\n const handleSortChange = ({ column, prop, order }: SortChangeEvent) => {\n let orderType: OrderType | null = null;\n\n if (order === \"descending\") {\n orderType = OrderType.DESC;\n } else if (order === \"ascending\") {\n orderType = OrderType.ASC;\n }\n\n unref(dataTable).sorter.setColumnSort(prop, orderType);\n };\n\n let allowChangeSelection = true;\n\n const handleSelectionChange = (items: any[]) => {\n if (allowChangeSelection) {\n unref(dataTable).setSelection(\n items.map((item) => item[unref(dataTable).primaryKey])\n );\n }\n };\n\n onMounted(() => {\n const _tableEl = unref(tableEl)!;\n\n watch(list, (list, _, onCleanup) => {\n onCleanup(\n watch(\n computed(() => unref(dataTable).getSelection()),\n async (selections) => {\n const primaryKey = unref(dataTable).primaryKey;\n\n const tableSelections = _tableEl\n .getSelectionRows()\n .map((item: any) => item[primaryKey])\n .sort();\n\n if (isEqual(selections, tableSelections)) {\n return;\n }\n\n allowChangeSelection = false;\n\n _tableEl.clearSelection();\n\n await nextTick();\n\n const selectedRows = list.filter((item: any) =>\n selections.includes(item[primaryKey])\n );\n\n for (var item of selectedRows) {\n _tableEl.toggleRowSelection(item, true);\n }\n\n allowChangeSelection = true;\n },\n {\n immediate: true,\n }\n )\n );\n });\n\n watch(\n dataTableEl,\n (el, _, onCleanup) => {\n if (!el) {\n return;\n }\n var sortableInstance = Sortable.create(el.querySelector(\"tbody\")!, {\n handle: \".mk-column-sort__drag\",\n animation: 300,\n onEnd: (event) => {\n const newIndex = event.newIndex!;\n const oldIndx = event.oldIndex!;\n\n if (oldIndx === newIndex) {\n return;\n }\n\n const movedElement = unref(dataTable).getList()[oldIndx];\n\n var updateRecords: any[] = [];\n\n if (oldIndx > newIndex) {\n // 后面元素移到了中间元素前 中间元素需要增加排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(newIndex, oldIndx);\n\n movedElement.sort = middleElements[0].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort += 1;\n }\n\n updateRecords = [movedElement, ...middleElements];\n } else {\n // 前面元素移动到了中间元素后 中间元素需要减少排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(oldIndx, newIndex);\n\n movedElement.sort =\n middleElements[middleElements.length - 1].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort -= 1;\n }\n\n updateRecords = [...middleElements, movedElement];\n }\n },\n });\n\n onCleanup(() => {\n sortableInstance.destroy();\n });\n },\n { immediate: true }\n );\n });\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type || \"default\",\n sortable: column.sortable,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumn\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(list)}\n row-key={unref(rowKey)}\n onSort-change={handleSortChange}\n ref={(el: any) =>\n (tableEl.value = el as InstanceType<typeof ElTable>)\n }\n show-overflow-tooltip\n border\n stripe\n lazy={props.lazy}\n load={props.load as any}\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n onSelection-change={handleSelectionChange}\n defaultExpandAll={props.defaultExpandAll}\n >\n {unref(selectionColumn).visible ? (\n <ElTableColumn\n type={unref(selectionColumn).type ?? \"selection\"}\n width={unref(selectionColumn).width}\n fixed={unref(selectionColumn).fixed}\n />\n ) : null}\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","computed","treeProps","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTableEl","el","tableEl","ref","window","dataTable","rowKey","unref","primaryKey","list","getList","selectionColumn","handleSortChange","column","prop","order","orderType","OrderType","DESC","ASC","sorter","setColumnSort","allowChangeSelection","handleSelectionChange","items","setSelection","map","item","onMounted","_tableEl","watch","_","onCleanup","getSelection","selections","tableSelections","getSelectionRows","sort","isEqual","clearSelection","nextTick","selectedRows","filter","includes","toggleRowSelection","immediate","sortableInstance","Sortable","create","querySelector","handle","animation","onEnd","event","newIndex","oldIndx","oldIndex","movedElement","middleElements","splice","middleElement","Number","parseInt","length","destroy","columns","getColumns","visible","columnProps","label","width","minWidth","fixed","align","reserveSelection","type","sortable","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumn","ElTable","value","lazy","load","defaultExpandAll","empty","ElEmpty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n onMounted,\n ref,\n Ref,\n unref,\n watch,\n nextTick,\n inject,\n} from \"vue\";\nimport { Column, ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { isEqual } from \"lodash-es\";\nimport MKDataTableColumn from \"../../data-table-column\";\nimport { tableProps } from \"./table-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\nimport Sortable from \"sortablejs\";\nimport { OrderType } from \"@maketribe/request\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const treeProps = computed(() => {\n return props.treeProps;\n });\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTableEl = computed(() => dataTableContext?.el ?? null);\n\n const tableEl: Ref<InstanceType<typeof ElTable> | null> = ref(null);\n\n const dataTable = computed(\n () => props.dataTable ?? dataTableContext!.dataTable\n );\n\n const rowKey = computed(() => props.rowKey || unref(dataTable).primaryKey);\n\n const list = computed(() => props.getList(unref(dataTable)));\n\n const selectionColumn = computed(() => unref(dataTable).selectionColumn);\n\n type SortChangeEvent = { column: Column; prop: string; order: string };\n\n const handleSortChange = ({ column, prop, order }: SortChangeEvent) => {\n let orderType: OrderType | null = null;\n\n if (order === \"descending\") {\n orderType = OrderType.DESC;\n } else if (order === \"ascending\") {\n orderType = OrderType.ASC;\n }\n\n unref(dataTable).sorter.setColumnSort(prop, orderType);\n };\n\n let allowChangeSelection = true;\n\n const handleSelectionChange = (items: any[]) => {\n if (allowChangeSelection) {\n unref(dataTable).setSelection(\n items.map((item) => item[unref(dataTable).primaryKey])\n );\n }\n };\n\n onMounted(() => {\n const _tableEl = unref(tableEl)!;\n\n watch(list, (list, _, onCleanup) => {\n onCleanup(\n watch(\n computed(() => unref(dataTable).getSelection()),\n async (selections) => {\n const primaryKey = unref(dataTable).primaryKey;\n\n const tableSelections = _tableEl\n .getSelectionRows()\n .map((item: any) => item[primaryKey])\n .sort();\n\n if (isEqual(selections, tableSelections)) {\n return;\n }\n\n allowChangeSelection = false;\n\n _tableEl.clearSelection();\n\n await nextTick();\n\n const selectedRows = list.filter((item: any) =>\n selections.includes(item[primaryKey])\n );\n\n for (var item of selectedRows) {\n _tableEl.toggleRowSelection(item, true);\n }\n\n allowChangeSelection = true;\n },\n {\n immediate: true,\n }\n )\n );\n });\n\n watch(\n dataTableEl,\n (el, _, onCleanup) => {\n if (!el) {\n return;\n }\n var sortableInstance = Sortable.create(el.querySelector(\"tbody\")!, {\n handle: \".mk-column-sort__drag\",\n animation: 300,\n onEnd: (event) => {\n const newIndex = event.newIndex!;\n const oldIndx = event.oldIndex!;\n\n if (oldIndx === newIndex) {\n return;\n }\n\n const movedElement = unref(dataTable).getList()[oldIndx];\n\n var updateRecords: any[] = [];\n\n if (oldIndx > newIndex) {\n // 后面元素移到了中间元素前 中间元素需要增加排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(newIndex, oldIndx);\n\n movedElement.sort = middleElements[0].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort += 1;\n }\n\n updateRecords = [movedElement, ...middleElements];\n } else {\n // 前面元素移动到了中间元素后 中间元素需要减少排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(oldIndx, newIndex);\n\n movedElement.sort =\n middleElements[middleElements.length - 1].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort -= 1;\n }\n\n updateRecords = [...middleElements, movedElement];\n }\n },\n });\n\n onCleanup(() => {\n sortableInstance.destroy();\n });\n },\n { immediate: true }\n );\n });\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type || \"default\",\n sortable: column.sortable,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumn\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(list)}\n row-key={unref(rowKey)}\n onSort-change={handleSortChange}\n ref={(el: any) =>\n (tableEl.value = el as InstanceType<typeof ElTable>)\n }\n show-overflow-tooltip\n border\n stripe\n lazy={props.lazy}\n load={props.load as any}\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n onSelection-change={handleSelectionChange}\n defaultExpandAll={props.defaultExpandAll}\n >\n {unref(selectionColumn).visible ? (\n <ElTableColumn\n type={unref(selectionColumn).type ?? \"selection\"}\n width={unref(selectionColumn).width}\n fixed={unref(selectionColumn).fixed}\n />\n ) : null}\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","computed","treeProps","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTableEl","el","tableEl","ref","dataTable","rowKey","unref","primaryKey","list","getList","selectionColumn","handleSortChange","column","prop","order","orderType","OrderType","DESC","ASC","sorter","setColumnSort","allowChangeSelection","handleSelectionChange","items","setSelection","map","item","onMounted","_tableEl","watch","_","onCleanup","getSelection","selections","tableSelections","getSelectionRows","sort","isEqual","clearSelection","nextTick","selectedRows","filter","includes","toggleRowSelection","immediate","sortableInstance","Sortable","create","querySelector","handle","animation","onEnd","event","newIndex","oldIndx","oldIndex","movedElement","middleElements","splice","middleElement","Number","parseInt","length","destroy","columns","getColumns","visible","columnProps","label","width","minWidth","fixed","align","reserveSelection","type","sortable","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumn","ElTable","value","lazy","load","defaultExpandAll","empty","ElEmpty"],"mappings":"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"}
|
|
@@ -7,21 +7,24 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
7
7
|
setup(props, {
|
|
8
8
|
slots
|
|
9
9
|
}) {
|
|
10
|
-
|
|
11
|
-
const dataTable =
|
|
12
|
-
const tableHeader = vue.computed(() =>
|
|
10
|
+
const dataTableContext = vue.inject(token.DATA_TABLE_CONTEXT_KEY);
|
|
11
|
+
const dataTable = vue.computed(() => dataTableContext.dataTable);
|
|
12
|
+
const tableHeader = vue.computed(() => {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = vue.unref(dataTable)) == null ? void 0 : _a.header;
|
|
15
|
+
});
|
|
13
16
|
const leftArea = vue.computed(() => {
|
|
14
|
-
var
|
|
15
|
-
var items = ((
|
|
17
|
+
var _a;
|
|
18
|
+
var items = ((_a = vue.unref(tableHeader)) == null ? void 0 : _a.leftArea) ?? [];
|
|
16
19
|
return items.filter((item) => item.predicate());
|
|
17
20
|
});
|
|
18
21
|
const rightArea = vue.computed(() => {
|
|
19
|
-
var
|
|
20
|
-
var items = ((
|
|
22
|
+
var _a;
|
|
23
|
+
var items = ((_a = vue.unref(tableHeader)) == null ? void 0 : _a.rightArea) ?? [];
|
|
21
24
|
return items.filter((item) => item.predicate());
|
|
22
25
|
});
|
|
23
26
|
return () => {
|
|
24
|
-
var
|
|
27
|
+
var _a, _b;
|
|
25
28
|
const leftItems = vue.unref(leftArea).map((item) => vue.createVNode(headerItem, {
|
|
26
29
|
"tableHeaderItem": item
|
|
27
30
|
}, null));
|
|
@@ -32,7 +35,7 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
32
35
|
"class": "mk-table-view__header"
|
|
33
36
|
}, [vue.createVNode("div", {
|
|
34
37
|
"class": "mk-table-view__header-main"
|
|
35
|
-
}, [leftItems, (
|
|
38
|
+
}, [leftItems, (_a = slots["header-main"]) == null ? void 0 : _a.call(slots)]), vue.createVNode("div", {
|
|
36
39
|
"class": "mk-table-view__header-tools"
|
|
37
40
|
}, [rightItems, (_b = slots["header-tools"]) == null ? void 0 : _b.call(slots)])]);
|
|
38
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sources":["../../../../../../../../src/components/data-model/data-table/views/table-view/header/header.tsx"],"sourcesContent":["import { computed, defineComponent, inject, unref } from \"vue\";\nimport TableHeaderItem from \"./header-item\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\n\nexport default defineComponent({\n name: \"MKTableHeader\",\n setup(props, { slots }) {\n const
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../../../../../src/components/data-model/data-table/views/table-view/header/header.tsx"],"sourcesContent":["import { computed, defineComponent, inject, unref } from \"vue\";\nimport TableHeaderItem from \"./header-item\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\n\nexport default defineComponent({\n name: \"MKTableHeader\",\n setup(props, { slots }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY)!;\n\n const dataTable = computed(() => dataTableContext.dataTable)\n\n const tableHeader = computed(() => unref(dataTable)?.header!);\n\n const leftArea = computed(() => {\n var items = unref(tableHeader)?.leftArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n const rightArea = computed(() => {\n var items = unref(tableHeader)?.rightArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n\n return () => {\n const leftItems = unref(leftArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n\n const rightItems = unref(rightArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n \n return (\n <div class=\"mk-table-view__header\">\n <div class=\"mk-table-view__header-main\">\n {leftItems}\n {slots['header-main']?.()}\n </div>\n <div class=\"mk-table-view__header-tools\">\n {rightItems}\n {slots[\"header-tools\"]?.()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","setup","props","slots","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTable","computed","tableHeader","unref","header","leftArea","items","filter","item","predicate","rightArea","leftItems","map","_createVNode","TableHeaderItem","rightItems"],"mappings":";;;;AAIA,MAAeA,kDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,MAAMC,OAAO;AAAA,IAAEC;AAAAA,EAAM,GAAG;AACtB,UAAMC,mBAAmBC,WAAOC,MAAAA,sBAAsB;AAEtD,UAAMC,YAAYC,IAAQ,SAAC,MAAMJ,iBAAiBG,SAAS;AAE3D,UAAME,cAAcD,IAAAA,SAAS,MAAA;;AAAME,uBAAK,MAACH,SAAS,MAAfG,mBAAkBC;AAAAA,KAAO;AAE5D,UAAMC,WAAWJ,IAAAA,SAAS,MAAM;;AAC9B,UAAIK,UAAQH,SAAK,MAACD,WAAW,MAAjBC,mBAAoBE,aAAY,CAAA;AAE5C,aAAOC,MAAMC,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AACD,UAAMC,YAAYT,IAAAA,SAAS,MAAM;;AAC/B,UAAIK,UAAQH,SAAK,MAACD,WAAW,MAAjBC,mBAAoBO,cAAa,CAAA;AAE7C,aAAOJ,MAAMC,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AAED,WAAO,MAAM;;AACX,YAAME,YAAYR,IAAAA,MAAME,QAAQ,EAAEO,IAAKJ,UAAIK,IAAA,YAAAC,YAAA;AAAA,QAAA,mBACPN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,YAAMO,aAAaZ,IAAAA,MAAMO,SAAS,EAAEE,IAAKJ,UAAIK,IAAA,YAAAC,YAAA;AAAA,QAAA,mBACTN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,aAAAK,IAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAAA,IAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAGOF,CAAAA,YACAf,WAAM,mBAANA,8BAAwB,CAAA,GAAAiB,IAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGxBE,aACAnB,WAAM,oBAANA,8BAAyB,CAAA,CAAA,CAAA;AAAA;EAKpC;AACF,CAAC;;"}
|
|
@@ -6,6 +6,7 @@ const treeProps = utils.buildProps({
|
|
|
6
6
|
dataTree: {
|
|
7
7
|
type: dm.DataTree
|
|
8
8
|
},
|
|
9
|
+
currentNodeKey: { type: String, default: "" },
|
|
9
10
|
draggable: { type: Boolean, default: false },
|
|
10
11
|
filterNodeMethod: { type: Function },
|
|
11
12
|
defaultExpandAll: { type: Boolean, default: false },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-options.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const treeProps = buildProps({\n dataTree: {\n type: DataTree<any>,\n },\n draggable: { type: Boolean, default: false },\n filterNodeMethod: { type: Function },\n defaultExpandAll: { type: Boolean, default: false },\n allowSelectContainer: { type: Boolean, default: true },\n} as const);\n\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n nodeClick: (node: DataTreeNode<any>) => true,\n};\n\nexport type TreeEmits = typeof treeEmits;\n"],"names":["buildProps","DataTree"],"mappings":";;;;AAIO,MAAM,YAAYA,MAAAA,WAAW;AAAA,EAClC,UAAU;AAAA,IACR,MAAMC,GAAA;AAAA,EACR;AAAA,EACA,WAAW,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C,kBAAkB,EAAE,MAAM,SAAS;AAAA,EACnC,kBAAkB,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAClD,sBAAsB,EAAE,MAAM,SAAS,SAAS,KAAK;AACvD,CAAU;AAIH,MAAM,YAAY;AAAA,EACvB,WAAW,CAAC,SAA4B;AAC1C;;;"}
|
|
1
|
+
{"version":3,"file":"tree-options.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const treeProps = buildProps({\n dataTree: {\n type: DataTree<any>,\n },\n currentNodeKey: { type: String, default: \"\" },\n draggable: { type: Boolean, default: false },\n filterNodeMethod: { type: Function },\n defaultExpandAll: { type: Boolean, default: false },\n allowSelectContainer: { type: Boolean, default: true },\n} as const);\n\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n nodeClick: (node: DataTreeNode<any>) => true,\n};\n\nexport type TreeEmits = typeof treeEmits;\n"],"names":["buildProps","DataTree"],"mappings":";;;;AAIO,MAAM,YAAYA,MAAAA,WAAW;AAAA,EAClC,UAAU;AAAA,IACR,MAAMC,GAAA;AAAA,EACR;AAAA,EACA,gBAAgB,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA,EAC5C,WAAW,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C,kBAAkB,EAAE,MAAM,SAAS;AAAA,EACnC,kBAAkB,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAClD,sBAAsB,EAAE,MAAM,SAAS,SAAS,KAAK;AACvD,CAAU;AAIH,MAAM,YAAY;AAAA,EACvB,WAAW,CAAC,SAA4B;AAC1C;;;"}
|
|
@@ -14,6 +14,20 @@ const Tree = /* @__PURE__ */ vue.defineComponent({
|
|
|
14
14
|
const dataTree = vue.computed(() => props.dataTree ?? dataTableContext.dataTable);
|
|
15
15
|
const treeRef = vue.ref(null);
|
|
16
16
|
const rootNodes = vue.computed(() => vue.unref(dataTree).rootNodes);
|
|
17
|
+
const currentNodeKey = vue.computed(() => (props.currentNodeKey || vue.unref(dataTree).getSelection()[0]) ?? "");
|
|
18
|
+
vue.onMounted(() => {
|
|
19
|
+
vue.watch(currentNodeKey, (currentNodeKey2) => {
|
|
20
|
+
var _a;
|
|
21
|
+
(_a = vue.unref(treeRef)) == null ? void 0 : _a.setCurrentKey(currentNodeKey2 || null);
|
|
22
|
+
}, {
|
|
23
|
+
immediate: true
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
vue.unref(dataTree).afterLoadEvent.on(async () => {
|
|
27
|
+
var _a;
|
|
28
|
+
await vue.nextTick();
|
|
29
|
+
(_a = vue.unref(treeRef)) == null ? void 0 : _a.setCurrentKey(vue.unref(currentNodeKey) || null);
|
|
30
|
+
});
|
|
17
31
|
const handleAdd = (dataTreeNode) => {
|
|
18
32
|
vue.unref(dataTree).addRecord(dataTreeNode ? {
|
|
19
33
|
pid: dataTreeNode.data.id
|
|
@@ -89,7 +103,6 @@ const Tree = /* @__PURE__ */ vue.defineComponent({
|
|
|
89
103
|
handleNodeClick,
|
|
90
104
|
$slots
|
|
91
105
|
} = this;
|
|
92
|
-
const currentNodeKey = innerDataTree.getSelection()[0] ?? "";
|
|
93
106
|
return vue.createVNode(elementPlus.ElTree, {
|
|
94
107
|
"props": {
|
|
95
108
|
children: "children",
|
|
@@ -101,7 +114,6 @@ const Tree = /* @__PURE__ */ vue.defineComponent({
|
|
|
101
114
|
"highlight-current": true,
|
|
102
115
|
"data": rootNodes,
|
|
103
116
|
"lazy": true,
|
|
104
|
-
"currentNodeKey": currentNodeKey,
|
|
105
117
|
"filterNodeMethod": filterNodeMethod,
|
|
106
118
|
"nodeKey": "primaryValue",
|
|
107
119
|
"expand-on-click-node": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type { NodeDropType } from \"element-plus/es/components/tree/src/tree.type\";\nimport type { DragEvents } from \"element-plus/es/components/tree/src/model/useDragNode\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeEmits, treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<typeof ElTree | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (\n dataTreeNode: DataTreeNode | null,\n node: Node | null\n ) => {\n if (!dataTreeNode) {\n return;\n }\n\n const _dataTree = unref(dataTree);\n\n if (!props.allowSelectContainer && !dataTreeNode.isLeaf) {\n const current = _dataTree.getSelection()[0] ?? null;\n\n unref(treeRef)?.setCurrentKey(current);\n\n return;\n }\n\n _dataTree.setSelection([dataTreeNode.data[_dataTree.primaryKey]]);\n };\n\n const handleNodeDrop = (\n draggingNode: Node,\n dropNode: Node,\n dropType: NodeDropType,\n event: DragEvents\n ) => {\n // console.log(draggingNode, dropNode);\n unref(dataTree).handleNodeDrop(\n draggingNode.data! as any,\n dropNode.data! as any,\n dropType\n );\n };\n\n const handleNodeClick = (node: DataTreeNode<any>) => {\n emit(\"nodeClick\", node);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n $slots,\n } = this;\n\n const currentNodeKey = innerDataTree.getSelection()[0] ?? \"\";\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n highlight-current\n data={rootNodes}\n lazy\n currentNodeKey={currentNodeKey}\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"primaryValue\"\n expand-on-click-node={false}\n load={handleLoad}\n onCurrent-change={handleCurrentChange}\n onNode-drop={handleNodeDrop}\n draggable={this.$props.draggable}\n onNode-click={handleNodeClick}\n v-slots={{\n default: (scope: any) => {\n let children = $slots.default?.(scope);\n\n if (children) {\n return children;\n }\n\n const { data } = scope;\n\n const label = data.data[innerDataTree.props.label];\n\n const main = $slots[\"node-main\"]?.(scope) || label;\n\n const tools = $slots[\"node-tools\"]?.(scope) || (\n <Fragment>\n {$slots[\"node-tools-prefix\"]?.(scope)}\n <ElButton type=\"primary\" link onClick={() => handleAdd(data)}>\n 添加\n </ElButton>\n <ElButton type=\"primary\" link onClick={() => handleEdit(data)}>\n 编辑\n </ElButton>\n <ElButton type=\"danger\" link onClick={() => handleDelete(data)}>\n 删除\n </ElButton>\n {$slots[\"node-tools-suffix\"]?.(scope)}\n </Fragment>\n );\n\n return (\n <div class=\"mk-data-tree-node\">\n <div class=\"mk-data-tree-node_main\">{main}</div>\n\n <div\n class=\"mk-data-tree-node__tools\"\n onClick={(e) => e.stopPropagation()}\n >\n {tools}\n </div>\n </div>\n );\n },\n }}\n />\n );\n },\n});\n"],"names":["defineComponent","name","props","treeProps","emits","treeEmits","setup","emit","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTree","computed","dataTable","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","lazy","children","load","filter","value","handleCurrentChange","_dataTree","allowSelectContainer","isLeaf","current","getSelection","setCurrentKey","setSelection","primaryKey","handleNodeDrop","draggingNode","dropNode","dropType","event","handleNodeClick","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","currentNodeKey","_createVNode","ElTree","$props","draggable","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import {\n Fragment,\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n ref,\n unref,\n watch,\n} from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type { NodeDropType } from \"element-plus/es/components/tree/src/tree.type\";\nimport type { DragEvents } from \"element-plus/es/components/tree/src/model/useDragNode\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeEmits, treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<typeof ElTree | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const currentNodeKey = computed(\n () => (props.currentNodeKey || unref(dataTree).getSelection()[0]) ?? \"\"\n );\n\n onMounted(() => {\n watch(\n currentNodeKey,\n (currentNodeKey) => {\n unref(treeRef)?.setCurrentKey(currentNodeKey || null);\n },\n { immediate: true }\n );\n });\n\n unref(dataTree).afterLoadEvent.on(async () => {\n await nextTick();\n\n unref(treeRef)?.setCurrentKey(unref(currentNodeKey) || null);\n });\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (\n dataTreeNode: DataTreeNode | null,\n node: Node | null\n ) => {\n if (!dataTreeNode) {\n return;\n }\n\n const _dataTree = unref(dataTree);\n\n if (!props.allowSelectContainer && !dataTreeNode.isLeaf) {\n const current = _dataTree.getSelection()[0] ?? null;\n\n unref(treeRef)?.setCurrentKey(current);\n\n return;\n }\n\n _dataTree.setSelection([dataTreeNode.data[_dataTree.primaryKey]]);\n };\n\n // 没作用\n // watch(()=>props.currentNodeKey,()=>{\n // treeRef.value?.getCurrentKey(props.currentNodeKey)\n // console.log(\"props.currentNodeKey\",props.currentNodeKey)\n // },{ immediate:true })\n\n const handleNodeDrop = (\n draggingNode: Node,\n dropNode: Node,\n dropType: NodeDropType,\n event: DragEvents\n ) => {\n // console.log(draggingNode, dropNode);\n unref(dataTree).handleNodeDrop(\n draggingNode.data! as any,\n dropNode.data! as any,\n dropType\n );\n };\n\n const handleNodeClick = (node: DataTreeNode<any>) => {\n emit(\"nodeClick\", node);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n $slots,\n } = this;\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n highlight-current\n data={rootNodes}\n lazy\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"primaryValue\"\n expand-on-click-node={false}\n load={handleLoad}\n onCurrent-change={handleCurrentChange}\n onNode-drop={handleNodeDrop}\n draggable={this.$props.draggable}\n onNode-click={handleNodeClick}\n v-slots={{\n default: (scope: any) => {\n let children = $slots.default?.(scope);\n\n if (children) {\n return children;\n }\n\n const { data } = scope;\n\n const label = data.data[innerDataTree.props.label];\n\n const main = $slots[\"node-main\"]?.(scope) || label;\n\n const tools = $slots[\"node-tools\"]?.(scope) || (\n <Fragment>\n {$slots[\"node-tools-prefix\"]?.(scope)}\n <ElButton type=\"primary\" link onClick={() => handleAdd(data)}>\n 添加\n </ElButton>\n <ElButton type=\"primary\" link onClick={() => handleEdit(data)}>\n 编辑\n </ElButton>\n <ElButton type=\"danger\" link onClick={() => handleDelete(data)}>\n 删除\n </ElButton>\n {$slots[\"node-tools-suffix\"]?.(scope)}\n </Fragment>\n );\n\n return (\n <div class=\"mk-data-tree-node\">\n <div class=\"mk-data-tree-node_main\">{main}</div>\n\n <div\n class=\"mk-data-tree-node__tools\"\n onClick={(e) => e.stopPropagation()}\n >\n {tools}\n </div>\n </div>\n );\n },\n }}\n />\n );\n },\n});\n"],"names":["defineComponent","name","props","treeProps","emits","treeEmits","setup","emit","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTree","computed","dataTable","treeRef","ref","rootNodes","unref","currentNodeKey","getSelection","onMounted","watch","setCurrentKey","immediate","afterLoadEvent","on","nextTick","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","lazy","children","load","filter","value","handleCurrentChange","_dataTree","allowSelectContainer","isLeaf","current","setSelection","primaryKey","handleNodeDrop","draggingNode","dropNode","dropType","event","handleNodeClick","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","_createVNode","ElTree","$props","draggable","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ const useSingleView = (options) => {
|
|
|
54
54
|
vue.watch(
|
|
55
55
|
options.dataTable,
|
|
56
56
|
(dataTable, _, onCleanup) => {
|
|
57
|
+
isShowDataForm.value = false;
|
|
57
58
|
handleDataTable(dataTable);
|
|
58
59
|
onCleanup(() => {
|
|
59
60
|
dataTable == null ? void 0 : dataTable.clearSelection();
|
|
@@ -74,6 +75,7 @@ const useSingleView = (options) => {
|
|
|
74
75
|
vue.watch(
|
|
75
76
|
options.dataForm,
|
|
76
77
|
(dataForm, _, onCleanup) => {
|
|
78
|
+
isShowDataForm.value = false;
|
|
77
79
|
handleDataForm(dataForm);
|
|
78
80
|
onCleanup(() => {
|
|
79
81
|
dataForm == null ? void 0 : dataForm.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-single-view.js","sources":["../../../src/composables/use-single-view.ts"],"sourcesContent":["import { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { isRef, onBeforeUnmount, Ref, ref, unref, watch } from \"vue\";\n\nexport type UseSingleViewOptions = {\n dataTable: Ref<DataTable | null> | DataTable;\n dataForm: Ref<DataForm | null> | DataForm;\n};\n\nexport const useSingleView = (options: UseSingleViewOptions) => {\n const isShowDataForm = ref(false);\n\n const handleDataTable = (dataTable: DataTable | null) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(\n item[dataTable.primaryKey as string]\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n };\n\n const handleDataForm = (dataForm: DataForm | null) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(options.dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n });\n }\n };\n\n if (isRef(options.dataTable)) {\n watch(\n options.dataTable,\n (dataTable, _, onCleanup) => {\n handleDataTable(dataTable);\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataTable = options.dataTable;\n handleDataTable(dataTable);\n\n onBeforeUnmount(() => {\n dataTable.clearSelection();\n dataTable.dispose();\n });\n }\n\n if (isRef(options.dataForm)) {\n watch(\n options.dataForm,\n (dataForm, _, onCleanup) => {\n handleDataForm(dataForm);\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataForm = options.dataForm;\n handleDataForm(dataForm);\n\n onBeforeUnmount(() => {\n dataForm.dispose();\n });\n }\n\n return { isShowDataForm };\n};\n\nexport const useSingleViewWithDialog = (options: UseSingleViewOptions) => {\n const { isShowDataForm } = useSingleView(options);\n\n watch(isShowDataForm, async (isShowDataForm) => {\n if (isShowDataForm) {\n await Dialoger.dataFormDialog({\n dataForm: unref(options.dataForm)!,\n customDataFormStatus: true,\n });\n }\n });\n};\n"],"names":["ref","unref","Messager","isRef","watch","onBeforeUnmount","isShowDataForm","Dialoger"],"mappings":";;;;AAQa,MAAA,gBAAgB,CAAC,YAAkC;AACxD,QAAA,iBAAiBA,QAAI,KAAK;AAE1B,QAAA,kBAAkB,CAAC,cAAgC;AACvD,QAAI,WAAW;AACH,gBAAA,eAAe,GAAG,YAAY;AAChC,cAAA,YAAYC,IAAAA,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEvB,kBAAU,UAAU;AAAA,MAAA,CACrB;AAED,gBAAU,gBAAgB,GAAG,OAAO,EAAE,WAAW;AACzC,cAAA,YAAYA,IAAAA,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEnB,YAAA;AACI,gBAAA,WAAW,MAAM,UAAU;AAAA,YAC/B,KAAK,UAAU,UAAoB;AAAA,UAAA;AAGjC,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,eAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,2BAAe,QAAQ;AACvB;AAAA,UACF;AAAA,iBACO,GAAG;AACV,kBAAQ,MAAM,CAAC;AACf,yBAAe,QAAQ;AAAA,QACzB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGI,QAAA,iBAAiB,CAAC,aAA8B;AACpD,QAAI,UAAU;AACH,eAAA,eAAe,GAAG,MAAM;;AAC/B,uBAAe,QAAQ;AAEjBD,kBAAAA,MAAA,QAAQ,SAAS,MAAjBA,mBAAoB;AAAA,MAAK,CAChC;AAEQ,eAAA,YAAY,GAAG,MAAM;AAC5B,uBAAe,QAAQ;AAAA,MAAA,CACxB;AAAA,IACH;AAAA,EAAA;AAGE,MAAAE,IAAA,MAAM,QAAQ,SAAS,GAAG;AAC5BC,QAAA;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,WAAW,GAAG,cAAc;AAC3B,wBAAgB,SAAS;AAEzB,kBAAU,MAAM;AACd,iDAAW;AACX,iDAAW;AAAA,QAAQ,CACpB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,YAAY,QAAQ;AAC1B,oBAAgB,SAAS;AAEzBC,QAAAA,gBAAgB,MAAM;AACpB,gBAAU,eAAe;AACzB,gBAAU,QAAQ;AAAA,IAAA,CACnB;AAAA,EACH;AAEI,MAAAF,IAAA,MAAM,QAAQ,QAAQ,GAAG;AAC3BC,QAAA;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,UAAU,GAAG,cAAc;AAC1B,uBAAe,QAAQ;
|
|
1
|
+
{"version":3,"file":"use-single-view.js","sources":["../../../src/composables/use-single-view.ts"],"sourcesContent":["import { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { isRef, onBeforeUnmount, Ref, ref, unref, watch } from \"vue\";\n\nexport type UseSingleViewOptions = {\n dataTable: Ref<DataTable | null> | DataTable;\n dataForm: Ref<DataForm | null> | DataForm;\n};\n\nexport const useSingleView = (options: UseSingleViewOptions) => {\n const isShowDataForm = ref(false);\n\n const handleDataTable = (dataTable: DataTable | null) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(\n item[dataTable.primaryKey as string]\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n };\n\n const handleDataForm = (dataForm: DataForm | null) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(options.dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n });\n }\n };\n\n if (isRef(options.dataTable)) {\n watch(\n options.dataTable,\n (dataTable, _, onCleanup) => {\n isShowDataForm.value = false;\n\n handleDataTable(dataTable);\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataTable = options.dataTable;\n handleDataTable(dataTable);\n\n onBeforeUnmount(() => {\n dataTable.clearSelection();\n dataTable.dispose();\n });\n }\n\n if (isRef(options.dataForm)) {\n watch(\n options.dataForm,\n (dataForm, _, onCleanup) => {\n isShowDataForm.value = false;\n\n handleDataForm(dataForm);\n\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataForm = options.dataForm;\n handleDataForm(dataForm);\n\n onBeforeUnmount(() => {\n dataForm.dispose();\n });\n }\n\n return { isShowDataForm };\n};\n\nexport const useSingleViewWithDialog = (options: UseSingleViewOptions) => {\n const { isShowDataForm } = useSingleView(options);\n\n watch(isShowDataForm, async (isShowDataForm) => {\n if (isShowDataForm) {\n await Dialoger.dataFormDialog({\n dataForm: unref(options.dataForm)!,\n customDataFormStatus: true,\n });\n }\n });\n};\n"],"names":["ref","unref","Messager","isRef","watch","onBeforeUnmount","isShowDataForm","Dialoger"],"mappings":";;;;AAQa,MAAA,gBAAgB,CAAC,YAAkC;AACxD,QAAA,iBAAiBA,QAAI,KAAK;AAE1B,QAAA,kBAAkB,CAAC,cAAgC;AACvD,QAAI,WAAW;AACH,gBAAA,eAAe,GAAG,YAAY;AAChC,cAAA,YAAYC,IAAAA,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEvB,kBAAU,UAAU;AAAA,MAAA,CACrB;AAED,gBAAU,gBAAgB,GAAG,OAAO,EAAE,WAAW;AACzC,cAAA,YAAYA,IAAAA,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEnB,YAAA;AACI,gBAAA,WAAW,MAAM,UAAU;AAAA,YAC/B,KAAK,UAAU,UAAoB;AAAA,UAAA;AAGjC,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,eAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,2BAAe,QAAQ;AACvB;AAAA,UACF;AAAA,iBACO,GAAG;AACV,kBAAQ,MAAM,CAAC;AACf,yBAAe,QAAQ;AAAA,QACzB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGI,QAAA,iBAAiB,CAAC,aAA8B;AACpD,QAAI,UAAU;AACH,eAAA,eAAe,GAAG,MAAM;;AAC/B,uBAAe,QAAQ;AAEjBD,kBAAAA,MAAA,QAAQ,SAAS,MAAjBA,mBAAoB;AAAA,MAAK,CAChC;AAEQ,eAAA,YAAY,GAAG,MAAM;AAC5B,uBAAe,QAAQ;AAAA,MAAA,CACxB;AAAA,IACH;AAAA,EAAA;AAGE,MAAAE,IAAA,MAAM,QAAQ,SAAS,GAAG;AAC5BC,QAAA;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,WAAW,GAAG,cAAc;AAC3B,uBAAe,QAAQ;AAEvB,wBAAgB,SAAS;AAEzB,kBAAU,MAAM;AACd,iDAAW;AACX,iDAAW;AAAA,QAAQ,CACpB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,YAAY,QAAQ;AAC1B,oBAAgB,SAAS;AAEzBC,QAAAA,gBAAgB,MAAM;AACpB,gBAAU,eAAe;AACzB,gBAAU,QAAQ;AAAA,IAAA,CACnB;AAAA,EACH;AAEI,MAAAF,IAAA,MAAM,QAAQ,QAAQ,GAAG;AAC3BC,QAAA;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,UAAU,GAAG,cAAc;AAC1B,uBAAe,QAAQ;AAEvB,uBAAe,QAAQ;AAEvB,kBAAU,MAAM;AACd,+CAAU;AAAA,QAAQ,CACnB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,WAAW,QAAQ;AACzB,mBAAe,QAAQ;AAEvBC,QAAAA,gBAAgB,MAAM;AACpB,eAAS,QAAQ;AAAA,IAAA,CAClB;AAAA,EACH;AAEA,SAAO,EAAE,eAAe;AAC1B;AAEa,MAAA,0BAA0B,CAAC,YAAkC;AACxE,QAAM,EAAE,eAAA,IAAmB,cAAc,OAAO;AAE1CD,YAAA,gBAAgB,OAAOE,oBAAmB;AAC9C,QAAIA,iBAAgB;AAClB,YAAMC,GAAAA,SAAS,eAAe;AAAA,QAC5B,UAAUN,IAAAA,MAAM,QAAQ,QAAQ;AAAA,QAChC,sBAAsB;AAAA,MAAA,CACvB;AAAA,IACH;AAAA,EAAA,CACD;AACH;;;"}
|