@maketribe/ms-app 3.2.32 → 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 (167) hide show
  1. package/dist/cjs/components/basic/doc-editor/core/element-block.js +48 -63
  2. package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/core/index.js +1 -1
  4. package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
  5. package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -1
  6. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  7. package/dist/cjs/components/basic/doc-editor/index.js +2 -0
  8. package/dist/cjs/components/basic/doc-editor/index.js.map +1 -1
  9. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +203 -65
  10. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  11. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +39 -39
  12. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
  13. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
  14. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
  15. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
  16. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
  17. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +33 -18
  18. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
  19. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
  20. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
  21. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +4 -52
  22. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  23. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
  24. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  25. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +19 -22
  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/ImagePlugin/utils.js +2 -2
  28. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  29. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
  30. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  31. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js +11 -10
  32. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  33. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +5 -26
  34. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  35. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +3 -1
  36. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  37. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
  38. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
  39. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
  40. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
  41. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +26 -0
  42. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
  43. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +4 -0
  44. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
  45. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
  46. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  47. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +2 -1
  48. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  49. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  50. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  51. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
  52. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  53. package/dist/cjs/index.js +2 -0
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
  56. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  57. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +176 -46
  58. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  59. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +44 -22
  60. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  61. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
  62. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  63. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +2 -1
  64. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  65. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +1 -1
  66. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  67. package/dist/esm/components/basic/doc-editor/core/element-block.js +50 -65
  68. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -1
  69. package/dist/esm/components/basic/doc-editor/core/index.js +2 -2
  70. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  71. package/dist/esm/components/basic/doc-editor/editor.vue.js +5 -2
  72. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  73. package/dist/esm/components/basic/doc-editor/index.js +3 -1
  74. package/dist/esm/components/basic/doc-editor/index.js.map +1 -1
  75. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +206 -68
  76. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  77. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +39 -39
  78. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
  79. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
  80. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
  81. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
  82. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
  83. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +33 -18
  84. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
  85. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
  86. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
  87. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +7 -55
  88. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  89. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
  90. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  91. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +20 -23
  92. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  93. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +2 -2
  94. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  95. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
  96. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  97. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js +12 -11
  98. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  99. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +7 -28
  100. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  101. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +4 -2
  102. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  103. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
  104. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
  105. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
  106. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
  107. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +27 -0
  108. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
  109. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +5 -0
  110. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
  111. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
  112. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  113. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +3 -2
  114. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  115. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  116. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  117. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
  118. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  119. package/dist/esm/index.js +2 -0
  120. package/dist/esm/index.js.map +1 -1
  121. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
  122. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  123. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +177 -47
  124. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  125. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +45 -23
  126. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  127. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
  128. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  129. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +2 -1
  130. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  131. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +1 -1
  132. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  133. package/dist/style/components/basic/doc-editor/index.css +1 -1
  134. package/dist/style/components/index.css +1 -1
  135. package/dist/style/index.css +2 -2
  136. package/dist/style/modules/cms/index.css +1 -1
  137. package/dist/style/modules/cms/pages/cms-contents/components/article-list.css +1 -1
  138. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  139. package/dist/style/modules/ms/components/rich-text-editor/index.css +1 -1
  140. package/dist/style/modules/ms/index.css +1 -1
  141. package/dist/style/src/components/basic/doc-editor/index.scss +16 -0
  142. package/dist/style/src/modules/cms/pages/cms-contents/components/article-list.scss +31 -3
  143. package/dist/style/src/modules/ms/components/rich-text-editor/index.scss +1 -1
  144. package/dist/types/components/basic/doc-editor/core/element-block.d.ts +5 -13
  145. package/dist/types/components/basic/doc-editor/core/index.d.ts +0 -1
  146. package/dist/types/components/basic/doc-editor/index.d.ts +2 -1
  147. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +10 -5
  148. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +5 -0
  149. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +5 -0
  150. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +5 -0
  151. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +5 -0
  152. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +5 -1
  153. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +3 -8
  154. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +1 -1
  155. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/commands.d.ts +5 -0
  156. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +34 -0
  157. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.d.ts +2 -0
  158. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +2 -1
  159. package/dist/types/modules/ms/components/rich-text-editor/index.d.ts +2 -2
  160. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +1 -1
  161. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +2 -2
  162. package/package.json +3 -3
  163. package/dist/cjs/components/basic/doc-editor/core/utils.js +0 -42
  164. package/dist/cjs/components/basic/doc-editor/core/utils.js.map +0 -1
  165. package/dist/esm/components/basic/doc-editor/core/utils.js +0 -42
  166. package/dist/esm/components/basic/doc-editor/core/utils.js.map +0 -1
  167. package/dist/types/components/basic/doc-editor/core/utils.d.ts +0 -4
