@maketribe/ms-app 3.2.11 → 3.2.12

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 (54) hide show
  1. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +37 -2
  2. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +2 -37
  4. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
  5. package/dist/cjs/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
  6. package/dist/cjs/components/business/resource-list/resource-list.vue.js +20 -0
  7. package/dist/cjs/components/business/resource-list/resource-list.vue.js.map +1 -1
  8. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js +0 -19
  9. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  10. package/dist/cjs/index.js +2 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/modules/cms/components/part-tree/index.vue.js +1 -1
  13. package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
  14. package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  15. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -1
  16. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js +69 -0
  17. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
  18. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js +49 -0
  19. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js.map +1 -0
  20. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +36 -106
  21. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  22. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +10 -35
  23. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  24. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +36 -1
  25. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
  26. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +1 -36
  27. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
  28. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
  29. package/dist/esm/components/business/resource-list/resource-list.vue.js +20 -0
  30. package/dist/esm/components/business/resource-list/resource-list.vue.js.map +1 -1
  31. package/dist/esm/components/business/resource-manager/resource-manager.vue.js +1 -20
  32. package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/modules/cms/components/part-tree/index.vue.js +1 -1
  36. package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
  37. package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  38. package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -1
  39. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js +70 -1
  40. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
  41. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js +49 -0
  42. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js.map +1 -0
  43. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +38 -108
  44. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  45. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +10 -35
  46. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  47. package/dist/style/index.css +1 -1
  48. package/dist/style/modules/cms/index.css +1 -1
  49. package/dist/style/modules/cms/resource-manager.css +1 -1
  50. package/dist/style/src/modules/cms/resource-manager.scss +10 -5
  51. package/dist/types/modules/cms/dataviews/cms-parts/CmsPartForm.d.ts +20 -0
  52. package/dist/types/modules/cms/dataviews/cms-parts/CmsPartMiniForm.d.ts +4 -0
  53. package/dist/types/modules/cms/dataviews/cms-parts/index.d.ts +1 -0
  54. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, reactive, onMounted, watch, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, createVNode, withCtx, createElementVNode, createTextVNode, unref, createBlock, createCommentVNode, Fragment, resolveDynamicComponent } from "vue";
1
+ import { defineComponent, ref, watch, reactive, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, createVNode, withCtx, createElementVNode, createTextVNode, unref, createBlock, createCommentVNode, Fragment, resolveDynamicComponent } from "vue";
2
2
  import { MKPartTree } from "../../components/part-tree/index.js";
3
3
  import _sfc_main$1 from "./components/article-list.vue.js";
4
4
  import _sfc_main$2 from "./components/part-info.vue.js";
@@ -33,29 +33,13 @@ import "../../../../components/data-model/data-table-pagination/index.js";
33
33
  import "../../../../components/business/verify-dialog/index.js";
34
34
  import "../../../../components/business/resource-list/index.js";
35
35
  import "../../../../components/business/resource-manager/index.js";
36
- import { FormColumn, Dialoger, Messager } from "@maketribe/dm";
37
- import "../../../../core/DataModelDefines.js";
38
- import { MSAppClient } from "../../../../core/MSAppClient.js";
39
- import "../../../ms/dataviews/ms-config/MsConfigTable.js";
40
- import "lodash-es";
41
- import "../../../ms/dataviews/department/DepartmentForm.js";
42
- import "../../../ms/dataviews/department/DepartmentTable.js";
43
- import "../../../ms/dataviews/department/DepartmentTree.js";
44
- import "../../../ms/dataviews/log/operate-log/OperateLogTable.js";
45
- import "../../../ms/dataviews/log/login-log/LoginLogTable.js";
46
- import "../../../ms/dataviews/log/request-log/RequestLogTable.js";
47
- import "../../../ms/dataviews/log/local-log/LocalLogTree.js";
48
- import "../../../ms/components/material-list/index.js";
49
- import "../../../ms/components/markdown-editor/index.js";
50
- import "../../../ms/components/rich-text-editor/index.js";
51
- import "../../../ms/material-upload-context/material-upload-context-options.js";
52
- import "../../../ms/material-upload-context/material-upload-context.js";
53
- import "@element-plus/icons-vue";
54
- import "@codemirror/lang-html";
55
- import { CmsPartTypesTable } from "../../dataviews/cms-part-types/CmsPartTypesTable.js";
36
+ import { Dialoger } from "@maketribe/dm";
56
37
  import { CmsPartForm } from "../../dataviews/cms-parts/CmsPartForm.js";
57
- import { CmsContentManPartForm } from "../../dataviews/cms-parts/CmsContentManPartForm.js";
38
+ import "../../../../core/DataModelDefines.js";
58
39
  import { useRoute, useRouter } from "vue-router";
40
+ import "@maketribe/locale";
41
+ import { CmsContentManPartForm } from "../../dataviews/cms-parts/CmsContentManPartForm.js";
42
+ import { CmsPartMiniForm } from "../../dataviews/cms-parts/CmsPartMiniForm.js";
59
43
  import { usePartExtension } from "../../composables/part-extensions.js";
60
44
  import { useCmsSettings } from "../../cms-settings.js";
61
45
  const _hoisted_1 = { class: "mk-cms-contents__warp" };
@@ -75,13 +59,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
75
59
  setup(__props) {
76
60
  const route = useRoute();
77
61
  const router = useRouter();
78
- const previewHandle = (isList = false) => {
79
- if (isList) {
80
- window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}?pageNo=1`);
81
- } else {
82
- window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}`);
83
- }
84
- };
62
+ const curSelectPartId = ref(route.query.pid);
63
+ watch(() => route.query.pid, (v) => {
64
+ curSelectPartId.value = v;
65
+ }, { immediate: true });
66
+ const partMiniForm = reactive(new CmsPartMiniForm());
85
67
  const CmsSettings = useCmsSettings(true);
