@maketribe/ms-app 3.2.31 → 3.2.33

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 (196) hide show
  1. package/dist/cjs/components/basic/data-tree-select/data-tree-select-options.js +1 -1
  2. package/dist/cjs/components/basic/data-tree-select/data-tree-select-options.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/core/element-block.js +48 -63
  4. package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -1
  5. package/dist/cjs/components/basic/doc-editor/core/index.js +1 -1
  6. package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
  7. package/dist/cjs/components/basic/doc-editor/editor.vue.js +10 -3
  8. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  9. package/dist/cjs/components/basic/doc-editor/index.js +2 -0
  10. package/dist/cjs/components/basic/doc-editor/index.js.map +1 -1
  11. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +203 -65
  12. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  13. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +41 -43
  14. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
  15. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
  16. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
  17. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
  18. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
  19. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +44 -22
  20. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
  21. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
  22. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
  23. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +4 -52
  24. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  25. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
  26. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  27. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +19 -22
  28. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  29. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js +2 -2
  30. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  31. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
  32. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  33. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js +11 -10
  34. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  35. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +5 -26
  36. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  37. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +3 -1
  38. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  39. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
  40. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
  41. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
  42. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
  43. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +26 -0
  44. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
  45. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +4 -0
  46. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
  47. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
  48. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  49. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +2 -1
  50. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  51. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  52. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  53. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
  54. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  55. package/dist/cjs/index.js +2 -0
  56. package/dist/cjs/index.js.map +1 -1
  57. package/dist/cjs/modules/cms/composables/part-extensions.js +0 -1
  58. package/dist/cjs/modules/cms/composables/part-extensions.js.map +1 -1
  59. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +0 -1
  60. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  61. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
  62. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  63. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +176 -46
  64. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  65. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +44 -22
  66. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  67. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
  68. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  69. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +6 -6
  70. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  71. package/dist/cjs/modules/ms/components/rich-text-editor/index.js +2 -6
  72. package/dist/cjs/modules/ms/components/rich-text-editor/index.js.map +1 -1
  73. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +17 -0
  74. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  75. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js +12 -8
  76. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  77. package/dist/cjs/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js +1 -1
  78. package/dist/cjs/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js.map +1 -1
  79. package/dist/cjs/modules/ms/index.js +1 -0
  80. package/dist/cjs/modules/ms/index.js.map +1 -1
  81. package/dist/esm/components/basic/data-tree-select/data-tree-select-options.js +1 -1
  82. package/dist/esm/components/basic/data-tree-select/data-tree-select-options.js.map +1 -1
  83. package/dist/esm/components/basic/doc-editor/core/element-block.js +50 -65
  84. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -1
  85. package/dist/esm/components/basic/doc-editor/core/index.js +2 -2
  86. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  87. package/dist/esm/components/basic/doc-editor/editor.vue.js +12 -5
  88. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  89. package/dist/esm/components/basic/doc-editor/index.js +3 -1
  90. package/dist/esm/components/basic/doc-editor/index.js.map +1 -1
  91. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +206 -68
  92. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  93. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +41 -43
  94. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
  95. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
  96. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
  97. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
  98. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
  99. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +44 -22
  100. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
  101. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
  102. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
  103. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +7 -55
  104. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  105. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
  106. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  107. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +20 -23
  108. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  109. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +2 -2
  110. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  111. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
  112. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  113. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js +12 -11
  114. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  115. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +7 -28
  116. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  117. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +4 -2
  118. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  119. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
  120. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
  121. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
  122. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
  123. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +27 -0
  124. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
  125. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +5 -0
  126. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
  127. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
  128. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  129. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +3 -2
  130. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  131. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  132. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  133. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
  134. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  135. package/dist/esm/index.js +2 -0
  136. package/dist/esm/index.js.map +1 -1
  137. package/dist/esm/modules/cms/composables/part-extensions.js +0 -1
  138. package/dist/esm/modules/cms/composables/part-extensions.js.map +1 -1
  139. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +0 -1
  140. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  141. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
  142. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  143. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +177 -47
  144. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  145. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +45 -23
  146. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  147. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
  148. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  149. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +6 -6
  150. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  151. package/dist/esm/modules/ms/components/rich-text-editor/index.js +2 -5
  152. package/dist/esm/modules/ms/components/rich-text-editor/index.js.map +1 -1
  153. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +17 -0
  154. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  155. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js +12 -8
  156. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  157. package/dist/esm/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js +1 -1
  158. package/dist/esm/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js.map +1 -1
  159. package/dist/esm/modules/ms/index.js +1 -0
  160. package/dist/esm/modules/ms/index.js.map +1 -1
  161. package/dist/style/components/basic/doc-editor/index.css +1 -1
  162. package/dist/style/components/index.css +1 -1
  163. package/dist/style/index.css +2 -2
  164. package/dist/style/modules/cms/index.css +1 -1
  165. package/dist/style/modules/cms/pages/cms-contents/components/article-list.css +1 -1
  166. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  167. package/dist/style/modules/ms/components/rich-text-editor/index.css +1 -1
  168. package/dist/style/modules/ms/index.css +1 -1
  169. package/dist/style/src/components/basic/doc-editor/index.scss +16 -0
  170. package/dist/style/src/modules/cms/pages/cms-contents/components/article-list.scss +31 -3
  171. package/dist/style/src/modules/ms/components/rich-text-editor/index.scss +4 -0
  172. package/dist/types/components/basic/doc-editor/core/element-block.d.ts +5 -13
  173. package/dist/types/components/basic/doc-editor/core/index.d.ts +0 -1
  174. package/dist/types/components/basic/doc-editor/editor.vue.d.ts +9 -0
  175. package/dist/types/components/basic/doc-editor/index.d.ts +21 -1
  176. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +10 -5
  177. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +5 -0
  178. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +5 -0
  179. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +5 -0
  180. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +5 -0
  181. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +5 -1
  182. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +3 -8
  183. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +1 -1
  184. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/commands.d.ts +5 -0
  185. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +34 -0
  186. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.d.ts +2 -0
  187. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +2 -1
  188. package/dist/types/modules/ms/components/rich-text-editor/index.d.ts +39 -0
  189. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +18 -0
  190. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +41 -0
  191. package/package.json +4 -4
  192. package/dist/cjs/components/basic/doc-editor/core/utils.js +0 -42
  193. package/dist/cjs/components/basic/doc-editor/core/utils.js.map +0 -1
  194. package/dist/esm/components/basic/doc-editor/core/utils.js +0 -42
  195. package/dist/esm/components/basic/doc-editor/core/utils.js.map +0 -1
  196. package/dist/types/components/basic/doc-editor/core/utils.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"article-edit-add-page.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/article-edit-add-page.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-article-eidtadd__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"ArrowLeftBold\" title=\"返回\"\r\n @back=\"() => router.push({ name: 'cms/contents', query: { pid: articleForm?.data?.cmsPartId } })\">\r\n <template #content>\r\n <template v-if=\"!articleForm.loading\">\r\n <el-text v-if=\"!articleForm.data?.modifier\">{{ !!route.query.id ? \"编辑文章\" : \"创建文章\" }}</el-text>\r\n <el-text v-else>{{ articleForm.data?.modifierName }} 于 {{ articleForm.data?.updatedAt }} 更新</el-text>\r\n </template>\r\n </template>\r\n <template #extra>\r\n <div class=\"mk-cms-article-eidtadd__header_tools\">\r\n\r\n <template v-if=\"!articleForm.loading\">\r\n <el-tag v-if=\"!articleForm.data?.publishTime\" effect=\"dark\" round>未发布</el-tag>\r\n <el-text v-else>发布时间:{{ articleForm.data?.publishTime }}</el-text>\r\n </template>\r\n\r\n <el-dropdown split-button type=\"primary\" style=\"margin-left: 10px;\" @click=\"saveHandle\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 10px;\" />\r\n 保存\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"saveAndViewHandle\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-right: 5px;\" />\r\n 保存并预览\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"saveAndPublishHandle\">\r\n <MKSvgIcon iconClass=\"Share\" style=\"margin-right: 5px;\" />\r\n 保存并发布\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-article-eidtadd__body\" v-loading=\"articleForm.loading\">\r\n\r\n <MKDocEditor v-if=\"articleForm.data\" :css=\"CmsSettings.content.doc.css\" :js=\"CmsSettings.content.doc.js\" :content=\"content\" @change=\"EditorChangeHandle\">\r\n <template #header>\r\n <div class=\"mk-cms-article-eidtadd__body__header\">\r\n <el-row>\r\n <el-input class=\"title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"请输入标题\" v-model=\"title\" />\r\n </el-row>\r\n <el-row>\r\n <el-input class=\"sub-title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"[选填] 请输入子标题\" v-model=\"subTitle\" />\r\n </el-row>\r\n </div>\r\n </template>\r\n <template #after-extentions>\r\n <div class=\"mk-cms-article-eidtadd__body__extentions\" :class=\"{ hide: closeExtentions! }\" ref=\"extentionsRef\">\r\n <MKSvgIcon icon-class=\"ArrowLeft\" class=\"open\" @click=\"closeExtentionsHandle\" v-if=\"closeExtentions\">\r\n </MKSvgIcon>\r\n <MKSvgIcon v-else icon-class=\"ArrowRight\" class=\"close\" @click=\"hideExtentionsHandle\">\r\n </MKSvgIcon>\r\n <el-divider content-position=\"left\">文章设置</el-divider>\r\n <MKDataForm :dataForm=\"articleForm\">\r\n <MKForm :dataForm=\"articleForm\" style=\"width:225px\" label-width=\"110px\">\r\n <el-row v-if=\"CmsSettings.content.useTop\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isTop\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useNew\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isNew\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useHotRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isHotRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.usePartRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isPartRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isShowList\"></MKDataFormItem>\r\n </el-row>\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isDraft\"></MKDataFormItem>\r\n </el-row> -->\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"sortNo\"></MKDataFormItem>\r\n </el-row>\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n </template>\r\n <template #footer>\r\n <div class=\"mk-cms-article-eidtadd__body__footer\">\r\n <el-tabs v-model=\"articleOptionsActive\">\r\n <el-tab-pane label=\"基础内容\" name=\"content\">\r\n <div class=\"content\">\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"6\">\r\n <el-input placeholder=\"[选填] 作者\" v-model=\"articleForm.data.author\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"UserFilled\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-date-picker v-model=\"releaseDate\" type=\"datetime\" placeholder=\"发布时间\"\r\n :default-time=\"new Date()\" />\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input placeholder=\"[选填] 发布地址\" v-model=\"articleForm.data.locationDesc\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"Location\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useTags\">\r\n <el-select v-model=\"tags\" multiple filterable allow-create default-first-option\r\n :reserve-keyword=\"false\" placeholder=\"[可选] 选择文章标签\" style=\"width: 100%\">\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"CollectionTag\" />\r\n </template>\r\n </el-select>\r\n </el-row>\r\n <el-divider content-position=\"left\">\r\n 文章封面/简介\r\n <el-switch v-model=\"descAutoCreate\" style=\"margin-left: 10px;\" inline-prompt active-text=\"自动生成\"\r\n inactive-text=\"手动撰写\" />\r\n </el-divider>\r\n <el-row class=\"cover-desc\">\r\n <MKUploadImage style=\"margin-right: 10px;\" v-model=\"articleForm.data.cover\" width=\"115px\" height=\"115px\" \r\n :uploadContext=\"new ImageUploadContext(CmsSettings.content.coverImageSize)\">\r\n\r\n </MKUploadImage>\r\n <el-input class=\"desc\" type=\"textarea\" :autosize=\"{ minRows: 5, maxRows: 30 }\" maxlength=\"1000\"\r\n show-word-limit placeholder=\"[选填] 文章简介\" v-model=\"desc\" />\r\n </el-row>\r\n <el-divider content-position=\"left\">文章Banner图</el-divider>\r\n <el-row>\r\n <MKUploadImage v-model=\"articleForm.data.banner\" width=\"100%\" height=\"300px\" :uploadContext=\"new ImageUploadContext(CmsSettings.content.bannerImageSize)\">\r\n\r\n </MKUploadImage>\r\n </el-row>\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"文章资源库\" name=\"atlas\" v-if=\"CmsSettings.content.useAtlas\">\r\n <ArticleAtlas v-model=\"atlas\" :articleId=\"parseInt(articleForm.data?.id)\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面设置\" name=\"settings\" v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <MKDataForm :dataForm=\"articleForm\" label-width=\"120px\">\r\n <MKForm :dataForm=\"articleForm\">\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoKeywords\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoDesc\"></MKDataFormItem>\r\n </el-row>\r\n </MKForm>\r\n </MKDataForm>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, computed } from \"vue\";\r\nimport { ArrowLeftBold } from \"@element-plus/icons-vue\"\r\nimport { MKDocEditor, MKSvgIcon, MKUploadImage } from '../../../../components'\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../components\";\r\nimport ArticleAtlas from \"./components/article-atlas.vue\";\r\nimport { CmsArticlesForm } from \"../../dataviews\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { ImageUploadContext } from \"../../../ms\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\nconst route = useRoute()\r\nconst router = useRouter();\r\n\r\n\r\n// 文章请求\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\nconst articleOptionsActive = ref(\"content\");\r\n\r\n\r\n// 标题\r\nconst title = computed({\r\n get() { return articleForm.data?.title || \"\"; },\r\n set(val) { articleForm.data.title = val; }\r\n});\r\n// 子标题\r\nconst subTitle = computed({\r\n get() { return articleForm.data?.subTitle || \"\"; },\r\n set(val) { articleForm.data.subTitle = val; }\r\n});\r\n// 获取默认简介\r\nconst getDefaultDescContent = () => {\r\n if (!descAutoCreate.value) {\r\n return \"\";\r\n }\r\n let val: any = \"\";\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = content.value;\r\n val = div.textContent?.substring(0, 700);\r\n if (div.textContent!.length > 700) {\r\n val += \"...\";\r\n }\r\n return val;\r\n}\r\nconst descAutoCreate = ref(true)\r\n// 简介\r\nconst desc = computed({\r\n get() {\r\n return articleForm.data?.desc || getDefaultDescContent();\r\n },\r\n set(val) {\r\n articleForm.data.desc = val;\r\n }\r\n});\r\n// 发布时间\r\nconst releaseDate = computed({\r\n get() { return articleForm.data?.releaseDate || articleForm.data?.publishTime; },\r\n set(val) { articleForm.data.releaseDate = val; }\r\n});\r\n// 标签\r\nconst tags = ref([]);\r\n// computed({ \r\n// get() { return articleForm.data?.tags || [] }, \r\n// set(val) { articleForm.data.tags = val; } \r\n// });\r\n// 内容\r\nconst content = computed({\r\n get() { return articleForm.data?.content || \"\"; },\r\n set(val) { articleForm.data.content = val; }\r\n});\r\n\r\n// 图集\r\nconst atlas = computed({\r\n get() {\r\n return articleForm.data?.atlas\r\n },\r\n set(val) { articleForm.data.atlas = val; }\r\n});\r\n\r\n// 表单初始化\r\nconst formInitDataInfo = ()=>{\r\n // 初始化数据加载\r\n if (route.query.id) {\r\n articleForm.editRecord(route.query.id);\r\n }\r\n else if (route.query.partId) {\r\n articleForm.addRecord({ cmsPartId: route.query.partId,isDraft:1 });\r\n }\r\n else {\r\n articleForm.addRecord({ isDraft:1 });\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n formInitDataInfo();\r\n articleForm.init();\r\n\r\n})\r\n\r\n// 保存\r\nconst saveHandle = async () => {\r\n\r\n // 简介不存在的时候使用自动生成的\r\n if (!articleForm.data?.desc) {\r\n desc.value = getDefaultDescContent();\r\n }\r\n\r\n let result = await articleForm.submit();\r\n\r\n router.back();\r\n\r\n return result;\r\n}\r\n\r\n// 保存并预览\r\nconst saveAndViewHandle = async ()=>{\r\n const partId = articleForm.data.cmsPartId;\r\n const data = await saveHandle();\r\n if(data.data.code == 200 && data.data.data){\r\n window.open('/api/cms/content/preview/content/' + partId + '/' + data.data.data)\r\n }\r\n}\r\n\r\n// 保存并发布\r\nconst saveAndPublishHandle = async ()=>{\r\n const result:any = await articleForm.saveAndPublish(CmsSettings.publish.mode);\r\n if(result.data.code == 200){\r\n router.back();\r\n }\r\n}\r\n\r\n// 隐藏扩展\r\nconst closeExtentions = ref(true);\r\nconst extentionsRef = ref();\r\nconst hideExtentionsHandle = () => {\r\n closeExtentions.value = true;\r\n}\r\n//展示扩展\r\nconst closeExtentionsHandle = () => {\r\n closeExtentions.value = false;\r\n}\r\n\r\nconst EditorChangeHandle = (v: any) => {\r\n articleForm.data.content = v;\r\n}\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article-edit-add-page.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/article-edit-add-page.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-article-eidtadd__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"ArrowLeftBold\" title=\"返回\"\r\n @back=\"() => router.push({ name: 'cms/contents', query: { pid: articleForm?.data?.cmsPartId } })\">\r\n <template #content>\r\n <template v-if=\"!articleForm.loading\">\r\n <el-text v-if=\"!articleForm.data?.modifier\">{{ !!route.query.id ? \"编辑文章\" : \"创建文章\" }}</el-text>\r\n <el-text v-else>{{ articleForm.data?.modifierName }} 于 {{ articleForm.data?.updatedAt }} 更新</el-text>\r\n </template>\r\n </template>\r\n <template #extra>\r\n <div class=\"mk-cms-article-eidtadd__header_tools\">\r\n\r\n <template v-if=\"!articleForm.loading\">\r\n <el-tag v-if=\"!articleForm.data?.publishTime\" effect=\"dark\" round>未发布</el-tag>\r\n <el-text v-else>发布时间:{{ articleForm.data?.publishTime }}</el-text>\r\n </template>\r\n\r\n <el-dropdown split-button type=\"primary\" style=\"margin-left: 10px;\" @click=\"saveHandle\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 10px;\" />\r\n 保存\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"saveAndViewHandle\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-right: 5px;\" />\r\n 保存并预览\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"saveAndPublishHandle\">\r\n <MKSvgIcon iconClass=\"Share\" style=\"margin-right: 5px;\" />\r\n 保存并发布\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-article-eidtadd__body\" v-loading=\"articleForm.loading\">\r\n\r\n <MKDocEditor v-if=\"articleForm.data\" :css=\"CmsSettings.content.doc.css\" :js=\"CmsSettings.content.doc.js\" :content=\"content\" @change=\"EditorChangeHandle\">\r\n <template #header>\r\n <div class=\"mk-cms-article-eidtadd__body__header\">\r\n <el-row>\r\n <el-input class=\"title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"请输入标题\" v-model=\"title\" />\r\n </el-row>\r\n <el-row>\r\n <el-input class=\"sub-title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"[选填] 请输入子标题\" v-model=\"subTitle\" />\r\n </el-row>\r\n </div>\r\n </template>\r\n <template #after-extentions>\r\n <div class=\"mk-cms-article-eidtadd__body__extentions\" :class=\"{ hide: closeExtentions! }\" ref=\"extentionsRef\">\r\n <MKSvgIcon icon-class=\"ArrowLeft\" class=\"open\" @click=\"closeExtentionsHandle\" v-if=\"closeExtentions\">\r\n </MKSvgIcon>\r\n <MKSvgIcon v-else icon-class=\"ArrowRight\" class=\"close\" @click=\"hideExtentionsHandle\">\r\n </MKSvgIcon>\r\n <el-divider content-position=\"left\">文章设置</el-divider>\r\n <MKDataForm :dataForm=\"articleForm\">\r\n <MKForm :dataForm=\"articleForm\" style=\"width:225px\" label-width=\"110px\">\r\n <el-row v-if=\"CmsSettings.content.useTop\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isTop\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useNew\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isNew\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useHotRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isHotRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.usePartRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isPartRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isShowList\"></MKDataFormItem>\r\n </el-row>\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isDraft\"></MKDataFormItem>\r\n </el-row> -->\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"sortNo\"></MKDataFormItem>\r\n </el-row> -->\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n </template>\r\n <template #footer>\r\n <div class=\"mk-cms-article-eidtadd__body__footer\">\r\n <el-tabs v-model=\"articleOptionsActive\">\r\n <el-tab-pane label=\"基础内容\" name=\"content\">\r\n <div class=\"content\">\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"6\">\r\n <el-input placeholder=\"[选填] 作者\" v-model=\"articleForm.data.author\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"UserFilled\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-date-picker v-model=\"releaseDate\" type=\"datetime\" placeholder=\"发布时间\"\r\n :default-time=\"new Date()\" />\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input placeholder=\"[选填] 发布地址\" v-model=\"articleForm.data.locationDesc\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"Location\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useTags\">\r\n <el-select v-model=\"tags\" multiple filterable allow-create default-first-option\r\n :reserve-keyword=\"false\" placeholder=\"[可选] 选择文章标签\" style=\"width: 100%\">\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"CollectionTag\" />\r\n </template>\r\n </el-select>\r\n </el-row>\r\n <el-divider content-position=\"left\">\r\n 文章封面/简介\r\n <el-switch v-model=\"descAutoCreate\" style=\"margin-left: 10px;\" inline-prompt active-text=\"自动生成\"\r\n inactive-text=\"手动撰写\" />\r\n </el-divider>\r\n <el-row class=\"cover-desc\">\r\n <MKUploadImage style=\"margin-right: 10px;\" v-model=\"articleForm.data.cover\" width=\"115px\" height=\"115px\" \r\n :uploadContext=\"new ImageUploadContext(CmsSettings.content.coverImageSize)\">\r\n\r\n </MKUploadImage>\r\n <el-input class=\"desc\" type=\"textarea\" :autosize=\"{ minRows: 5, maxRows: 30 }\" maxlength=\"1000\"\r\n show-word-limit placeholder=\"[选填] 文章简介\" v-model=\"desc\" />\r\n </el-row>\r\n <el-divider content-position=\"left\">文章Banner图</el-divider>\r\n <el-row>\r\n <MKUploadImage v-model=\"articleForm.data.banner\" style=\"width: 100%;\" height=\"300px\" :uploadContext=\"new ImageUploadContext(CmsSettings.content.bannerImageSize)\">\r\n\r\n </MKUploadImage>\r\n </el-row>\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"文章资源库\" name=\"atlas\" v-if=\"CmsSettings.content.useAtlas\">\r\n <ArticleAtlas v-model=\"atlas\" :articleId=\"parseInt(articleForm.data?.id)\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面设置\" name=\"settings\" v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <MKDataForm :dataForm=\"articleForm\" label-width=\"120px\">\r\n <MKForm :dataForm=\"articleForm\">\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoKeywords\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoDesc\"></MKDataFormItem>\r\n </el-row>\r\n </MKForm>\r\n </MKDataForm>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, computed } from \"vue\";\r\nimport { ArrowLeftBold } from \"@element-plus/icons-vue\"\r\nimport { MKDocEditor, MKSvgIcon, MKUploadImage } from '../../../../components'\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../components\";\r\nimport ArticleAtlas from \"./components/article-atlas.vue\";\r\nimport { CmsArticlesForm } from \"../../dataviews\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { ImageUploadContext } from \"../../../ms\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\nconst route = useRoute()\r\nconst router = useRouter();\r\n\r\n\r\n// 文章请求\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\nconst articleOptionsActive = ref(\"content\");\r\n\r\n\r\n// 标题\r\nconst title = computed({\r\n get() { return articleForm.data?.title || \"\"; },\r\n set(val) { articleForm.data.title = val; }\r\n});\r\n// 子标题\r\nconst subTitle = computed({\r\n get() { return articleForm.data?.subTitle || \"\"; },\r\n set(val) { articleForm.data.subTitle = val; }\r\n});\r\n// 获取默认简介\r\nconst getDefaultDescContent = () => {\r\n if (!descAutoCreate.value) {\r\n return \"\";\r\n }\r\n let val: any = \"\";\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = content.value;\r\n val = div.textContent?.substring(0, 700);\r\n if (div.textContent!.length > 700) {\r\n val += \"...\";\r\n }\r\n return val;\r\n}\r\nconst descAutoCreate = ref(true)\r\n// 简介\r\nconst desc = computed({\r\n get() {\r\n return articleForm.data?.desc || getDefaultDescContent();\r\n },\r\n set(val) {\r\n articleForm.data.desc = val;\r\n }\r\n});\r\n// 发布时间\r\nconst releaseDate = computed({\r\n get() { return articleForm.data?.releaseDate || articleForm.data?.publishTime; },\r\n set(val) { articleForm.data.releaseDate = val; }\r\n});\r\n// 标签\r\nconst tags = ref([]);\r\n// computed({ \r\n// get() { return articleForm.data?.tags || [] }, \r\n// set(val) { articleForm.data.tags = val; } \r\n// });\r\n// 内容\r\nconst content = computed({\r\n get() { return articleForm.data?.content || \"\"; },\r\n set(val) { articleForm.data.content = val; }\r\n});\r\n\r\n// 图集\r\nconst atlas = computed({\r\n get() {\r\n return articleForm.data?.atlas\r\n },\r\n set(val) { articleForm.data.atlas = val; }\r\n});\r\n\r\n// 表单初始化\r\nconst formInitDataInfo = ()=>{\r\n // 初始化数据加载\r\n if (route.query.id) {\r\n articleForm.editRecord(route.query.id);\r\n }\r\n else if (route.query.partId) {\r\n articleForm.addRecord({ cmsPartId: route.query.partId,isDraft:1 });\r\n }\r\n else {\r\n articleForm.addRecord({ isDraft:1 });\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n formInitDataInfo();\r\n articleForm.init();\r\n\r\n})\r\n\r\n// 保存\r\nconst saveHandle = async () => {\r\n\r\n // 简介不存在的时候使用自动生成的\r\n if (!articleForm.data?.desc) {\r\n desc.value = getDefaultDescContent();\r\n }\r\n\r\n let result = await articleForm.submit();\r\n\r\n router.back();\r\n\r\n return result;\r\n}\r\n\r\n// 保存并预览\r\nconst saveAndViewHandle = async ()=>{\r\n const partId = articleForm.data.cmsPartId;\r\n const data = await saveHandle();\r\n if(data.data.code == 200 && data.data.data){\r\n window.open('/api/cms/content/preview/content/' + partId + '/' + data.data.data)\r\n }\r\n}\r\n\r\n// 保存并发布\r\nconst saveAndPublishHandle = async ()=>{\r\n const result:any = await articleForm.saveAndPublish(CmsSettings.publish.mode);\r\n if(result.data.code == 200){\r\n router.back();\r\n }\r\n}\r\n\r\n// 隐藏扩展\r\nconst closeExtentions = ref(true);\r\nconst extentionsRef = ref();\r\nconst hideExtentionsHandle = () => {\r\n closeExtentions.value = true;\r\n}\r\n//展示扩展\r\nconst closeExtentionsHandle = () => {\r\n closeExtentions.value = false;\r\n}\r\n\r\nconst EditorChangeHandle = (v: any) => {\r\n articleForm.data.content = v;\r\n}\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, reactive, onMounted, watch, resolveComponent, openBlock, createBlock, withCtx, unref, createElementBlock, Fragment, renderList, createElementVNode, createVNode, toDisplayString, createCommentVNode, createTextVNode } from "vue";