@@ -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":"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"}
@@ -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" }
@@ -1 +1 @@
1
- {"version":3,"file":"part-banner-edit.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-banner__warp\" v-loading=\"loading\" v-if=\"cmsSettings.part.openBanner\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" height=\"240px\" arrow=\"always\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else :image-size=\"80\" style=\"height: 240px;\">\r\n <template #description>\r\n <el-text>暂无轮播素材数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, ref, watch, defineProps } from \"vue\";\r\nimport { DataViewRequest, Where } from \"@maketribe/request\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, ArrowDown, Delete, Plus } from \"@element-plus/icons-vue\"\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\nconst props = defineProps({ partId: { type: String }, title: { type: String } })\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: `part_${props.partId}`, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n//提交判断是否存在,判断更新还是添加\r\nadDefineForm.formatSubmitData = ((data) => {\r\n if (partAdBanner.value) {\r\n data.id = partAdBanner.value.id as any;\r\n } else {\r\n data.key = `part_${props.partId}`\r\n data.desc = `${props.title}的Banner`\r\n }\r\n return data\r\n})\r\n\r\n\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n//加完成则刷新\r\nadDefineForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async (partId: any) => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", `part_${partId}`);\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data[0];\r\n if (partAdBanner.value?.width && partAdBanner.value?.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async () => {\r\n await Dialoger.dataFormDialog({\r\n title:\"设置素材显示尺寸\",\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value?.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.partId, id => {\r\n loadPartAdDefineData(id)\r\n }, { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDM,UAAA,YAAY,IAAI,gBAAgB,EAAE,MAAM,aAAa,YAAY,OAAO;AAE9E,UAAM,cAAc;AACpB,UAAM,QAAQ;AAER,UAAA,eAAe,IAAgB,IAAI;AACnC,UAAA,UAAU,IAAI,IAAI;AAClB,UAAA,gBAAgB,SAA4B,IAAI,kBAAkB,EAAE,SAAS,YAAY,KAAK,gBAAiB,CAAA,CAAC;AACtH,UAAM,eAAe,SAA2B,IAAI,iBAAkB,CAAA;AAGtE,kBAAc,kBAAkB,GAAG,OAAO,EAAE,WAAW;AACrD,UAAI,aAAa,OAAO;AACjB,aAAA,aAAa,aAAa,MAAM;AAAA,MAAA,OAElC;AACC,YAAA;AAEF,gBAAM,iBAAiB,YAAY,KAAK,gBAAgB,MAAM,GAAG;AAE3D,gBAAA,SAAS,MAAM,UAAU,IAAI,EAAE,KAAK,QAAQ,MAAM,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,WAAW,OAAO,eAAe,CAAC,GAAG,QAAQ,eAAe,CAAC,EAAG,CAAA;AAElJ,cAAA,OAAO,KAAK,QAAQ,KAAK;AAC3B,yBAAa,QAAQ,EAAE,IAAI,OAAO,KAAK;AAClC,iBAAA,aAAa,OAAO,KAAK;AAAA,UAChC;AAAA,iBAEO,OAAO;AACd,mBAAS,MAAM,EAAE,SAAS,QAAS,CAAA;AAAA,QACrC;AAAA,MACF;AAAA,IAAA,CAED;AAGY,iBAAA,mBAAoB,CAAC,SAAS;AACzC,UAAI,aAAa,OAAO;AACjB,aAAA,KAAK,aAAa,MAAM;AAAA,MAAA,OACxB;AACA,aAAA,MAAM,QAAQ,MAAM,MAAM;AAC1B,aAAA,OAAO,GAAG,MAAM,KAAK;AAAA,MAC5B;AACO,aAAA;AAAA,IAAA;AAMK,kBAAA,eAAe,GAAG,MAAM;AACpC,2BAAqB,MAAM,MAAM;AAAA,IAAA,CAClC;AAEY,iBAAA,eAAe,GAAG,MAAM;AACnC,2BAAqB,MAAM,MAAM;AAAA,IAAA,CAClC;AAGK,UAAA,uBAAuB,OAAO,WAAgB;;AAE9C,UAAA;AAEF,gBAAQ,QAAQ;AACV,cAAA,QAAQ,IAAI;AAClB,cAAM,aAAa,OAAO,KAAK,QAAQ,MAAM,EAAE;AAElC,qBAAA,SAAS,MAAM,UAAU,MAAM;AAAA,UAC1C,MAAM;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,WAAW;AAAA,UACb;AAAA,QACD,CAAA,GAAG,KAAK,KAAK,CAAC;AACf,cAAI,kBAAa,UAAb,mBAAoB,YAAS,kBAAa,UAAb,mBAAoB,QAAO;AAC5C,wBAAA,cAAc,GAAG,aAAa,MAAM,KAAK,IAAI,aAAa,MAAM,MAAM,EAAE;AAAA,QACxF;AAAA,eAEO,GAAG;AACV,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGI,UAAA,sBAAsB,OAAO,OAAY;AAC7C,YAAM,SAAS,eAAe;AAAA,QAC5B,UAAU;AAAA,QACV,OAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAGH,UAAM,qBAAqB,YAAY;;AACrC,YAAM,SAAS,eAAe;AAAA,QAC5B,OAAM;AAAA,QACN,UAAU;AAAA,QACV,QAAO,kBAAa,UAAb,mBAAoB;AAAA,MAAA,CAC5B;AACY,mBAAA,UAAU,UAAU,EAAG,UAAU;AACjC,mBAAA,UAAU,KAAK,EAAG,UAAU;AAC5B,mBAAA,UAAU,MAAM,EAAG,UAAU;AAAA,IAAA;AAI5C,cAAU,MAAM;AACR,YAAA,MAAM,MAAM,QAAQ,CAAM,OAAA;AAC9B,6BAAqB,EAAE;AAAA,MAAA,GACtB,EAAE,WAAW,KAAA,CAAM;AAAA,IAAA,CACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"part-banner-edit.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-banner__warp\" ref=\"warpRef\" v-loading=\"loading\" v-if=\"cmsSettings.part.openBanner\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" :height=\"partAdBannerHeight\"\r\n arrow=\"always\" ref=\"carouselRef\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else :image-size=\"80\" style=\"height: 240px;\">\r\n <template #description>\r\n <el-text>暂无轮播素材数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, ref, watch, defineProps, computed, Ref } from \"vue\";\r\nimport { DataViewRequest, Where } from \"@maketribe/request\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, ArrowDown, Delete, Plus } from \"@element-plus/icons-vue\"\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\nconst props = defineProps({ partId: { type: String }, title: { type: String } })\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst warpRef: Ref<HTMLElement | undefined> = ref();\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\nconst partAdBannerHeight = computed(() => {\r\n //判断有没有banner属性\r\n let proportion = 0;\r\n console.log(cmsSettings.part.bannerImageSize)\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n let settingHeight = 0\r\n let settingWidth = 0\r\n\r\n //设定的比例\r\n if (!!partAdBanner.value.width && !!partAdBanner.value.height) {\r\n proportion = partAdBanner.value.width / partAdBanner.value.height;\r\n } else {\r\n settingWidth = widthAndHeight[0] as any;\r\n\r\n settingHeight = widthAndHeight[1] as any;\r\n proportion = settingWidth / settingHeight\r\n }\r\n\r\n\r\n //比例是NaN,直接返回默认\r\n if (Number.isNaN(proportion)) {\r\n return \"240px\"\r\n } else {\r\n //通过比例确定高度\r\n return partAdBanner.value.height ? (warpRef.value!.offsetWidth / proportion) + \"px\" : (warpRef.value!.offsetWidth / proportion) + \"px\"\r\n }\r\n})\r\n\r\n\r\n// window.addEventListener(\"resize\", () => {\r\n// const proportion = partAdBanner.value.width / partAdBanner.value.height;\r\n// })\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: `part_${props.partId}`, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n//提交判断是否存在,判断更新还是添加\r\nadDefineForm.formatSubmitData = ((data) => {\r\n if (partAdBanner.value) {\r\n data.id = partAdBanner.value.id as any;\r\n } else {\r\n data.key = `part_${props.partId}`\r\n data.desc = `${props.title}的Banner`\r\n }\r\n return data\r\n})\r\n\r\n\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n//加完成则刷新\r\nadDefineForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async (partId: any) => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", `part_${partId}`);\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data[0];\r\n if (partAdBanner.value?.width && partAdBanner.value?.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n\r\n\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async () => {\r\n await Dialoger.dataFormDialog({\r\n title: \"设置素材显示尺寸\",\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value?.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.partId, id => {\r\n loadPartAdDefineData(id)\r\n }, { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":[],"mappings":"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"}
@@ -205,14 +205,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
205
205
  key: 10,
206
206
  name: "seoDesc"
207
207
  })) : createCommentVNode("", true)
208
- ], 64)) : createCommentVNode("", true),
209
- createVNode(_component_el_divider, { "content-position": "left" }, {
210
- default: withCtx(() => [
211
- createTextVNode("其他配置")
212
- ]),
213
- _: 1
214
- }),
215
- createVNode(unref(MKDataFormItem), { name: "sortNo" })
208
+ ], 64)) : createCommentVNode("", true)
216
209
  ]),