86
68
  const showPublish = ref(false);
87
69
  const optionData = ref({
@@ -91,15 +73,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
73
  isPublishAssets: false,
92
74
  isCompulsion: true
93
75
  });
94
- const btnLoading = ref(false);
76
+ const publishLoading = ref(false);
77
+ const loading = ref(false);
95
78
  const activeTabName = ref("article-list");
96
79
  const curSelectPartItem = ref(null);
97
80
  const partTreeRef = ref(null);
98
81
  const partExt = ref();
99
82
  const partDataForm = reactive(new CmsContentManPartForm());
100
- onMounted(() => {
101
- partDataForm.init();
102
- });
103
83
  const selectPartHandle = async (item) => {
104
84
  if (curSelectPartItem.value != item) {
105
85
  curSelectPartItem.value = item;
@@ -122,98 +102,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
122
102
  curSelectPartItem.value = item;
123
103
  activeTabName.value = "part";
124
104
  };
125
- const partForm = reactive(
126
- new class extends CmsPartForm {
127
- async initialize() {
128
- await super.initialize();
129
- this.setColumns([
130
- new FormColumn({
131
- name: "cmsPartTypeId",
132
- label: "栏目类型",
133
- componentInfo: "MKFormDataSelect",
134
- defaultValue: "2",
135
- componentProps: {
136
- dataTable: this.register(
137
- new CmsPartTypesTable()
138
- )
139
- },
140
- required: true
141
- }),
142
- new FormColumn({
143
- name: "name",
144
- label: "栏目名称",
145
- required: true
146
- }),
147
- new FormColumn({
148
- name: "title",
149
- label: "栏目标题",
150
- required: true
151
- })
152
- ]);
153
- }
154
- }()
155
- );
156
105
  const showPartFormHandle = async (item) => {
157
106
  await Dialoger.dataFormDialog({
158
- dataForm: partForm
107
+ dataForm: partMiniForm
159
108
  });
160
109
  if (item.id) {
161
- partForm.addRecord({ parentId: item.id });
110
+ partMiniForm.addRecord({ parentId: item.id });
162
111
  }
163
112
  };
113
+ watch(showPublish, async (v) => {
114
+ if (v) {
115
+ optionData.value.isPublishList = !!curSelectPartItem.value.listTemplate;
116
+ optionData.value.isPublishCover = !!curSelectPartItem.value.coverTemplate;
117
+ optionData.value.isPublishContent = !!curSelectPartItem.value.contentTemplate;
118
+ }
119
+ });
164
120
  watch(activeTabName, async () => {
165
121
  if (activeTabName.value == "part") {
166
122
  curSelectPartItem.value = (await partDataForm.editRecord(curSelectPartItem.value.id)).data.data;
167
123
  }
168
124
  });
169
- partForm.submittedEvent.on(() => {
125
+ partMiniForm.submittedEvent.on(({ response }) => {
170
126
  var _a;
171
- (_a = partTreeRef.value.dataTree) == null ? void 0 : _a.load();
127
+ if (response.data.data) {
128
+ curSelectPartId.value = response.data.data;
129
+ (_a = partTreeRef.value.dataTree) == null ? void 0 : _a.load();
130
+ }
172
131
  });
173
- const loading = ref(false);
174
- const publishAllHandle = async () => {
175
- var _a;
176
- const httpRequest = (_a = MSAppClient.instance) == null ? void 0 : _a.httpRequest;
132
+ const publishAllPartHandle = async () => {
177
133
  try {
178
- const isConfirm = await Dialoger.confirm({ title: "全量发布", message: "是否整站全量发布?", type: "warning" });
179
- if (!isConfirm) {
180
- return;
181
- }
182
134
  loading.value = true;
183
- const response = await httpRequest.post(
184
- `/cms/content/publish/all`
185
- );
186
- if (response.data.code !== 200) {
187
- Messager.error({ message: response.data.msg });
188
- return;
189
- }
190
- Messager.success({ message: "发布成功" });
135
+ await CmsPartForm.publishAll();
191
136
  } finally {
192
137
  loading.value = false;
193
138
  }
194
139
  };
195
140
  const publishPartHandle = async () => {
196
- var _a;
197
- const httpRequest = (_a = MSAppClient.instance) == null ? void 0 : _a.httpRequest;
198
141
  try {
199
- btnLoading.value = true;
200
- const response = await httpRequest.post(
201
- `/cms/content/publish/part`,
202
- {
203
- partIds: [
204
- curSelectPartItem.value.id
205
- ],
206
- ...optionData.value
207
- }
208
- );
209
- if (response.data.code !== 200) {
210
- Messager.error({ message: response.data.msg });
211
- return;
212
- }
142
+ publishLoading.value = true;
143
+ await CmsPartForm.publish(curSelectPartItem.value.id, optionData.value);
213
144
  showPublish.value = false;
214
- Messager.success({ message: "发布成功" });
215
145
  } finally {
216
- btnLoading.value = false;
146
+ publishLoading.value = false;
217
147
  }
218
148
  };
219
149
  const savePartHandle = async () => {
@@ -259,7 +189,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
259
189
  type: "primary",
260
190
  size: "large",
261
191
  text: "",
262
- onClick: publishAllHandle
192
+ onClick: publishAllPartHandle
263
193
  }, {
264
194
  default: withCtx(() => [
265
195
  createVNode(_component_MKSvgIcon, {
@@ -301,7 +231,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
301
231
  onDeleteSuccessfully: deletePartHandle,
302
232
  ref_key: "partTreeRef",
303
233
  ref: partTreeRef,
304
- curSelectId: unref(route).query.pid
234
+ curSelectId: curSelectPartId.value
305
235
  }, null, 8, ["curSelectId"]),
306
236
  curSelectPartItem.value ? (openBlock(), createBlock(_component_el_tabs, {
307
237
  key: 0,
@@ -345,13 +275,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
345
275
  _: 1
346
276
  }, 8, ["disabled"])) : createCommentVNode("", true)
347
277
  ], 64)),
348
- unref(CmsSettings).publish.mode == "static" ? (openBlock(), createBlock(_component_el_dropdown, { key: 2 }, {
278
+ unref(CmsSettings).publish.mode == "static" && curSelectPartItem.value.coverTemplate || curSelectPartItem.value.listTemplate || curSelectPartItem.value.contentTemplate ? (openBlock(), createBlock(_component_el_dropdown, { key: 2 }, {
349
279
  dropdown: withCtx(() => [
350
280
  createVNode(_component_el_dropdown_menu, null, {
351
281
  default: withCtx(() => [
352
282
  unref(CmsSettings).publish.mode == "static" && curSelectPartItem.value.coverTemplate ? (openBlock(), createBlock(_component_el_dropdown_item, {
353
283
  key: 0,
354
- onClick: _cache[2] || (_cache[2] = ($event) => previewHandle())
284
+ onClick: _cache[2] || (_cache[2] = ($event) => unref(CmsPartForm).openPreview(curSelectPartItem.value.id))
355
285
  }, {
356
286
  default: withCtx(() => [
357
287
  createVNode(_component_MKSvgIcon, {
@@ -364,7 +294,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
364
294
  })) : createCommentVNode("", true),
365
295
  curSelectPartItem.value.listTemplate ? (openBlock(), createBlock(_component_el_dropdown_item, {
366
296
  key: 1,
367
- onClick: _cache[3] || (_cache[3] = ($event) => previewHandle(true))
297
+ onClick: _cache[3] || (_cache[3] = ($event) => unref(CmsPartForm).openPreview(curSelectPartItem.value.id, "1"))
368
298
  }, {
369
299
  default: withCtx(() => [
370
300
  createVNode(_component_MKSvgIcon, {
@@ -494,7 +424,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
494
424
  createVNode(_component_el_button, {
495
425
  type: "primary",
496
426
  onClick: publishPartHandle,
497
- loading: btnLoading.value
427
+ loading: publishLoading.value
498
428
  }, {
499
429
  default: withCtx(() => [
500
430
  createTextVNode("确定")
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-contents__warp\" v-loading=\"loading\">\r\n <el-page-header style=\"background-color: #fff; padding: 10px\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular); margin-left: 10px\">\r\n <MKSvgIcon iconClass=\"richtext-outline\" style=\"margin-right: 5px\" />\r\n 内容管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"publishAllHandle\">\r\n <MKSvgIcon iconClass=\"Promotion\" style=\"margin-right: 10px\" />\r\n 整站发布\r\n </el-button>\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showPartFormHandle\">\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-right: 10px\" />\r\n 新增栏目\r\n </el-button>\r\n </el-button-group>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-contents__body\">\r\n <MKPartTree class=\"mk-cms-contents__body__left\" @select=\"selectPartHandle\" @edit=\"editPartHandle\"\r\n @add=\"showPartFormHandle\" @deleteSuccessfully=\"deletePartHandle\" ref=\"partTreeRef\"\r\n :curSelectId=\"(route.query.pid as string)\" />\r\n <el-tabs v-if=\"curSelectPartItem\" v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <div class=\"mk-cms-contents__body__right__action\">\r\n\r\n <template v-if=\"partExt && activeTabName == 'part-ext'\">\r\n <el-button type=\"primary\" v-if=\"partExt.save\" text @click=\"partExt.save()\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 5px\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" text @click=\"savePartHandle()\" :disabled=\"!partDataForm?.isChanged\"\r\n v-if=\"activeTabName != 'article-list'\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 5px\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <el-dropdown v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <span class=\"el-dropdown-link\">\r\n <el-button type=\"primary\" text>\r\n <MKSvgIcon iconClass=\"MoreFilled\" />\r\n </el-button>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item @click=\"previewHandle()\" v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-left: 10px;\" />\r\n 预览封面\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"previewHandle(true)\" v-if=\"curSelectPartItem.listTemplate\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-left: 10px;\" />\r\n 预览列表\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"showPublish = true\">\r\n <MKSvgIcon iconClass=\"Promotion\" style=\"margin-left: 10px;\" />\r\n 发布当前栏目\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n <el-tab-pane label=\"文章列表\" name=\"article-list\" v-if=\"curSelectPartItem.contentTemplate\">\r\n <ArticleList v-if=\"activeTabName == 'article-list'\" :part=\"curSelectPartItem\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\" v-loading=\"partDataForm.loading\">\r\n <PartInfo v-if=\"activeTabName == 'part'\" :part=\"curSelectPartItem\" ref=\"partInfoRef\"\r\n :partDataForm=\"partDataForm\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面内容\" name=\"part-content\" style=\"background-color: #f4f4f4\"\r\n v-if=\"curSelectPartItem.cmsPartTypeId != 1\" v-loading=\"partDataForm.loading\">\r\n <MKDocEditor v-if=\"activeTabName == 'part-content'\" :content=\"partDataForm.data?.content\"\r\n placeholder=\"从这里开始写正文...\" @change=\"EditorChangeHandle\" />\r\n </el-tab-pane>\r\n <el-tab-pane v-if=\"partExt\" label=\"页面扩展设置\" name=\"part-ext\">\r\n <component :is=\"partExt.component\" />\r\n </el-tab-pane>\r\n \r\n </el-tabs>\r\n <el-empty v-else description=\"请选择栏目\" style=\"width: 100%\" />\r\n </div>\r\n <el-dialog v-model=\"showPublish\" title=\"栏目发布\" width=\"475px\" :append-to-body=\"false\">\r\n <div class=\"mk-cms-contents__publish\">\r\n <div><span>是否发布列表:</span> <el-switch v-model=\"optionData.isPublishList\"\r\n :disabled=\"!curSelectPartItem.listTemplate\" /></div>\r\n <div><span>是否发布封面:</span> <el-switch v-model=\"optionData.isPublishCover\"\r\n :disabled=\"!curSelectPartItem.coverTemplate\" /></div>\r\n <div><span>是否发布内容:</span> <el-switch v-model=\"optionData.isPublishContent\"\r\n :disabled=\"!curSelectPartItem.contentTemplate\" /></div>\r\n <div><span>是否发布资源:</span> <el-switch v-model=\"optionData.isPublishAssets\" /></div>\r\n <div><span>是否强制发布:</span> <el-switch v-model=\"optionData.isCompulsion\" /></div>\r\n </div>\r\n <template #footer>\r\n <el-button @click=\"showPublish = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"publishPartHandle\" :loading=\"btnLoading\">确定</el-button>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\" >\r\nimport { MKPartTree } from \"../../components\";\r\nimport ArticleList from \"./components/article-list.vue\";\r\nimport PartInfo from \"./components/part-info.vue\";\r\nimport { MKDocEditor } from \"../../../../components\";\r\nimport { reactive, ref, onMounted, watch } from \"vue\";\r\nimport { Dialoger, FormColumn, Messager } from \"@maketribe/dm\";\r\nimport { CmsContentManPartForm, CmsPartForm, CmsPartTypesTable } from \"../../dataviews\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { MSAppClient } from \"../../../../core\";\r\nimport { usePartExtension, type PartExtension } from \"../../composables/part-extensions\"\r\nimport { ElSwitch } from \"element-plus\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n//路由 \r\nconst route = useRoute();\r\nconst router = useRouter();\r\n//预览\r\nconst previewHandle = (isList = false) => {\r\n if (isList) {\r\n window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}?pageNo=1`)\r\n } else {\r\n window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}`)\r\n }\r\n}\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\n//发布栏目时的配置\r\nconst showPublish = ref(false)\r\n\r\n//发布配置项\r\nconst optionData = ref({\r\n isPublishList: false,\r\n isPublishCover: false,\r\n isPublishContent: false,\r\n isPublishAssets: false,\r\n isCompulsion: true\r\n});\r\n//发布弹窗的按钮\r\nconst btnLoading = ref(false);\r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"article-list\");\r\n\r\n// 当前选中的菜单\r\nconst curSelectPartItem = ref(null as any);\r\n\r\n// 栏目树ref\r\nconst partTreeRef = ref(null);\r\n\r\n//栏目扩展\r\nconst partExt = ref<PartExtension>();\r\n\r\n//栏目数据\r\nconst partDataForm = reactive(new CmsContentManPartForm()) as CmsContentManPartForm;\r\n\r\n// 挂载的时候初始化下\r\nonMounted(() => {\r\n // 需要走一下初始化\r\n partDataForm.init();\r\n})\r\n\r\n// 选择栏目\r\nconst selectPartHandle = async (item: any) => {\r\n\r\n if (curSelectPartItem.value != item) {\r\n\r\n curSelectPartItem.value = item;\r\n\r\n if (!curSelectPartItem.value.contentTemplate) {\r\n activeTabName.value = \"part\";\r\n }\r\n else{\r\n activeTabName.value = \"article-list\";\r\n }\r\n\r\n partDataForm.editRecord(curSelectPartItem.value.id)\r\n\r\n router.replace({ name: 'cms/contents', query: { pid: curSelectPartItem.value.id } } as any)\r\n partExt.value = usePartExtension(curSelectPartItem.value.id);\r\n }\r\n};\r\n//删除栏目\r\nconst deletePartHandle = (item: any) => {\r\n if (item.id == curSelectPartItem.value.id) {\r\n curSelectPartItem.value = null;\r\n }\r\n};\r\n//编辑栏目\r\nconst editPartHandle = (item: any) => {\r\n curSelectPartItem.value = item;\r\n activeTabName.value = \"part\";\r\n};\r\n\r\n//栏目表单\r\nconst partForm = reactive(\r\n new (class extends CmsPartForm {\r\n protected async initialize() {\r\n await super.initialize();\r\n this.setColumns([\r\n new FormColumn({\r\n name: \"cmsPartTypeId\",\r\n label: \"栏目类型\",\r\n componentInfo: \"MKFormDataSelect\",\r\n defaultValue: \"2\",\r\n componentProps: {\r\n dataTable: this.register(\r\n new CmsPartTypesTable()\r\n ) as CmsPartTypesTable,\r\n },\r\n required: true,\r\n }),\r\n new FormColumn({\r\n name: \"name\",\r\n label: \"栏目名称\",\r\n required: true,\r\n }),\r\n new FormColumn({\r\n name: \"title\",\r\n label: \"栏目标题\",\r\n required: true,\r\n }),\r\n ]);\r\n }\r\n })()\r\n);\r\n/**\r\n * 显示添加栏目表单\r\n */\r\nconst showPartFormHandle = async (item?: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: partForm as CmsContentManPartForm,\r\n });\r\n\r\n if (item.id) {\r\n partForm.addRecord({ parentId: item.id });\r\n }\r\n};\r\n\r\nwatch(activeTabName, async () => {\r\n if (activeTabName.value == \"part\") {\r\n curSelectPartItem.value = (await partDataForm.editRecord(curSelectPartItem.value.id)).data.data\r\n }\r\n})\r\n\r\n//监听表单完成事件\r\npartForm.submittedEvent.on(() => {\r\n (partTreeRef.value! as any).dataTree?.load();\r\n});\r\n\r\nconst loading = ref(false)\r\n\r\n// 整站发布\r\nconst publishAllHandle = async () => {\r\n\r\n const httpRequest = MSAppClient.instance?.httpRequest!;\r\n\r\n try {\r\n const isConfirm = await Dialoger.confirm({ title: \"全量发布\", message: \"是否整站全量发布?\", type: \"warning\" })\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n loading.value = true\r\n\r\n const response = await httpRequest.post(\r\n `/cms/content/publish/all`\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n Messager.success({ message: \"发布成功\" });\r\n\r\n } finally {\r\n loading.value = false\r\n }\r\n}\r\n\r\n//栏目发布\r\nconst publishPartHandle = async () => {\r\n const httpRequest = MSAppClient.instance?.httpRequest!;\r\n try {\r\n btnLoading.value = true\r\n\r\n const response = await httpRequest.post(\r\n `/cms/content/publish/part`, {\r\n partIds: [\r\n curSelectPartItem.value.id\r\n ],\r\n ...optionData.value\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n showPublish.value = false;\r\n\r\n Messager.success({ message: \"发布成功\" });\r\n\r\n } finally {\r\n btnLoading.value = false\r\n }\r\n}\r\n\r\n/**\r\n * 保存栏目信息\r\n */\r\nconst savePartHandle = async () => {\r\n curSelectPartItem.value = partDataForm.data;\r\n await partDataForm.submit();\r\n}\r\n\r\n/**\r\n * 更新编辑器内容\r\n * @param v 内容\r\n */\r\nconst EditorChangeHandle = (v: any) => {\r\n partDataForm.data.content = v\r\n}\r\n</script>\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-contents__warp\" v-loading=\"loading\">\r\n <el-page-header style=\"background-color: #fff; padding: 10px\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular); margin-left: 10px\">\r\n <MKSvgIcon iconClass=\"richtext-outline\" style=\"margin-right: 5px\" />\r\n 内容管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"publishAllPartHandle\">\r\n <MKSvgIcon iconClass=\"Promotion\" style=\"margin-right: 10px\" />\r\n 整站发布\r\n </el-button>\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showPartFormHandle\">\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-right: 10px\" />\r\n 新增栏目\r\n </el-button>\r\n </el-button-group>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-contents__body\">\r\n <MKPartTree class=\"mk-cms-contents__body__left\" @select=\"selectPartHandle\" @edit=\"editPartHandle\"\r\n @add=\"showPartFormHandle\" @deleteSuccessfully=\"deletePartHandle\" ref=\"partTreeRef\"\r\n :curSelectId=\"curSelectPartId\" />\r\n <el-tabs v-if=\"curSelectPartItem\" v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <div class=\"mk-cms-contents__body__right__action\">\r\n\r\n <template v-if=\"partExt && activeTabName == 'part-ext'\">\r\n <el-button type=\"primary\" v-if=\"partExt.save\" text @click=\"partExt.save()\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 5px\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" text @click=\"savePartHandle()\" :disabled=\"!partDataForm?.isChanged\"\r\n v-if=\"activeTabName != 'article-list'\">\r\n <MKSvgIcon iconClass=\"save\" style=\"margin-right: 5px\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <el-dropdown v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate || curSelectPartItem.listTemplate || curSelectPartItem.contentTemplate\">\r\n <span class=\"el-dropdown-link\">\r\n <el-button type=\"primary\" text>\r\n <MKSvgIcon iconClass=\"MoreFilled\" />\r\n </el-button>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item @click=\"CmsPartForm.openPreview(curSelectPartItem.id)\" v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-left: 10px;\" />\r\n 预览封面\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"CmsPartForm.openPreview(curSelectPartItem.id,'1')\" v-if=\"curSelectPartItem.listTemplate\">\r\n <MKSvgIcon iconClass=\"View\" style=\"margin-left: 10px;\" />\r\n 预览列表\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"showPublish = true\">\r\n <MKSvgIcon iconClass=\"Promotion\" style=\"margin-left: 10px;\" />\r\n 发布当前栏目\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n <el-tab-pane label=\"文章列表\" name=\"article-list\" v-if=\"curSelectPartItem.contentTemplate\">\r\n <ArticleList v-if=\"activeTabName == 'article-list'\" :part=\"curSelectPartItem\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\" v-loading=\"partDataForm.loading\">\r\n <PartInfo v-if=\"activeTabName == 'part'\" :part=\"curSelectPartItem\" ref=\"partInfoRef\"\r\n :partDataForm=\"partDataForm\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面内容\" name=\"part-content\" style=\"background-color: #f4f4f4\"\r\n v-if=\"curSelectPartItem.cmsPartTypeId != 1\" v-loading=\"partDataForm.loading\">\r\n <MKDocEditor v-if=\"activeTabName == 'part-content'\" :content=\"partDataForm.data?.content\"\r\n placeholder=\"从这里开始写正文...\" @change=\"EditorChangeHandle\" />\r\n </el-tab-pane>\r\n <el-tab-pane v-if=\"partExt\" label=\"页面扩展设置\" name=\"part-ext\">\r\n <component :is=\"partExt.component\" />\r\n </el-tab-pane>\r\n \r\n </el-tabs>\r\n <el-empty v-else description=\"请选择栏目\" style=\"width: 100%\" />\r\n </div>\r\n <el-dialog v-model=\"showPublish\" title=\"栏目发布\" width=\"475px\" :append-to-body=\"false\">\r\n <div class=\"mk-cms-contents__publish\">\r\n <div><span>是否发布列表:</span> <el-switch v-model=\"optionData.isPublishList\"\r\n :disabled=\"!curSelectPartItem.listTemplate\" /></div>\r\n <div><span>是否发布封面:</span> <el-switch v-model=\"optionData.isPublishCover\"\r\n :disabled=\"!curSelectPartItem.coverTemplate\" /></div>\r\n <div><span>是否发布内容:</span> <el-switch v-model=\"optionData.isPublishContent\"\r\n :disabled=\"!curSelectPartItem.contentTemplate\" /></div>\r\n <div><span>是否发布资源:</span> <el-switch v-model=\"optionData.isPublishAssets\" /></div>\r\n <div><span>是否强制发布:</span> <el-switch v-model=\"optionData.isCompulsion\" /></div>\r\n </div>\r\n <template #footer>\r\n <el-button @click=\"showPublish = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"publishPartHandle\" :loading=\"publishLoading\">确定</el-button>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\" >\r\nimport { MKPartTree } from \"../../components\";\r\nimport ArticleList from \"./components/article-list.vue\";\r\nimport PartInfo from \"./components/part-info.vue\";\r\nimport { MKDocEditor } from \"../../../../components\";\r\nimport { reactive, ref, watch } from \"vue\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsContentManPartForm,CmsPartForm, CmsPartMiniForm } from \"../../dataviews/cms-parts\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { usePartExtension, type PartExtension } from \"../../composables/part-extensions\"\r\nimport { ElSwitch } from \"element-plus\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n//路由 \r\nconst route = useRoute();\r\nconst router = useRouter();\r\n\r\n// 当前选中的栏目id\r\nconst curSelectPartId = ref<string>(route.query.pid as string)\r\nwatch(()=>route.query.pid,(v:any)=>{\r\n curSelectPartId.value = v \r\n},{ immediate:true });\r\n\r\n//栏目Mini表单\r\nconst partMiniForm = reactive<CmsPartMiniForm>(new CmsPartMiniForm());\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\n//发布栏目时的配置\r\nconst showPublish = ref(false)\r\n\r\n//发布配置项\r\nconst optionData = ref({\r\n isPublishList: false,\r\n isPublishCover: false,\r\n isPublishContent: false,\r\n isPublishAssets: false,\r\n isCompulsion: true\r\n});\r\n\r\n//发布加载状态\r\nconst publishLoading = ref(false);\r\n\r\n// 数据加载状态\r\nconst loading = ref(false)\r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"article-list\");\r\n\r\n// 当前选中的菜单\r\nconst curSelectPartItem = ref(null as any);\r\n\r\n// 栏目树ref\r\nconst partTreeRef = ref(null);\r\n\r\n//栏目扩展\r\nconst partExt = ref<PartExtension>();\r\n\r\n//栏目数据\r\nconst partDataForm = reactive(new CmsContentManPartForm()) as CmsContentManPartForm;\r\n\r\n// 选择栏目\r\nconst selectPartHandle = async (item: any) => {\r\n\r\n if (curSelectPartItem.value != item) {\r\n\r\n curSelectPartItem.value = item;\r\n\r\n if (!curSelectPartItem.value.contentTemplate) {\r\n activeTabName.value = \"part\";\r\n }\r\n else{\r\n activeTabName.value = \"article-list\";\r\n }\r\n\r\n partDataForm.editRecord(curSelectPartItem.value.id)\r\n router.replace({ name: 'cms/contents', query: { pid: curSelectPartItem.value.id } } as any)\r\n partExt.value = usePartExtension(curSelectPartItem.value.id);\r\n }\r\n};\r\n\r\n//删除栏目\r\nconst deletePartHandle = (item: any) => {\r\n if (item.id == curSelectPartItem.value.id) {\r\n curSelectPartItem.value = null;\r\n }\r\n};\r\n\r\n//编辑栏目\r\nconst editPartHandle = (item: any) => {\r\n curSelectPartItem.value = item;\r\n activeTabName.value = \"part\";\r\n};\r\n\r\n/**\r\n * 显示添加栏目表单\r\n */\r\nconst showPartFormHandle = async (item?: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: partMiniForm as CmsContentManPartForm,\r\n });\r\n\r\n if (item.id) {\r\n partMiniForm.addRecord({ parentId: item.id });\r\n }\r\n\r\n};\r\n\r\nwatch(showPublish, async (v) => {\r\n if(v){\r\n optionData.value.isPublishList = !!curSelectPartItem.value.listTemplate\r\n optionData.value.isPublishCover = !!curSelectPartItem.value.coverTemplate\r\n optionData.value.isPublishContent = !!curSelectPartItem.value.contentTemplate\r\n }\r\n})\r\n\r\nwatch(activeTabName, async () => {\r\n if (activeTabName.value == \"part\") {\r\n curSelectPartItem.value = (await partDataForm.editRecord(curSelectPartItem.value.id)).data.data\r\n }\r\n})\r\n\r\n//监听表单完成事件\r\npartMiniForm.submittedEvent.on(({ response }:any) => {\r\n if(response.data.data){\r\n // 重置选中\r\n curSelectPartId.value = response.data.data;\r\n // 刷新完成直接选中\r\n (partTreeRef.value! as any).dataTree?.load();\r\n }\r\n \r\n});\r\n\r\n//栏目发布\r\nconst publishAllPartHandle = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n \r\n await CmsPartForm.publishAll()\r\n } \r\n finally {\r\n loading.value = false;\r\n }\r\n\r\n}\r\nconst publishPartHandle = async () => {\r\n \r\n try {\r\n\r\n publishLoading.value = true\r\n\r\n await CmsPartForm.publish(curSelectPartItem.value.id,optionData.value);\r\n\r\n showPublish.value = false;\r\n\r\n } finally {\r\n publishLoading.value = false\r\n }\r\n}\r\n\r\n/**\r\n * 保存栏目信息\r\n */\r\nconst savePartHandle = async () => {\r\n curSelectPartItem.value = partDataForm.data;\r\n await partDataForm.submit();\r\n}\r\n\r\n/**\r\n * 更新编辑器内容\r\n * @param v 内容\r\n */\r\nconst EditorChangeHandle = (v: any) => {\r\n partDataForm.data.content = v\r\n}\r\n</script>\r\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,7 @@
1
1
  import { defineComponent, reactive, resolveComponent, openBlock, createBlock, unref, withCtx, createVNode, createTextVNode } from "vue";
2
- import { Dialoger, Messager } from "@maketribe/dm";
3
- import "element-plus";
4
- import "@maketribe/utils";
5
- import "../../../../core/DataModelDefines.js";
6
- import { MSAppClient } from "../../../../core/MSAppClient.js";
7
- import "@maketribe/request";
8
2
  import "../../../../components/abstract/abstract-select/abstract-select.js";
9
3
  import "../../../../components/abstract/abstract-select/abstract-select-options.js";
4
+ import "element-plus";
10
5
  import "../../../../components/basic/svg-icon/index.js";
11
6
  import "../../../../components/basic/button/button-options.js";
12
7
  import "../../../../components/basic/config-provider/index.js";
@@ -20,6 +15,8 @@ import { MKPageContainer } from "../../../../components/basic/page-container/ind
20
15
  import "../../../../components/basic/date-picker/index.js";
21
16
  import "../../../../components/basic/icon-select/index.js";
22
17
  import "../../../../components/basic/upload-file/upload-file.js";
18
+ import "@maketribe/request";
19
+ import "@maketribe/utils";
23
20
  import "../../../../components/basic/upload-file/context/web-file-upload-context.js";
24
21
  import "../../../../components/basic/upload-file/context/web-file-upload-context-options.js";
25
22
  import "../../../../components/basic/upload-file/ui/upload-image/index.js";
@@ -33,50 +30,28 @@ import "../../../../components/data-model/data-table-pagination/index.js";
33
30
  import "../../../../components/business/verify-dialog/index.js";
34
31
  import "../../../../components/business/resource-list/index.js";
35
32
  import { MKResourceManager } from "../../../../components/business/resource-manager/index.js";
33
+ import "@maketribe/dm";
34
+ import { CmsPartForm } from "../../dataviews/cms-parts/CmsPartForm.js";
35
+ import "../../../../core/DataModelDefines.js";
36
+ import "vue-router";
37
+ import "@maketribe/locale";
36
38
  import { ResourceManager } from "../../../../components/business/resource-list/ResourceManager.js";
37
39
  const _sfc_main = /* @__PURE__ */ defineComponent({
38
40
  __name: "index",
39
41
  setup(__props) {
40
42
  const resourceManager = reactive(new ResourceManager({ baseURL: "/cms/template/resource" }));
41
43
  const publishAssetsHandle = async () => {
42
- const httpRequest = MSAppClient.instance.httpRequest;
43
44
  try {
44
- const isConfirm = await Dialoger.confirm({
45
- title: "发布资源",
46
- message: "是否发布资源?",
47
- type: "warning"
48
- });
49
- if (!isConfirm) {
50
- return;
51
- }
52
45
  resourceManager.loadingManager.startLoading();
53
- const response = await httpRequest.post(`/cms/content/publish/assets`);
54
- if (response.data.code !== 200) {
55
- Messager.error({ message: response.data.msg });
56
- return;
57
- }
58
- Messager.success({ message: "发布成功" });
46
+ CmsPartForm.publishAssets();
59
47
  } finally {
60
48
  resourceManager.loadingManager.completeLoading();
61
49
  }
62
50
  };
63
51
  const publishAllHandle = async () => {
64
- var _a;
65
- const httpRequest = (_a = MSAppClient.instance) == null ? void 0 : _a.httpRequest;
66
52
  try {
67
- const isConfirm = await Dialoger.confirm({ title: "全量发布", message: "是否整站全量发布?", type: "warning" });
68
- if (!isConfirm) {
69
- return;
70
- }
71
53
  resourceManager.loadingManager.startLoading();
72
- const response = await httpRequest.post(
73
- `/cms/content/publish/all`
74
- );
75
- if (response.data.code !== 200) {
76
- Messager.error({ message: response.data.msg });
77
- return;
78
- }
79
- Messager.success({ message: "发布成功" });
54
+ await CmsPartForm.publishAll();
80
55
  } finally {
81
56
  resourceManager.loadingManager.completeLoading();
82
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-resource/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer>\r\n <MKResourceManager :resourceManager=\"resourceManager\">\r\n <template #tools>\r\n <ElButton type=\"primary\" @click=\"publishAssetsHandle\">发布资产</ElButton>\r\n <ElButton type=\"primary\" @click=\"publishAllHandle\">全站发布</ElButton>\r\n </template>\r\n </MKResourceManager>\r\n </MKPageContainer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { reactive } from \"vue\";\r\nimport { MSAppClient } from \"../../../../core\";\r\nimport { MKPageContainer } from \"../../../../components\";\r\nimport { MKResourceManager, ResourceManager } from \"../../../../components\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\n\r\n// 创建cms模版资源管理器\r\nconst resourceManager = reactive(new ResourceManager({ baseURL: \"/cms/template/resource\" })) as ResourceManager;\r\n\r\n// 资源发布\r\nconst publishAssetsHandle = async () => {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\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) {\r\n return;\r\n }\r\n\r\n resourceManager.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(`/cms/content/publish/assets`);\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 } finally {\r\n resourceManager.loadingManager.completeLoading();\r\n }\r\n}\r\n//全站发布\r\n// 整站发布\r\nconst publishAllHandle = async () => {\r\n\r\n const httpRequest = MSAppClient.instance?.httpRequest!;\r\n\r\n try {\r\n const isConfirm = await Dialoger.confirm({ title: \"全量发布\", message: \"是否整站全量发布?\", type: \"warning\" })\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n resourceManager.loadingManager.startLoading();\r\n\r\n\r\n const response = await httpRequest.post(\r\n `/cms/content/publish/all`\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n Messager.success({ message: \"发布成功\" });\r\n\r\n } finally {\r\n resourceManager.loadingManager.completeLoading();\r\n }\r\n}\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,UAAA,kBAAkB,SAAS,IAAI,gBAAgB,EAAE,SAAS,yBAA0B,CAAA,CAAC;AAG3F,UAAM,sBAAsB,YAAY;AAChC,YAAA,cAAc,YAAY,SAAU;AAEtC,UAAA;AACI,cAAA,YAAY,MAAM,SAAS,QAAQ;AAAA,UACvC,OAAO;AAAA,UACP,SAAS;AAAA,UACT,MAAM;AAAA,QAAA,CACP;AAED,YAAI,CAAC,WAAW;AACd;AAAA,QACF;AAEA,wBAAgB,eAAe;AAE/B,cAAM,WAAW,MAAM,YAAY,KAAK,6BAA6B;AAEjE,YAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,mBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,QACF;AAEA,iBAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,MAAA,UACpC;AACA,wBAAgB,eAAe;MACjC;AAAA,IAAA;AAIF,UAAM,mBAAmB,YAAY;;AAE7B,YAAA,eAAc,iBAAY,aAAZ,mBAAsB;AAEtC,UAAA;AACI,cAAA,YAAY,MAAM,SAAS,QAAQ,EAAE,OAAO,QAAQ,SAAS,aAAa,MAAM,UAAW,CAAA;AAEjG,YAAI,CAAC,WAAW;AACd;AAAA,QACF;AACA,wBAAgB,eAAe;AAGzB,cAAA,WAAW,MAAM,YAAY;AAAA,UACjC;AAAA,QAAA;AAGE,YAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,mBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,QACF;AAEA,iBAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,MAAA,UAEpC;AACA,wBAAgB,eAAe;MACjC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-resource/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer>\r\n <MKResourceManager :resourceManager=\"resourceManager\">\r\n <template #tools>\r\n <ElButton type=\"primary\" @click=\"publishAssetsHandle\">发布资产</ElButton>\r\n <ElButton type=\"primary\" @click=\"publishAllHandle\">全站发布</ElButton>\r\n </template>\r\n </MKResourceManager>\r\n </MKPageContainer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { reactive } from \"vue\";\r\nimport { MSAppClient } from \"../../../../core\";\r\nimport { MKPageContainer } from \"../../../../components\";\r\nimport { MKResourceManager, ResourceManager } from \"../../../../components\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsPartForm } from \"../../dataviews/cms-parts\";\r\n\r\n// 创建cms模版资源管理器\r\nconst resourceManager = reactive(new ResourceManager({ baseURL: \"/cms/template/resource\" })) as ResourceManager;\r\n\r\n// 资源发布\r\nconst publishAssetsHandle = async () => {\r\n\r\n try {\r\n \r\n resourceManager.loadingManager.startLoading();\r\n \r\n CmsPartForm.publishAssets();\r\n\r\n } \r\n finally {\r\n resourceManager.loadingManager.completeLoading();\r\n }\r\n}\r\n//全站发布\r\n// 整站发布\r\nconst publishAllHandle = async () => {\r\n\r\n \r\n\r\n try {\r\n\r\n resourceManager.loadingManager.startLoading();\r\n\r\n await CmsPartForm.publishAll()\r\n\r\n\r\n } finally {\r\n resourceManager.loadingManager.completeLoading();\r\n }\r\n}\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBM,UAAA,kBAAkB,SAAS,IAAI,gBAAgB,EAAE,SAAS,yBAA0B,CAAA,CAAC;AAG3F,UAAM,sBAAsB,YAAY;AAElC,UAAA;AAEJ,wBAAgB,eAAe;AAE/B,oBAAY,cAAc;AAAA,MAAA,UAG1B;AACE,wBAAgB,eAAe;MACjC;AAAA,IAAA;AAIF,UAAM,mBAAmB,YAAY;AAI/B,UAAA;AAEF,wBAAgB,eAAe;AAE/B,cAAM,YAAY;MAAW,UAG7B;AACA,wBAAgB,eAAe;MACjC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}