1
+ import { defineComponent, reactive, onMounted, watch, resolveComponent, openBlock, createBlock, withCtx, unref, createElementBlock, Fragment, renderList, createElementVNode, createVNode, toDisplayString, createTextVNode, createCommentVNode } from "vue";
2
2
  import "../../../../../components/abstract/abstract-select/abstract-select.js";
3
3
  import "../../../../../components/abstract/abstract-select/abstract-select-options.js";
4
4
  import "element-plus";
@@ -60,16 +60,18 @@ import { MKTableView } from "../../../../../components/data-model/data-table/vie
60
60
  const _hoisted_1 = { class: "mk-cms-article-list__item__content" };
61
61
  const _hoisted_2 = { class: "left" };
62
62
  const _hoisted_3 = { class: "right" };
63
- const _hoisted_4 = ["title"];
63
+ const _hoisted_4 = { class: "top" };
64
64
  const _hoisted_5 = ["title"];
65
- const _hoisted_6 = { class: "desc" };
66
- const _hoisted_7 = { class: "footer" };
67
- const _hoisted_8 = { class: "ext" };
68
- const _hoisted_9 = { class: "author" };
69
- const _hoisted_10 = { class: "publish-time" };
70
- const _hoisted_11 = { class: "tools" };
71
- const _hoisted_12 = ["href"];
72
- const _hoisted_13 = ["href"];
65
+ const _hoisted_6 = { class: "tags" };
66
+ const _hoisted_7 = ["title"];
67
+ const _hoisted_8 = { class: "desc" };
68
+ const _hoisted_9 = { class: "footer" };
69
+ const _hoisted_10 = { class: "ext" };
70
+ const _hoisted_11 = { class: "author" };
71
+ const _hoisted_12 = { class: "publish-time" };
72
+ const _hoisted_13 = { class: "tools" };
73
+ const _hoisted_14 = ["href"];
74
+ const _hoisted_15 = ["href"];
73
75
  const _sfc_main = /* @__PURE__ */ defineComponent({
74
76
  __name: "article-list",
75
77
  props: {
@@ -77,11 +79,41 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
77
79
  },
78
80
  setup(__props) {
79
81
  const CmsSettings = useCmsSettings();
82
+ console.log(CmsSettings.content);
80
83
  const articlesDv = reactive(new CmsArticlesTable());
81
84
  const articleForm = reactive(new CmsArticlesForm());
82
85
  const draftArticleForm = reactive(new CmsArticlesForm());
83
86
  const props = __props;
84
87
  const router = useRouter();
88
+ const changeArticleStatus = async (article, item, status) => {
89
+ const text = {
90
+ "isTop": ["取消置顶", "设为置顶"],
91
+ "isNew": ["取消最新", "设为最新"],
92
+ "isHotRecommend": ["取消热门推荐", "设为热门推荐"],
93
+ "isPartRecommend": ["取消栏目推荐", "设为栏目推荐"]
94
+ };
95
+ const isConfirm = await Dialoger.confirm({
96
+ title: "修改文章状态",
97
+ message: `是否${text[item][status]}?`,
98
+ type: "warning"
99
+ });
100
+ if (!isConfirm) {
101
+ return;
102
+ }
103
+ try {
104
+ articlesDv.getLoadingManager().startLoading();
105
+ await articleForm.editRecord(article.id);
106
+ const isSuccess = await articleForm.simpleSubmit({
107
+ id: article.id,
108
+ [item]: status
109
+ });
110
+ if (isSuccess) {
111
+ articlesDv.load();
112
+ }
113
+ } finally {
114
+ articlesDv.getLoadingManager().completeLoading();
115
+ }
116
+ };
85
117
  onMounted(() => {
86
118
  articleForm.init();
87
119
  draftArticleForm.init();
@@ -132,7 +164,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
132
164
  const _component_el_empty = resolveComponent("el-empty");
133
165
  const _component_MKSvgIcon = resolveComponent("MKSvgIcon");
134
166
  const _component_el_image = resolveComponent("el-image");
167
+ const _component_el_tag = resolveComponent("el-tag");
135
168
  const _component_el_button = resolveComponent("el-button");
169
+ const _component_el_dropdown_item = resolveComponent("el-dropdown-item");
170
+ const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
171
+ const _component_el_dropdown = resolveComponent("el-dropdown");
136
172
  const _component_el_card = resolveComponent("el-card");
137
173
  const _component_el_scrollbar = resolveComponent("el-scrollbar");
138
174
  const _component_MKDataTable = resolveComponent("MKDataTable");
@@ -176,28 +212,72 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
176
212
  }, 1032, ["src"])
177
213
  ]),
178
214
  createElementVNode("div", _hoisted_3, [
179
- createElementVNode("div", {
180
- class: "title",
181
- title: article.title
182
- }, toDisplayString(article.title), 9, _hoisted_4),
215
+ createElementVNode("div", _hoisted_4, [
216
+ createElementVNode("div", {
217
+ class: "title",
218
+ title: article.title
219
+ }, toDisplayString(article.title), 9, _hoisted_5),
220
+ createElementVNode("div", _hoisted_6, [
221
+ unref(CmsSettings).content.useTop && article.isTop == 1 ? (openBlock(), createBlock(_component_el_tag, {
222
+ key: 0,
223
+ class: "tag",
224
+ onClick: ($event) => changeArticleStatus(article, "isTop", 0)
225
+ }, {
226
+ default: withCtx(() => [
227
+ createTextVNode("置顶")
228
+ ]),
229
+ _: 2
230
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
231
+ unref(CmsSettings).content.useNew && article.isNew == 1 ? (openBlock(), createBlock(_component_el_tag, {
232
+ key: 1,
233
+ class: "tag",
234
+ onClick: ($event) => changeArticleStatus(article, "isNew", 0)
235
+ }, {
236
+ default: withCtx(() => [
237
+ createTextVNode("最新")
238
+ ]),
239
+ _: 2
240
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
241
+ unref(CmsSettings).content.useHotRecommend && article.isHotRecommend == 1 ? (openBlock(), createBlock(_component_el_tag, {
242
+ key: 2,
243
+ class: "tag",
244
+ onClick: ($event) => changeArticleStatus(article, "isHotRecommend", 0)
245
+ }, {
246
+ default: withCtx(() => [
247
+ createTextVNode("热门推荐")
248
+ ]),
249
+ _: 2
250
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
251
+ unref(CmsSettings).content.usePartRecommend && article.isPartRecommend == 1 ? (openBlock(), createBlock(_component_el_tag, {
252
+ key: 3,
253
+ class: "tag",
254
+ onClick: ($event) => changeArticleStatus(article, "isPartRecommend", 0)
255
+ }, {
256
+ default: withCtx(() => [
257
+ createTextVNode("栏目推荐")
258
+ ]),
259
+ _: 2
260
+ }, 1032, ["onClick"])) : createCommentVNode("", true)
261
+ ])
262
+ ]),
183
263
  article.subTitle ? (openBlock(), createElementBlock("div", {
184
264
  key: 0,
185
265
  class: "sub-title",
186
266
  title: article.subTitle
187
- }, toDisplayString(article.subTitle), 9, _hoisted_5)) : createCommentVNode("", true),
188
- createElementVNode("div", _hoisted_6, toDisplayString(article.desc), 1),
189
- createElementVNode("div", _hoisted_7, [
190
- createElementVNode("div", _hoisted_8, [
191
- createElementVNode("div", _hoisted_9, [
267
+ }, toDisplayString(article.subTitle), 9, _hoisted_7)) : createCommentVNode("", true),
268
+ createElementVNode("div", _hoisted_8, toDisplayString(article.desc), 1),
269
+ createElementVNode("div", _hoisted_9, [
270
+ createElementVNode("div", _hoisted_10, [
271
+ createElementVNode("div", _hoisted_11, [
192
272
  createVNode(_component_MKSvgIcon, { iconClass: "UserFilled" }),
193
273
  createTextVNode(" 作者 : " + toDisplayString(article.author || "-"), 1)
194
274
  ]),
195
- createElementVNode("div", _hoisted_10, [
275
+ createElementVNode("div", _hoisted_12, [
196
276
  createVNode(_component_MKSvgIcon, { iconClass: "Timer" }),
197
277
  createTextVNode(" 发布时间 : " + toDisplayString(article.publishTime), 1)
198
278
  ])
199
279
  ]),
200
- createElementVNode("div", _hoisted_11, [
280
+ createElementVNode("div", _hoisted_13, [
201
281
  createVNode(_component_el_button, {
202
282
  type: "primary",
203
283
  size: "large",
@@ -220,24 +300,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
220
300
  ]),
221
301
  _: 2
222
302
  }, 1032, ["onClick"]),
223
- unref(CmsSettings).publish.mode == "static" && article.url ? (openBlock(), createElementBlock("a", {
224
- key: 0,
225
- href: article.url,
226
- target: "_blank"
227
- }, [
228
- createVNode(_component_el_button, {
229
- type: "primary",
230
- size: "large",
231
- text: ""
232
- }, {
233
- default: withCtx(() => [
234
- createTextVNode("访问")
235
- ]),
236
- _: 1
237
- })
238
- ], 8, _hoisted_12)) : createCommentVNode("", true),
239
303
  unref(CmsSettings).publish.mode == "static" ? (openBlock(), createElementBlock("a", {
240
- key: 1,
304
+ key: 0,
241
305
  href: "/api/cms/content/preview/content/" + article.cmsPartId + "/" + article.id,
242
306
  target: "_blank"
243
307
  }, [
@@ -251,18 +315,84 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
251
315
  ]),
252
316
  _: 1
253
317
  })
254
- ], 8, _hoisted_13)) : createCommentVNode("", true),
255
- createVNode(_component_el_button, {
256
- type: "primary",
257
- size: "large",
258
- text: "",
259
- onClick: ($event) => publishArticleHandle(article)
260
- }, {
318
+ ], 8, _hoisted_14)) : createCommentVNode("", true),
319
+ createVNode(_component_el_dropdown, null, {
320
+ dropdown: withCtx(() => [
321
+ createVNode(_component_el_dropdown_menu, null, {
322
+ default: withCtx(() => [
323
+ unref(CmsSettings).publish.mode == "static" && article.url ? (openBlock(), createBlock(_component_el_dropdown_item, { key: 0 }, {
324
+ default: withCtx(() => [
325
+ unref(CmsSettings).publish.mode == "static" && article.url ? (openBlock(), createElementBlock("a", {
326
+ key: 0,
327
+ style: { "text-decoration": "none", "color": "#606266" },
328
+ href: article.url,
329
+ target: "_blank"
330
+ }, " 访问 ", 8, _hoisted_15)) : createCommentVNode("", true)
331
+ ]),
332
+ _: 2
333
+ }, 1024)) : createCommentVNode("", true),
334
+ createVNode(_component_el_dropdown_item, {
335
+ onClick: ($event) => publishArticleHandle(article)
336
+ }, {
337
+ default: withCtx(() => [
338
+ createTextVNode(" 发布 ")
339
+ ]),
340
+ _: 2
341
+ }, 1032, ["onClick"]),
342
+ unref(CmsSettings).content.useTop && article.isTop == 0 ? (openBlock(), createBlock(_component_el_dropdown_item, {
343
+ key: 1,
344
+ onClick: ($event) => changeArticleStatus(article, "isTop", 1)
345
+ }, {
346
+ default: withCtx(() => [
347
+ createTextVNode("设为置顶")
348
+ ]),
349
+ _: 2
350
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
351
+ unref(CmsSettings).content.useNew && article.isNew == 0 ? (openBlock(), createBlock(_component_el_dropdown_item, {
352
+ key: 2,
353
+ onClick: ($event) => changeArticleStatus(article, "isNew", 1)
354
+ }, {
355
+ default: withCtx(() => [
356
+ createTextVNode("设为最新")
357
+ ]),
358
+ _: 2
359
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
360
+ unref(CmsSettings).content.useHotRecommend && article.isHotRecommend == 0 ? (openBlock(), createBlock(_component_el_dropdown_item, {
361
+ key: 3,
362
+ onClick: ($event) => changeArticleStatus(article, "isHotRecommend", 1)
363
+ }, {
364
+ default: withCtx(() => [
365
+ createTextVNode("设为热门推荐")
366
+ ]),
367
+ _: 2
368
+ }, 1032, ["onClick"])) : createCommentVNode("", true),
369
+ unref(CmsSettings).content.usePartRecommend && article.isPartRecommend == 0 ? (openBlock(), createBlock(_component_el_dropdown_item, {
370
+ key: 4,
371
+ onClick: ($event) => changeArticleStatus(article, "isPartRecommend", 1)
372
+ }, {
373
+ default: withCtx(() => [
374
+ createTextVNode("设为栏目推荐")
375
+ ]),
376
+ _: 2
377
+ }, 1032, ["onClick"])) : createCommentVNode("", true)
378
+ ]),
379
+ _: 2
380
+ }, 1024)
381
+ ]),
261
382
  default: withCtx(() => [
262
- createTextVNode(" 发布 ")
383
+ createVNode(_component_el_button, {
384
+ type: "primary",
385
+ size: "large",
386
+ text: ""
387
+ }, {
388
+ default: withCtx(() => [
389
+ createTextVNode(" 更多 ")
390
+ ]),
391
+ _: 1
392
+ })
263
393
  ]),
264
394
  _: 2
265
- }, 1032, ["onClick"])
395
+ }, 1024)
266
396
  ])
267
397
  ])
268
398
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"article-list.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/article-list.vue"],"sourcesContent":["<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon> \r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon> \r\n 发布时间 : {{ article.publishTime }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a>\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\" v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-button type=\"primary\" size=\"large\" text @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable,CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch,onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n// 初始化\r\nonMounted(()=>{\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n\r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response:any = await CmsArticlesForm.publish(CmsSettings.publish.mode,article.cmsPartId,article.id);\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 Messager.success({ message: \"发布成功\" });\r\n }\r\n\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,UAAM,cAAc;AAGpB,UAAM,aAAa,SAAS,IAAI,iBAAkB,CAAA;AAElD,UAAM,cAAc,SAAS,IAAI,gBAAiB,CAAA;AAElD,UAAM,mBAAmB,SAAS,IAAI,gBAAiB,CAAA;AAGvD,UAAM,QAAQ;AAId,UAAM,SAAS;AAGf,cAAU,MAAI;AACZ,kBAAY,KAAK;AACjB,uBAAiB,KAAK;AAGtB,YAAM,MAAM,MAAM,MAAM,CAAC,SAAc;AACjC,YAAA,KAAK,iBAAiB,GAAG;AAE3B,gBAAM,aAAa,WAAW;AAE1B,cAAA,cAAc,UAAU,GAAG;AAEvB,kBAAA,eAAe,WAAW;AAEhC,yBAAa,MAAM;AACnB,yBAAa,aAAa,aAAa,KAAK,KAAK,EAAE;AAEtC,yBAAA,aAAa,WAAW,KAAK,CAAC;AAAA,UAC7C;AAEA,qBAAW,KAAK;AAAA,QAClB;AAAA,MAAA,GACC,EAAE,WAAW,KAAA,CAAM;AAAA,IAAA,CACvB;AAKK,UAAA,sBAAsB,OAAO,SAAc;AACzC,YAAA,YAAY,MAAM,SAAS,QAAQ;AAAA,QACvC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP;AAED,UAAI,CAAC,WAAW;AAAE;AAAA,MAAQ;AACpB,YAAA,WAAW,mBAAmB,KAAK,EAAE;AAAA,IAAA;AAM7C,UAAM,oBAAoB,CAAC,MAAW,SAAS,UAAU;AACvD,aAAO,KAAK,EAAE,MAAM,gBAAgB,OAAO,EAAE,IAAI,SAAS,SAAY,KAAK,IAAI,QAAQ,SAAS,KAAK,KAAK,UAAa;AAAA,IAAA;AAIzH,eAAW,eAAe,GAAG,MAAO,kBAAkB,MAAM,MAAM,IAAI,CAAC;AAMjE,UAAA,uBAAuB,OAAO,YAAiB;AAE/C,UAAA;AAEE,YAAA,MAAM,SAAS,QAAQ,EAAE,OAAO,QAAQ,SAAS,WAAW,MAAM,UAAU,CAAC,GAAG;AAEvE,qBAAA,oBAAoB;AAGzB,gBAAA,WAAe,MAAM,gBAAgB,QAAQ,YAAY,QAAQ,MAAK,QAAQ,WAAU,QAAQ,EAAE;AAEpG,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,qBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,UACF;AAEA,mBAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,QACtC;AAAA,MAAA,UAEA;AACW,mBAAA,oBAAoB;MACjC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"article-list.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/article-list.vue"],"sourcesContent":["<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"top\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"tags\">\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useTop && article.isTop == 1\"\r\n @click=\"changeArticleStatus(article, 'isTop', 0)\">置顶</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useNew && article.isNew == 1\"\r\n @click=\"changeArticleStatus(article, 'isNew', 0)\">最新</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 0)\">热门推荐</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 0)\">栏目推荐</el-tag>\r\n </div>\r\n </div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon>\r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon>\r\n 发布时间 : {{ article.publishTime }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <!-- <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a> -->\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\"\r\n v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-dropdown>\r\n <el-button type=\"primary\" size=\"large\" text>\r\n 更多\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static' && article.url\">\r\n <a style=\"text-decoration: none;color: #606266;\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\"\r\n target=\"_blank\">\r\n 访问\r\n </a>\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useTop && article.isTop == 0\"\r\n @click=\"changeArticleStatus(article, 'isTop', 1)\">设为置顶</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useNew && article.isNew == 0\"\r\n @click=\"changeArticleStatus(article, 'isNew', 1)\">设为最新</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 1)\">设为热门推荐</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 1)\">设为栏目推荐</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable, CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch, onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\nconsole.log(CmsSettings.content)\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n//改变文章指定,最新,推荐状态\r\nconst changeArticleStatus = async (article: any, item: string, status: number) => {\r\n const text: Record<string, string[]> = {\r\n \"isTop\": ['取消置顶', '设为置顶'],\r\n \"isNew\": ['取消最新', '设为最新'],\r\n \"isHotRecommend\": ['取消热门推荐', '设为热门推荐'],\r\n \"isPartRecommend\": ['取消栏目推荐', '设为栏目推荐'],\r\n }\r\n\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"修改文章状态\",\r\n message: `是否${text[item][status]}?`,\r\n type: \"warning\"\r\n })\r\n if (!isConfirm) {\r\n return\r\n }\r\n try {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n await articleForm.editRecord(article.id)\r\n const isSuccess = await articleForm.simpleSubmit({\r\n id: article.id,\r\n [item]: status\r\n })\r\n\r\n if (isSuccess) {\r\n articlesDv.load();\r\n }\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n\r\n\r\n}\r\n\r\n// 初始化\r\nonMounted(() => {\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n\r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response: any = await CmsArticlesForm.publish(CmsSettings.publish.mode, article.cmsPartId, article.id);\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 Messager.success({ message: \"发布成功\" });\r\n }\r\n\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA,UAAM,cAAc;AACZ,YAAA,IAAI,YAAY,OAAO;AAG/B,UAAM,aAAa,SAAS,IAAI,iBAAkB,CAAA;AAElD,UAAM,cAAc,SAAS,IAAI,gBAAiB,CAAA;AAElD,UAAM,mBAAmB,SAAS,IAAI,gBAAiB,CAAA;AAGvD,UAAM,QAAQ;AAId,UAAM,SAAS;AAGf,UAAM,sBAAsB,OAAO,SAAc,MAAc,WAAmB;AAChF,YAAM,OAAiC;AAAA,QACrC,SAAS,CAAC,QAAQ,MAAM;AAAA,QACxB,SAAS,CAAC,QAAQ,MAAM;AAAA,QACxB,kBAAkB,CAAC,UAAU,QAAQ;AAAA,QACrC,mBAAmB,CAAC,UAAU,QAAQ;AAAA,MAAA;AAGlC,YAAA,YAAY,MAAM,SAAS,QAAQ;AAAA,QACvC,OAAO;AAAA,QACP,SAAS,KAAK,KAAK,IAAI,EAAE,MAAM,CAAC;AAAA,QAChC,MAAM;AAAA,MAAA,CACP;AACD,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AACI,UAAA;AAES,mBAAA,oBAAoB;AACzB,cAAA,YAAY,WAAW,QAAQ,EAAE;AACjC,cAAA,YAAY,MAAM,YAAY,aAAa;AAAA,UAC/C,IAAI,QAAQ;AAAA,UACZ,CAAC,IAAI,GAAG;AAAA,QAAA,CACT;AAED,YAAI,WAAW;AACb,qBAAW,KAAK;AAAA,QAClB;AAAA,MAAA,UACA;AACW,mBAAA,oBAAoB;MACjC;AAAA,IAAA;AAMF,cAAU,MAAM;AACd,kBAAY,KAAK;AACjB,uBAAiB,KAAK;AAGtB,YAAM,MAAM,MAAM,MAAM,CAAC,SAAc;AACjC,YAAA,KAAK,iBAAiB,GAAG;AAE3B,gBAAM,aAAa,WAAW;AAE1B,cAAA,cAAc,UAAU,GAAG;AAEvB,kBAAA,eAAe,WAAW;AAEhC,yBAAa,MAAM;AACnB,yBAAa,aAAa,aAAa,KAAK,KAAK,EAAE;AAEtC,yBAAA,aAAa,WAAW,KAAK,CAAC;AAAA,UAC7C;AAEA,qBAAW,KAAK;AAAA,QAClB;AAAA,MAAA,GACC,EAAE,WAAW,KAAA,CAAM;AAAA,IAAA,CACvB;AAKK,UAAA,sBAAsB,OAAO,SAAc;AACzC,YAAA,YAAY,MAAM,SAAS,QAAQ;AAAA,QACvC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP;AAED,UAAI,CAAC,WAAW;AAAE;AAAA,MAAQ;AACpB,YAAA,WAAW,mBAAmB,KAAK,EAAE;AAAA,IAAA;AAM7C,UAAM,oBAAoB,CAAC,MAAW,SAAS,UAAU;AACvD,aAAO,KAAK,EAAE,MAAM,gBAAgB,OAAO,EAAE,IAAI,SAAS,SAAY,KAAK,IAAI,QAAQ,SAAS,KAAK,KAAK,UAAa;AAAA,IAAA;AAIzH,eAAW,eAAe,GAAG,MAAM,kBAAkB,MAAM,MAAM,IAAI,CAAC;AAMhE,UAAA,uBAAuB,OAAO,YAAiB;AAE/C,UAAA;AAEE,YAAA,MAAM,SAAS,QAAQ,EAAE,OAAO,QAAQ,SAAS,WAAW,MAAM,UAAU,CAAC,GAAG;AAEvE,qBAAA,oBAAoB;AAGzB,gBAAA,WAAgB,MAAM,gBAAgB,QAAQ,YAAY,QAAQ,MAAM,QAAQ,WAAW,QAAQ,EAAE;AAEvG,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,qBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,UACF;AAEA,mBAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,QACtC;AAAA,MAAA,UAEA;AACW,mBAAA,oBAAoB;MACjC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, reactive, onMounted, watch, resolveComponent, resolveDirective, unref, withDirectives, openBlock, createElementBlock, createBlock, withCtx, Fragment, renderList, createElementVNode, createCommentVNode, toDisplayString, createVNode, createTextVNode } from "vue";
1
+ import { defineComponent, ref, reactive, computed, onMounted, watch, resolveComponent, resolveDirective, unref, withDirectives, openBlock, createElementBlock, createBlock, withCtx, Fragment, renderList, createElementVNode, createCommentVNode, toDisplayString, createVNode, createTextVNode } from "vue";
2
2
  import { useCmsSettings } from "../../../cms-settings.js";
3
3
  import { DataViewRequest, Where } from "@maketribe/request";
4
4
  import { Messager, Dialoger } from "@maketribe/dm";
@@ -56,23 +56,19 @@ import { EditPen, Plus } from "@element-plus/icons-vue";
56
56
  import "../../../../ms/material-upload-context/material-upload-context-options.js";
57
57
  import "../../../../ms/material-upload-context/material-upload-context.js";
58
58
  import "@codemirror/lang-html";
59
- const _hoisted_1 = {
60
- key: 0,
61
- class: "mk-cms-part-banner__warp"
62
- };
63
- const _hoisted_2 = { class: "mk-cms-part-banner__list_item" };
64
- const _hoisted_3 = { class: "mk-cms-part-banner__list_content" };
65
- const _hoisted_4 = /* @__PURE__ */ createElementVNode("div", {
59
+ const _hoisted_1 = { class: "mk-cms-part-banner__list_item" };
60
+ const _hoisted_2 = { class: "mk-cms-part-banner__list_content" };
61
+ const _hoisted_3 = /* @__PURE__ */ createElementVNode("div", {
66
62
  slot: "placeholder",
67
63
  class: "image-slot"
68
64
  }, [
69
65
  /* @__PURE__ */ createTextVNode(" 加载中"),
70
66
  /* @__PURE__ */ createElementVNode("span", { class: "dot" }, "...")
71
67
  ], -1);
72
- const _hoisted_5 = ["src"];
73
- const _hoisted_6 = { class: "mk-cms-part-banner__list_bottom" };
74
- const _hoisted_7 = { class: "mk-cms-part-banner__list_title" };
75
- const _hoisted_8 = { class: "mk-cms-part-banner__list_action-mask" };
68
+ const _hoisted_4 = ["src"];
69
+ const _hoisted_5 = { class: "mk-cms-part-banner__list_bottom" };
70
+ const _hoisted_6 = { class: "mk-cms-part-banner__list_title" };
71
+ const _hoisted_7 = { class: "mk-cms-part-banner__list_action-mask" };
76
72
  const _sfc_main = /* @__PURE__ */ defineComponent({
77
73
  __name: "part-banner-edit",
78
74
  props: { partId: { type: String }, title: { type: String } },
@@ -82,8 +78,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
82
78
  const props = __props;
83
79
  const partAdBanner = ref(null);
84
80
  const loading = ref(true);
81
+ const warpRef = ref();
85
82
  const adContentForm = reactive(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }));
86
83
  const adDefineForm = reactive(new CmsAdDefinesForm());
84
+ const partAdBannerHeight = computed(() => {
85
+ let proportion = 0;
86
+ console.log(cmsSettings.part.bannerImageSize);
87
+ const widthAndHeight = cmsSettings.part.bannerImageSize.split("*");
88
+ let settingHeight = 0;
89
+ let settingWidth = 0;
90
+ if (!!partAdBanner.value.width && !!partAdBanner.value.height) {
91
+ proportion = partAdBanner.value.width / partAdBanner.value.height;
92
+ } else {
93
+ settingWidth = widthAndHeight[0];
94
+ settingHeight = widthAndHeight[1];
95
+ proportion = settingWidth / settingHeight;
96
+ }
97
+ if (Number.isNaN(proportion)) {
98
+ return "240px";
99
+ } else {
100
+ return partAdBanner.value.height ? warpRef.value.offsetWidth / proportion + "px" : warpRef.value.offsetWidth / proportion + "px";
101
+ }
102
+ });
87
103
  adContentForm.beforeSubmitEvent.on(async ({ data }) => {
88
104
  if (partAdBanner.value) {
89
105
  data.adDefineId = partAdBanner.value.id;
@@ -168,12 +184,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
168
184
  const _component_el_text = resolveComponent("el-text");
169
185
  const _component_el_empty = resolveComponent("el-empty");
170
186
  const _directive_loading = resolveDirective("loading");
171
- return unref(cmsSettings).part.openBanner ? withDirectives((openBlock(), createElementBlock("div", _hoisted_1, [
187
+ return unref(cmsSettings).part.openBanner ? withDirectives((openBlock(), createElementBlock("div", {
188
+ key: 0,
189
+ class: "mk-cms-part-banner__warp",
190
+ ref_key: "warpRef",
191
+ ref: warpRef
192
+ }, [
172
193
  partAdBanner.value && ((_a = partAdBanner.value.contents) == null ? void 0 : _a.length) ? (openBlock(), createBlock(_component_el_carousel, {
173
194
  key: 0,
174
195
  autoplay: false,
175
- height: "240px",
176
- arrow: "always"
196
+ height: partAdBannerHeight.value,
197
+ arrow: "always",
198
+ ref: "carouselRef"
177
199
  }, {
178
200
  default: withCtx(() => [
179
201
  (openBlock(true), createElementBlock(Fragment, null, renderList(partAdBanner.value.contents, (item) => {
@@ -181,8 +203,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
181
203
  key: item.id
182
204
  }, {
183
205
  default: withCtx(() => [
184
- createElementVNode("div", _hoisted_2, [
185
- createElementVNode("div", _hoisted_3, [
206
+ createElementVNode("div", _hoisted_1, [
207
+ createElementVNode("div", _hoisted_2, [
186
208
  item.type == 1 ? (openBlock(), createBlock(_component_el_image, {
187
209
  key: 0,
188
210
  class: "mk-cms-part-banner__list_content_img",
@@ -191,7 +213,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
191
213
  tyle: "width: 100%;height: 100%;"
192
214
  }, {
193
215
  default: withCtx(() => [
194
- _hoisted_4
216
+ _hoisted_3
195
217
  ]),
196
218
  _: 2
197
219
  }, 1032, ["src"])) : createCommentVNode("", true),
@@ -201,13 +223,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
201
223
  src: item.path,
202
224
  style: { "width": "100%", "height": "100%" },
203
225
  controls: ""
204
- }, null, 8, _hoisted_5)) : createCommentVNode("", true)
226
+ }, null, 8, _hoisted_4)) : createCommentVNode("", true)
205
227
  ]),
206
- createElementVNode("div", _hoisted_6, [
207
- createElementVNode("div", _hoisted_7, toDisplayString(item.title), 1),
228
+ createElementVNode("div", _hoisted_5, [
229
+ createElementVNode("div", _hoisted_6, toDisplayString(item.title), 1),
208
230
  createElementVNode("div", null, toDisplayString(item.desc), 1)
209
231
  ]),
210
- createElementVNode("div", _hoisted_8, [
232
+ createElementVNode("div", _hoisted_7, [
211
233
  createVNode(_component_el_button, {
212
234
  type: "primary",
213
235
  style: { "margin-left": "10px" },
@@ -249,7 +271,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
249
271
  }), 128))
250
272
  ]),
251
273
  _: 1
252
- })) : (openBlock(), createBlock(_component_el_empty, {
274
+ }, 8, ["height"])) : (openBlock(), createBlock(_component_el_empty, {
253
275
  key: 1,
254
276
  "image-size": 80,
255
277
  style: { "height": "240px" }