@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.
Files changed (224) hide show
  1. package/dist/cjs/assets/iconfonts/iconfont.js +1 -1
  2. package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js +4 -0
  4. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js.map +1 -0
  5. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js +108 -0
  6. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js.map +1 -0
  7. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js +4 -0
  8. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js.map +1 -1
  9. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js +24 -18
  10. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js.map +1 -1
  11. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js +93 -0
  12. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js.map +1 -0
  13. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js +128 -0
  14. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js.map +1 -0
  15. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js +51 -0
  16. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js.map +1 -0
  17. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js +4 -0
  18. package/dist/cjs/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js.map +1 -0
  19. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +26 -46
  20. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
  21. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -5
  22. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
  23. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
  24. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
  25. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
  26. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  27. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.js +7 -0
  28. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.js.map +1 -1
  29. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
  30. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
  31. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/{HtmlCodeTool.vue.js → PreviewToolbar.vue.js} +56 -43
  32. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -0
  33. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js +4 -0
  34. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js.map +1 -0
  35. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +2 -2
  36. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  37. package/dist/cjs/components/basic/doc-editor/plugins/index.vue.js +3 -1
  38. package/dist/cjs/components/basic/doc-editor/plugins/index.vue.js.map +1 -1
  39. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +3 -1
  40. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  41. package/dist/cjs/components/business/resource-list/ResourceManager.js +0 -24
  42. package/dist/cjs/components/business/resource-list/ResourceManager.js.map +1 -1
  43. package/dist/cjs/components/business/resource-list/resource-list.vue.js +38 -15
  44. package/dist/cjs/components/business/resource-list/resource-list.vue.js.map +1 -1
  45. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js +1 -12
  46. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  47. package/dist/cjs/components/data-model/data-table/views/table/table.js +0 -1
  48. package/dist/cjs/components/data-model/data-table/views/table/table.js.map +1 -1
  49. package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js +12 -9
  50. package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
  51. package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js +1 -0
  52. package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
  53. package/dist/cjs/components/data-model/data-table/views/tree/tree.js +14 -2
  54. package/dist/cjs/components/data-model/data-table/views/tree/tree.js.map +1 -1
  55. package/dist/cjs/composables/use-single-view.js +2 -0
  56. package/dist/cjs/composables/use-single-view.js.map +1 -1
  57. package/dist/cjs/core/MSAppClient.js +8 -6
  58. package/dist/cjs/core/MSAppClient.js.map +1 -1
  59. package/dist/cjs/core/PageManager.js.map +1 -1
  60. package/dist/cjs/index.js +2 -2
  61. package/dist/cjs/modules/cms/components/part-tree/index.vue.js +24 -9
  62. package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
  63. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js +26 -0
  64. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -0
  65. package/dist/cjs/modules/cms/index.js +2 -1
  66. package/dist/cjs/modules/cms/index.js.map +1 -1
  67. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +44 -22
  68. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  69. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +2 -2
  70. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  71. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +99 -87
  72. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  73. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +45 -5
  74. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  75. package/dist/cjs/modules/ms/components/material-list/material-item.vue.js +0 -1
  76. package/dist/cjs/modules/ms/components/material-list/material-item.vue.js.map +1 -1
  77. package/dist/cjs/modules/ms/components/material-list/material-list-options.js +1 -1
  78. package/dist/cjs/modules/ms/components/material-list/material-list-options.js.map +1 -1
  79. package/dist/cjs/modules/ms/components/material-select/material-select-api.js +1 -1
  80. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTree.js +18 -0
  81. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
  82. package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +4 -1
  83. package/dist/cjs/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
  84. package/dist/cjs/modules/ms/index.js +2 -2
  85. package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js +13 -16
  86. package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
  87. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js +49 -7
  88. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  89. package/dist/esm/assets/iconfonts/iconfont.js +1 -1
  90. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
  91. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js +5 -0
  92. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue.js.map +1 -0
  93. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js +109 -0
  94. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalBlockWithAlignableContents.vue2.js.map +1 -0
  95. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js +4 -0
  96. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalDecoratorBlockNode.js.map +1 -1
  97. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js +25 -19
  98. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalRichTextPlugin.vue.js.map +1 -1
  99. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js +94 -0
  100. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.js.map +1 -0
  101. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js +128 -0
  102. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.js.map +1 -0
  103. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js +52 -0
  104. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue.js.map +1 -0
  105. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js +5 -0
  106. package/dist/esm/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.vue2.js.map +1 -0
  107. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +27 -47
  108. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
  109. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -5
  110. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
  111. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
  112. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
  113. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
  114. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  115. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.js +7 -0
  116. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.js.map +1 -1
  117. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
  118. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
  119. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +117 -0
  120. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -0
  121. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js +5 -0
  122. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue2.js.map +1 -0
  123. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +1 -1
  124. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  125. package/dist/esm/components/basic/doc-editor/plugins/index.vue.js +3 -1
  126. package/dist/esm/components/basic/doc-editor/plugins/index.vue.js.map +1 -1
  127. package/dist/esm/components/basic/doc-editor/plugins/nodes.js +3 -1
  128. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  129. package/dist/esm/components/business/resource-list/ResourceManager.js +1 -25
  130. package/dist/esm/components/business/resource-list/ResourceManager.js.map +1 -1
  131. package/dist/esm/components/business/resource-list/resource-list.vue.js +39 -16
  132. package/dist/esm/components/business/resource-list/resource-list.vue.js.map +1 -1
  133. package/dist/esm/components/business/resource-manager/resource-manager.vue.js +2 -13
  134. package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  135. package/dist/esm/components/data-model/data-table/views/table/table.js +0 -1
  136. package/dist/esm/components/data-model/data-table/views/table/table.js.map +1 -1
  137. package/dist/esm/components/data-model/data-table/views/table-view/header/header.js +12 -9
  138. package/dist/esm/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
  139. package/dist/esm/components/data-model/data-table/views/tree/tree-options.js +1 -0
  140. package/dist/esm/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
  141. package/dist/esm/components/data-model/data-table/views/tree/tree.js +15 -3
  142. package/dist/esm/components/data-model/data-table/views/tree/tree.js.map +1 -1
  143. package/dist/esm/composables/use-single-view.js +2 -0
  144. package/dist/esm/composables/use-single-view.js.map +1 -1
  145. package/dist/esm/core/MSAppClient.js +8 -6
  146. package/dist/esm/core/MSAppClient.js.map +1 -1
  147. package/dist/esm/core/PageManager.js.map +1 -1
  148. package/dist/esm/index.js +2 -2
  149. package/dist/esm/modules/cms/components/part-tree/index.vue.js +25 -10
  150. package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
  151. package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js +26 -0
  152. package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -0
  153. package/dist/esm/modules/cms/index.js +2 -1
  154. package/dist/esm/modules/cms/index.js.map +1 -1
  155. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +46 -24
  156. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  157. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +2 -2
  158. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  159. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +101 -89
  160. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  161. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +46 -6
  162. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  163. package/dist/esm/modules/ms/components/material-list/material-item.vue.js +0 -1
  164. package/dist/esm/modules/ms/components/material-list/material-item.vue.js.map +1 -1
  165. package/dist/esm/modules/ms/components/material-list/material-list-options.js +1 -1
  166. package/dist/esm/modules/ms/components/material-list/material-list-options.js.map +1 -1
  167. package/dist/esm/modules/ms/components/material-select/material-select-api.js +1 -1
  168. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTree.js +18 -0
  169. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
  170. package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js +4 -1
  171. package/dist/esm/modules/ms/dataviews/ms-role/MsRolePermissionConfigTable.js.map +1 -1
  172. package/dist/esm/modules/ms/index.js +2 -2
  173. package/dist/esm/modules/ms/pages/ms-material/index.vue2.js +14 -17
  174. package/dist/esm/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
  175. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js +50 -8
  176. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  177. package/dist/style/components/basic/doc-editor/index.css +1 -1
  178. package/dist/style/components/index.css +2 -2
  179. package/dist/style/components/material-item.css +1 -1
  180. package/dist/style/index.css +2 -2
  181. package/dist/style/modules/cms/index.css +1 -1
  182. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  183. package/dist/style/modules/cms/resource-manager.css +1 -1
  184. package/dist/style/src/components/basic/doc-editor/index.scss +22 -2
  185. package/dist/style/src/components/material-item.scss +66 -63
  186. package/dist/style/src/modules/cms/pages/cms-contents/index.scss +1 -2
  187. package/dist/style/src/modules/cms/resource-manager.scss +63 -0
  188. package/dist/style/src/theme/theme.scss +310 -303
  189. package/dist/style/theme/theme.css +1 -1
  190. package/dist/types/components/basic/doc-editor/plugins/HtmlBlockPlugin/DocHtmlBlockComponent.d.ts +20 -0
  191. package/dist/types/components/basic/doc-editor/plugins/HtmlBlockPlugin/index.d.ts +57 -0
  192. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +1 -0
  193. package/dist/types/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.d.ts +2 -0
  194. package/dist/types/components/business/resource-list/ResourceManager.d.ts +0 -1
  195. package/dist/types/components/business/resource-manager/index.d.ts +32 -6
  196. package/dist/types/components/business/resource-manager/resource-manager.vue.d.ts +10 -1
  197. package/dist/types/components/data-model/data-table/views/table/index.d.ts +1 -1
  198. package/dist/types/components/data-model/data-table/views/table/table.d.ts +1 -1
  199. package/dist/types/components/data-model/data-table/views/tree/index.d.ts +3 -0
  200. package/dist/types/components/data-model/data-table/views/tree/tree-options.d.ts +1 -0
  201. package/dist/types/components/data-model/data-table/views/tree/tree.d.ts +3 -0
  202. package/dist/types/modules/cms/components/part-tree/index.d.ts +5 -9
  203. package/dist/types/modules/cms/components/part-tree/index.vue.d.ts +16 -15
  204. package/dist/types/modules/cms/dataviews/cms-parts/CmsContentManPartForm.d.ts +8 -0
  205. package/dist/types/modules/cms/dataviews/cms-parts/index.d.ts +1 -0
  206. package/dist/types/modules/ms/dataviews/ms-material/index.d.ts +0 -1
  207. package/dist/types/modules/ms/dataviews/ms-menu/MsMenuTree.d.ts +1 -0
  208. package/package.json +5 -5
  209. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js.map +0 -1
  210. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js +0 -4
  211. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js.map +0 -1
  212. package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -131
  213. package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +0 -1
  214. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js +0 -104
  215. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue.js.map +0 -1
  216. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js +0 -5
  217. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/HtmlCodeTool.vue2.js.map +0 -1
  218. package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -131
  219. package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +0 -1
  220. package/dist/style/modules/cms/pages/cms-contents/part-edit-add-page.css +0 -1
  221. package/dist/style/src/modules/cms/pages/cms-contents/part-edit-add-page.scss +0 -127
  222. package/dist/types/modules/ms/dataviews/ms-material/MsMaterialMan.d.ts +0 -31
  223. /package/dist/types/components/basic/doc-editor/plugins/{ToolbarPlugin/HtmlCodeTool.vue.d.ts → HtmlBlockPlugin/index.vue.d.ts} +0 -0
  224. /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":";;;;;;;;;;;;AAkBO,MAAM,wBAAwBA,MAAAA,WAAW;AAAA,EAuB9C,YAAY,SAAiC;AACrC;AAvBR;AAEA;AAEA;AAEA,4CAA4B;AAE5B,2CAA0B;AAE1B,4CAA6B,CAAA;AAE7B,mCAAkB;AAahB,SAAK,cAAc;AAEnB,SAAK,mBAAmB;AAEnB,SAAA,iBAAiB,IAAIC,GAAAA;AAErB,SAAA,mBAAmB,QAAQ,cAAc,CAAA;AAC9C,SAAK,UAAU,QAAQ;AAAA,EACzB;AAAA,EAnBA,IAAI,qBAAqB;AACvB,WAAO,KAAK,iBAAiB,OAAO,CAAC,SAAS,KAAK,UAAU;AAAA,EAC/D;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EAeA,MAAM,qBACJ,SAAiB,KAAK,YAAY,SAC9B,IAAI,KAAK,YAAY,KAAK,GAAG,CAAC,KAC9B,IACJ;AACM,UAAA,cAAcC,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEd,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,QACf;AAAA,UACE,eAAe;AAAA,UACf,YAAY,KAAK;AAAA,QACnB;AAAA,MAAA;AAGE,UAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,WAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,aAAK,mBAAmB;AACxB;AAAA,MACF;AAEA,WAAK,mBAAmB,SAAS,KAAK,KAAK,IAAI,CAAC,UAAU;AAAA,QACxD,GAAG;AAAA,QACH,YAAY;AAAA,MACZ,EAAA;AAEF,UAAI,oBAAoB,OAAO,WAAW,GAAG,IACzC,OAAO,MAAM,CAAC,EAAE,MAAM,GAAG,IACzB,OAAO,MAAM,GAAG;AAEf,WAAA,cAAc,kBAAkB,OAAO,OAAO;AAAA,aAC5C,GAAG;AACV,cAAQ,MAAM,CAAC;AAEfA,SAAAA,SAAS,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,IAAA,UAClC;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,MAAM,2BAA2B;AACzB,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEd,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,QACf,EAAE,OAAO,KAAK,mBAAmB,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAAA,MAAA;AAGxD,UAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,WAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,aAAK,qBAAqB;AAC1B;AAAA,MACF;AAEA,YAAM,KAAK;aACJ,GAAG;AACV,cAAQ,MAAM,CAAC;AAEfA,SAAAA,SAAS,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,IAAA,UAClC;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,MAAM,iBAAiB,UAAoB;AACnC,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEpB,aAAO,MAAM,YAAY;AAAA,QACvB,GAAG,KAAK,OAAO;AAAA,QACf,EAAE,SAAS;AAAA,MAAA;AAAA,aAEN,GAAG;AACV,cAAQ,MAAM,CAAC;AAEfC,SAAAA,SAAS,MAAM,EAAE,SAAS,OAAQ,CAAA;AAE5B,YAAA;AAAA,IAAA,UACN;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,MAAM,mBAAmB,OAAe;AAChC,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEhB,UAAA,YAAY,KAAK,YAAY,SAC7B,IAAI,KAAK,YAAY,KAAK,GAAG,CAAC,KAC9B;AAEA,UAAA,WAAW,IAAI;AACnB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,iBAAS,OAAO,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC;AAAA,MACzC;AACS,eAAA,OAAO,aAAa,SAAS;AAEhC,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,QACf;AAAA,MAAA;AAGE,UAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,WAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,aAAK,qBAAqB;AAC1B;AAAA,MACF;AAEA,YAAM,KAAK;aACJ,GAAG;AACV,cAAQ,MAAM,CAAC;AAEfA,SAAAA,SAAS,MAAM,EAAE,SAAS,OAAQ,CAAA;AAAA,IAAA,UAClC;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,MAAM,yBAAyB;AACvB,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEpC,UAAA,WAAW,MAAM,YAAY;AAAA,MACjC,GAAG,KAAK,OAAO;AAAA,MACf,EAAE,UAAU,KAAK,mBAAmB,CAAC,EAAE,KAAK;AAAA,IAAA;AAG1C,QAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,SAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,IACF;AAEI,QAAA,WAAW,SAAS,cAAc,GAAG;AAChC,aAAA,OAAO,SAAS,KAAK;AAC9B,aAAS,SAAS;AAElB,aAAS,MAAM;AAAA,EACjB;AAAA,EAEA,MAAM,iBAAiB;AACf,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEhB,UAAA,eAAe,KAAK,mBAAmB,CAAC;AAEtC,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,QACf;AAAA,UACE,MAAM,aAAa;AAAA,QACrB;AAAA,MAAA;AAGF,WAAK,mBAAmB;AACnB,WAAA,kBAAkB,SAAS,KAAK;AAAA,IAAA,UACrC;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,MAAM,eAAe;AACb,UAAA,cAAcA,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACF,WAAK,eAAe;AAEhB,UAAA,eAAe,KAAK,mBAAmB,CAAC;AAEtC,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,QACf;AAAA,UACE,MAAM,aAAa;AAAA,UACnB,SAAS,KAAK;AAAA,QAChB;AAAA,MAAA;AAGE,UAAA,SAAS,KAAK,SAAS,KAAK;AAC9BC,WAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,MACF;AAEA,WAAK,mBAAmB;AACxB,WAAK,kBAAkB;AAAA,IAAA,UACvB;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AAAA,EAEA,iBAAiB;AACN,aAAA,gBAAgB,KAAK,oBAAoB;AAChD,mBAAa,aAAa;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,kBAAkB,OAAmB,MAAoB;AACnD,QAAA,CAAC,MAAM,SAAS;AAClB,WAAK,eAAe;AAEpB,WAAK,aAAa;AAClB;AAAA,IACF;AAEK,SAAA,aAAa,CAAC,KAAK;AAAA,EAC1B;AAAA,EAEA,MAAM,gBAAgB;AACd,UAAA,cAAcD,YAAAA,YAAY,SAAU;AAEtC,QAAA;AACI,YAAA,YAAY,MAAME,GAAA,SAAS,QAAQ;AAAA,QACvC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP;AAED,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEA,WAAK,eAAe;AAEd,YAAA,WAAW,MAAM,YAAY;AAAA,QACjC,GAAG,KAAK,OAAO;AAAA,MAAA;AAGb,UAAA,SAAS,KAAK,SAAS,KAAK;AAC9BD,WAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,MACF;AAEAA,SAAAA,SAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,IAAA,UACpC;AACA,WAAK,eAAe;IACtB;AAAA,EACF;AACF;;"}
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 = { class: "resource-list-header" };
8
- const _hoisted_3 = ["onClick"];
9
- const _hoisted_4 = { class: "resource-list-list" };
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", _hoisted_1, [
55
- vue.createElementVNode("div", _hoisted_2, [
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[0] || (_cache[0] = ($event) => handleBreadcrumbClick())
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, _hoisted_3)
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[1] || (_cache[1] = vue.withModifiers(() => {
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", _hoisted_4, [
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, _hoisted_5);
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 },\n});\n\nconst emit = defineEmits([\"drop\"]);\n\nconst handleBreadcrumbClick = (index?: number) => {\n if (typeof index !== \"number\") {\n props.resourceManager.loadResourceInfoList(\"/\");\n\n return;\n }\n\n props.resourceManager.loadResourceInfoList(\n props.resourceManager.directories.splice(0, index + 1).join(\"/\")\n );\n};\n\nconst handleMainClick = () => {\n props.resourceManager.clearAllSelect();\n};\n\nconst handleClick = (event: MouseEvent, item: ResourceInfo) => {\n props.resourceManager.handleSelectClick(event, item);\n};\n\nconst handleDbClick = (item: ResourceInfo) => {\n if (!item.isDirectory) {\n return;\n }\n\n props.resourceManager.loadResourceInfoList(item.path);\n};\n\nconst handleDrop = async (event: DragEvent) => {\n emit(\"drop\", event);\n};\n\nonMounted(() => {\n props.resourceManager.loadResourceInfoList();\n});\n</script>\n"],"names":["onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAEP,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;AAGpBA,QAAAA,UAAU,MAAM;AACd,YAAM,gBAAgB;IAAqB,CAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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.createVNode(vue.unref(elementPlus.ElButton), {
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
- var _a;
11
- const dataTable = (_a = vue.inject(token.DATA_TABLE_CONTEXT_KEY)) == null ? void 0 : _a.dataTable;
12
- const tableHeader = vue.computed(() => dataTable == null ? void 0 : dataTable.header);
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 _a2;
15
- var items = ((_a2 = vue.unref(tableHeader)) == null ? void 0 : _a2.leftArea) ?? [];
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 _a2;
20
- var items = ((_a2 = vue.unref(tableHeader)) == null ? void 0 : _a2.rightArea) ?? [];
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 _a2, _b;
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, (_a2 = slots["header-main"]) == null ? void 0 : _a2.call(slots)]), vue.createVNode("div", {
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 dataTable = inject(DATA_TABLE_CONTEXT_KEY)?.dataTable;\n\n const tableHeader = computed(() => 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","dataTable","inject","DATA_TABLE_CONTEXT_KEY","tableHeader","computed","header","leftArea","items","unref","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,aAAYC,SAAAA,OAAOC,MAAsB,sBAAA,MAA7BD,mBAAgCD;AAElD,UAAMG,cAAcC,IAAQ,SAAC,MAAMJ,uCAAWK,MAAO;AAErD,UAAMC,WAAWF,IAAAA,SAAS,MAAM;;AAC9B,UAAIG,UAAQC,MAAAA,IAAK,MAACL,WAAW,MAAjBK,gBAAAA,IAAoBF,aAAY,CAAA;AAE5C,aAAOC,MAAME,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AACD,UAAMC,YAAYR,IAAAA,SAAS,MAAM;;AAC/B,UAAIG,UAAQC,MAAAA,IAAK,MAACL,WAAW,MAAjBK,gBAAAA,IAAoBI,cAAa,CAAA;AAE7C,aAAOL,MAAME,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AAED,WAAO,MAAM;;AACX,YAAME,YAAYL,IAAAA,MAAMF,QAAQ,EAAEQ,IAAKJ,UAAIK,IAAA,YAAAC,YAAA;AAAA,QAAA,mBACPN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,YAAMO,aAAaT,IAAAA,MAAMI,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,YACAd,MAAAA,MAAM,mBAANA,gBAAAA,IAAAA,WAAwB,CAAA,GAAAgB,IAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGxBE,aACAlB,WAAM,oBAANA,8BAAyB,CAAA,CAAA,CAAA;AAAA;EAKpC;AACF,CAAC;;"}
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;AACvB,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;;;"}
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;;;"}