217
210
  _: 1
218
211
  })
@@ -1 +1 @@
1
- {"version":3,"file":"part-info.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-info.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-info\">\r\n <MKDataForm :dataForm=\"partDataForm\" style=\"height: 100%;\">\r\n <MKForm :dataForm=\"partDataForm\">\r\n <div class=\"mk-cms-part-info__body__form\">\r\n <div class=\"mk-cms-part-info__body__form-options\">\r\n <ElScrollbar>\r\n <MKDataFormItem name=\"cmsPartTypeId\" v-if=\"hideHandle('cmsPartTypeId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"parentId\" v-if=\"hideHandle('parentId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"cmsCoverArticleId\" v-if=\"hideHandle('cmsCoverArticleId')\">\r\n </MKDataFormItem>\r\n <MKDataFormItem name=\"title\" v-if=\"hideHandle('title')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"name\" v-if=\"hideHandle('name')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"externalLink\" v-if=\"hideHandle('externalLink')\">\r\n </MKDataFormItem>\r\n <el-row :gutter=\"22\" justify=\"space-between\">\r\n <el-col :span=\"10\" v-if=\"hideHandle('isShowMenu')\">\r\n <MKDataFormItem name=\"isShowMenu\"></MKDataFormItem>\r\n </el-col>\r\n <el-col :span=\"10\" v-if=\"hideHandle('isHome')\">\r\n <MKDataFormItem name=\"isHome\"></MKDataFormItem>\r\n </el-col>\r\n </el-row>\r\n <template v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverRouter')\">路由配置</el-divider>\r\n <MKDataFormItem name=\"coverRouter\" v-if=\"hideHandle('coverRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listRouter\" v-if=\"hideHandle('listRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentRouter\" v-if=\"hideHandle('contentRouter')\"></MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverTemplate')\">模版配置</el-divider>\r\n <MKDataFormItem name=\"coverTemplate\" v-if=\"hideHandle('coverTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listTemplate\" v-if=\"hideHandle('listTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentTemplate\" v-if=\"hideHandle('contentTemplate')\">\r\n </MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('seoKeywords')\">SEO</el-divider>\r\n <MKDataFormItem name=\"seoKeywords\" v-if=\"hideHandle('seoKeywords')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"seoDesc\" v-if=\"hideHandle('seoDesc')\"></MKDataFormItem>\r\n </template>\r\n <el-divider content-position=\"left\">其他配置</el-divider>\r\n <MKDataFormItem name=\"sortNo\"></MKDataFormItem>\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../../components\";\r\nimport { CmsPartForm } from \"../../../dataviews/cms-parts/CmsPartForm\";\r\nimport { computed, reactive, Ref, watch } from \"vue\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\nconst props = defineProps({\r\n part: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n partDataForm: {\r\n type: CmsPartForm,\r\n default: () => {\r\n return new CmsPartForm()\r\n }\r\n }\r\n})\r\n\r\n//监听保存成功事件\r\nprops.partDataForm.submittedEvent.on(() => {\r\n props.partDataForm.editRecord(props.part.id)\r\n})\r\n\r\n/**\r\n * 需要隐藏的行\r\n */\r\nconst hideHandle = (name: string) => {\r\n if (props.partDataForm.data.cmsPartTypeId == 1 && CmsPartForm.outerChainHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 2 && CmsPartForm.contentHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 3 && CmsPartForm.menuHideColumn.includes(name)) {\r\n props.partDataForm.data.isShowMenu = 1;\r\n return false;\r\n } \r\n else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,UAAM,cAAc;AACpB,UAAM,QAAQ;AAgBR,UAAA,aAAa,eAAe,GAAG,MAAM;AACvC,YAAM,aAAa,WAAW,MAAM,KAAK,EAAE;AAAA,IAAA,CAC9C;AAKK,UAAA,aAAa,CAAC,SAAiB;AAC7B,UAAA,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,qBAAqB,SAAS,IAAI,GAAG;AACxF,eAAA;AAAA,MACX,WACS,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,kBAAkB,SAAS,IAAI,GAAG;AAC1F,eAAA;AAAA,MACX,WACS,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,eAAe,SAAS,IAAI,GAAG;AACxF,cAAA,aAAa,KAAK,aAAa;AAC9B,eAAA;AAAA,MAAA,OAEN;AACM,eAAA;AAAA,MACX;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"part-info.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-info.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-info\">\r\n <MKDataForm :dataForm=\"partDataForm\" style=\"height: 100%;\">\r\n <MKForm :dataForm=\"partDataForm\">\r\n <div class=\"mk-cms-part-info__body__form\">\r\n <div class=\"mk-cms-part-info__body__form-options\">\r\n <ElScrollbar>\r\n <MKDataFormItem name=\"cmsPartTypeId\" v-if=\"hideHandle('cmsPartTypeId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"parentId\" v-if=\"hideHandle('parentId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"cmsCoverArticleId\" v-if=\"hideHandle('cmsCoverArticleId')\">\r\n </MKDataFormItem>\r\n <MKDataFormItem name=\"title\" v-if=\"hideHandle('title')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"name\" v-if=\"hideHandle('name')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"externalLink\" v-if=\"hideHandle('externalLink')\">\r\n </MKDataFormItem>\r\n <el-row :gutter=\"22\" justify=\"space-between\">\r\n <el-col :span=\"10\" v-if=\"hideHandle('isShowMenu')\">\r\n <MKDataFormItem name=\"isShowMenu\"></MKDataFormItem>\r\n </el-col>\r\n <el-col :span=\"10\" v-if=\"hideHandle('isHome')\">\r\n <MKDataFormItem name=\"isHome\"></MKDataFormItem>\r\n </el-col>\r\n </el-row>\r\n <template v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverRouter')\">路由配置</el-divider>\r\n <MKDataFormItem name=\"coverRouter\" v-if=\"hideHandle('coverRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listRouter\" v-if=\"hideHandle('listRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentRouter\" v-if=\"hideHandle('contentRouter')\"></MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverTemplate')\">模版配置</el-divider>\r\n <MKDataFormItem name=\"coverTemplate\" v-if=\"hideHandle('coverTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listTemplate\" v-if=\"hideHandle('listTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentTemplate\" v-if=\"hideHandle('contentTemplate')\">\r\n </MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('seoKeywords')\">SEO</el-divider>\r\n <MKDataFormItem name=\"seoKeywords\" v-if=\"hideHandle('seoKeywords')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"seoDesc\" v-if=\"hideHandle('seoDesc')\"></MKDataFormItem>\r\n </template>\r\n \r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../../components\";\r\nimport { CmsPartForm } from \"../../../dataviews/cms-parts/CmsPartForm\";\r\nimport { computed, reactive, Ref, watch } from \"vue\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\nconst props = defineProps({\r\n part: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n partDataForm: {\r\n type: CmsPartForm,\r\n default: () => {\r\n return new CmsPartForm()\r\n }\r\n }\r\n})\r\n\r\n//监听保存成功事件\r\nprops.partDataForm.submittedEvent.on(() => {\r\n props.partDataForm.editRecord(props.part.id)\r\n})\r\n\r\n/**\r\n * 需要隐藏的行\r\n */\r\nconst hideHandle = (name: string) => {\r\n if (props.partDataForm.data.cmsPartTypeId == 1 && CmsPartForm.outerChainHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 2 && CmsPartForm.contentHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 3 && CmsPartForm.menuHideColumn.includes(name)) {\r\n props.partDataForm.data.isShowMenu = 1;\r\n return false;\r\n } \r\n else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,UAAM,cAAc;AACpB,UAAM,QAAQ;AAgBR,UAAA,aAAa,eAAe,GAAG,MAAM;AACvC,YAAM,aAAa,WAAW,MAAM,KAAK,EAAE;AAAA,IAAA,CAC9C;AAKK,UAAA,aAAa,CAAC,SAAiB;AAC7B,UAAA,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,qBAAqB,SAAS,IAAI,GAAG;AACxF,eAAA;AAAA,MACX,WACS,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,kBAAkB,SAAS,IAAI,GAAG;AAC1F,eAAA;AAAA,MACX,WACS,MAAM,aAAa,KAAK,iBAAiB,KAAK,YAAY,eAAe,SAAS,IAAI,GAAG;AACxF,cAAA,aAAa,KAAK,aAAa;AAC9B,eAAA;AAAA,MAAA,OAEN;AACM,eAAA;AAAA,MACX;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -359,7 +359,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
359
359
  default: withCtx(() => [
360
360
  activeTabName.value == "article-list" ? (openBlock(), createBlock(_sfc_main$1, {
361
361
  key: 0,
362
- part: curSelectPartItem.value
362
+ part: curSelectPartItem.value,
363
+ style: { "height": "99%" }
363
364
  }, null, 8, ["part"])) : createCommentVNode("", true)
364
365
  ]),
365
366
  _: 1