@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
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const CmsPartForm = require("./CmsPartForm.js");
4
+ const dm = require("@maketribe/dm");
5
+ const CmsPartTypesTable = require("../cms-part-types/CmsPartTypesTable.js");
6
+ class CmsPartMiniForm extends CmsPartForm.CmsPartForm {
7
+ async initialize() {
8
+ await super.initialize();
9
+ this.setColumns([
10
+ new dm.FormColumn({
11
+ name: "cmsPartTypeId",
12
+ label: "栏目类型",
13
+ componentInfo: "MKFormDataSelect",
14
+ defaultValue: "2",
15
+ componentProps: {
16
+ dataTable: this.register(
17
+ new CmsPartTypesTable.CmsPartTypesTable()
18
+ )
19
+ },
20
+ required: true
21
+ }),
22
+ new dm.FormColumn({
23
+ name: "name",
24
+ label: "栏目名称",
25
+ required: true
26
+ }),
27
+ new dm.FormColumn({
28
+ name: "title",
29
+ label: "栏目标题",
30
+ required: true
31
+ }),
32
+ new dm.FormColumn({
33
+ name: "isShowMenu",
34
+ label: "是否在菜单",
35
+ defaultValue: 1,
36
+ componentInfo: "MKFormRadioBox",
37
+ componentProps: {
38
+ options: [
39
+ { label: "是", value: 1 },
40
+ { label: "否", value: 0 }
41
+ ]
42
+ },
43
+ required: true
44
+ })
45
+ ]);
46
+ }
47
+ }
48
+ exports.CmsPartMiniForm = CmsPartMiniForm;
49
+ //# sourceMappingURL=CmsPartMiniForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CmsPartMiniForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-parts/CmsPartMiniForm.ts"],"sourcesContent":["import { CmsPartForm } from \"./CmsPartForm\"\r\nimport { CmsPartTypesTable } from \"../cms-part-types\"\r\nimport { FormColumn } from \"@maketribe/dm\";\r\n\r\nexport class CmsPartMiniForm 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 new FormColumn({\r\n name: \"isShowMenu\",\r\n label: \"是否在菜单\",\r\n defaultValue: 1,\r\n componentInfo: \"MKFormRadioBox\",\r\n componentProps: {\r\n options: [\r\n { label: \"是\", value: 1 },\r\n { label: \"否\", value: 0 },\r\n ],\r\n },\r\n required: true,\r\n })\r\n ]);\r\n }\r\n}\r\n"],"names":["CmsPartForm","FormColumn","CmsPartTypesTable"],"mappings":";;;;;AAIO,MAAM,wBAAwBA,YAAAA,YAAY;AAAA,EAC/C,MAAgB,aAAa;AAC3B,UAAM,MAAM;AACZ,SAAK,WAAW;AAAA,MACd,IAAIC,cAAW;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,eAAe;AAAA,QACf,cAAc;AAAA,QACd,gBAAgB;AAAA,UACd,WAAW,KAAK;AAAA,YACd,IAAIC,oCAAkB;AAAA,UACxB;AAAA,QACF;AAAA,QACA,UAAU;AAAA,MAAA,CACX;AAAA,MACD,IAAID,cAAW;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACX;AAAA,MACD,IAAIA,cAAW;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACX;AAAA,MACD,IAAIA,cAAW;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,eAAe;AAAA,QACf,gBAAgB;AAAA,UACd,SAAS;AAAA,YACP,EAAE,OAAO,KAAK,OAAO,EAAE;AAAA,YACvB,EAAE,OAAO,KAAK,OAAO,EAAE;AAAA,UACzB;AAAA,QACF;AAAA,QACA,UAAU;AAAA,MAAA,CACX;AAAA,IAAA,CACF;AAAA,EACH;AACF;;"}
@@ -35,28 +35,12 @@ require("../../../../components/business/verify-dialog/index.js");
35
35
  require("../../../../components/business/resource-list/index.js");
36
36
  require("../../../../components/business/resource-manager/index.js");
37
37
  const dm = require("@maketribe/dm");
38
- require("../../../../core/DataModelDefines.js");
39
- const MSAppClient = require("../../../../core/MSAppClient.js");
40
- require("../../../ms/dataviews/ms-config/MsConfigTable.js");
41
- require("lodash-es");
42
- require("../../../ms/dataviews/department/DepartmentForm.js");
43
- require("../../../ms/dataviews/department/DepartmentTable.js");
44
- require("../../../ms/dataviews/department/DepartmentTree.js");
45
- require("../../../ms/dataviews/log/operate-log/OperateLogTable.js");
46
- require("../../../ms/dataviews/log/login-log/LoginLogTable.js");
47
- require("../../../ms/dataviews/log/request-log/RequestLogTable.js");
48
- require("../../../ms/dataviews/log/local-log/LocalLogTree.js");
49
- require("../../../ms/components/material-list/index.js");
50
- require("../../../ms/components/markdown-editor/index.js");
51
- require("../../../ms/components/rich-text-editor/index.js");
52
- require("../../../ms/material-upload-context/material-upload-context-options.js");
53
- require("../../../ms/material-upload-context/material-upload-context.js");
54
- require("@element-plus/icons-vue");
55
- require("@codemirror/lang-html");
56
- const CmsPartTypesTable = require("../../dataviews/cms-part-types/CmsPartTypesTable.js");
57
38
  const CmsPartForm = require("../../dataviews/cms-parts/CmsPartForm.js");
58
- const CmsContentManPartForm = require("../../dataviews/cms-parts/CmsContentManPartForm.js");
39
+ require("../../../../core/DataModelDefines.js");
59
40
  const vueRouter = require("vue-router");
41
+ require("@maketribe/locale");
42
+ const CmsContentManPartForm = require("../../dataviews/cms-parts/CmsContentManPartForm.js");
43
+ const CmsPartMiniForm = require("../../dataviews/cms-parts/CmsPartMiniForm.js");
60
44
  const partExtensions = require("../../composables/part-extensions.js");
61
45
  const cmsSettings = require("../../cms-settings.js");
62
46
  const _hoisted_1 = { class: "mk-cms-contents__warp" };
@@ -76,13 +60,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
76
60
  setup(__props) {
77
61
  const route = vueRouter.useRoute();
78
62
  const router = vueRouter.useRouter();
79
- const previewHandle = (isList = false) => {
80
- if (isList) {
81
- window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}?pageNo=1`);
82
- } else {
83
- window.open(`/api/cms/content/preview/part/${curSelectPartItem.value.id}`);
84
- }
85
- };
63
+ const curSelectPartId = vue.ref(route.query.pid);
64
+ vue.watch(() => route.query.pid, (v) => {
65
+ curSelectPartId.value = v;
66
+ }, { immediate: true });
67
+ const partMiniForm = vue.reactive(new CmsPartMiniForm.CmsPartMiniForm());
86
68
  const CmsSettings = cmsSettings.useCmsSettings(true);
87
69
  const showPublish = vue.ref(false);
88
70
  const optionData = vue.ref({
@@ -92,15 +74,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
92
74
  isPublishAssets: false,
93
75
  isCompulsion: true
94
76
  });
95
- const btnLoading = vue.ref(false);
77
+ const publishLoading = vue.ref(false);
78
+ const loading = vue.ref(false);
96
79
  const activeTabName = vue.ref("article-list");
97
80
  const curSelectPartItem = vue.ref(null);
98
81
  const partTreeRef = vue.ref(null);
99
82
  const partExt = vue.ref();
100
83
  const partDataForm = vue.reactive(new CmsContentManPartForm.CmsContentManPartForm());
101
- vue.onMounted(() => {
102
- partDataForm.init();
103
- });
104
84
  const selectPartHandle = async (item) => {
105
85
  if (curSelectPartItem.value != item) {
106
86
  curSelectPartItem.value = item;
@@ -123,98 +103,48 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
123
103
  curSelectPartItem.value = item;
124
104
  activeTabName.value = "part";
125
105
  };
126
- const partForm = vue.reactive(
127
- new class extends CmsPartForm.CmsPartForm {
128
- async initialize() {
129
- await super.initialize();
130
- this.setColumns([
131
- new dm.FormColumn({
132
- name: "cmsPartTypeId",
133
- label: "栏目类型",
134
- componentInfo: "MKFormDataSelect",
135
- defaultValue: "2",
136
- componentProps: {
137
- dataTable: this.register(
138
- new CmsPartTypesTable.CmsPartTypesTable()
139
- )
140
- },
141
- required: true
142
- }),
143
- new dm.FormColumn({
144
- name: "name",
145
- label: "栏目名称",
146
- required: true
147
- }),
148
- new dm.FormColumn({
149
- name: "title",
150
- label: "栏目标题",
151
- required: true
152
- })
153
- ]);
154
- }
155
- }()
156
- );
157
106
  const showPartFormHandle = async (item) => {
158
107
  await dm.Dialoger.dataFormDialog({
159
- dataForm: partForm
108
+ dataForm: partMiniForm
160
109
  });
161
110
  if (item.id) {
162
- partForm.addRecord({ parentId: item.id });
111
+ partMiniForm.addRecord({ parentId: item.id });
163
112
  }
164
113
  };
114
+ vue.watch(showPublish, async (v) => {
115
+ if (v) {
116
+ optionData.value.isPublishList = !!curSelectPartItem.value.listTemplate;
117
+ optionData.value.isPublishCover = !!curSelectPartItem.value.coverTemplate;
118
+ optionData.value.isPublishContent = !!curSelectPartItem.value.contentTemplate;
119
+ }
120
+ });
165
121
  vue.watch(activeTabName, async () => {
166
122
  if (activeTabName.value == "part") {
167
123
  curSelectPartItem.value = (await partDataForm.editRecord(curSelectPartItem.value.id)).data.data;
168
124
  }
169
125
  });
170
- partForm.submittedEvent.on(() => {
126
+ partMiniForm.submittedEvent.on(({ response }) => {
171
127
  var _a;
172
- (_a = partTreeRef.value.dataTree) == null ? void 0 : _a.load();
128
+ if (response.data.data) {
129
+ curSelectPartId.value = response.data.data;
130
+ (_a = partTreeRef.value.dataTree) == null ? void 0 : _a.load();
131
+ }
173
132
  });
174
- const loading = vue.ref(false);
175
- const publishAllHandle = async () => {
176
- var _a;
177
- const httpRequest = (_a = MSAppClient.MSAppClient.instance) == null ? void 0 : _a.httpRequest;
133
+ const publishAllPartHandle = async () => {
178
134
  try {
179
- const isConfirm = await dm.Dialoger.confirm({ title: "全量发布", message: "是否整站全量发布?", type: "warning" });
180
- if (!isConfirm) {
181
- return;
182
- }
183
135
  loading.value = true;
184
- const response = await httpRequest.post(
185
- `/cms/content/publish/all`
186
- );
187
- if (response.data.code !== 200) {
188
- dm.Messager.error({ message: response.data.msg });
189
- return;
190
- }
191
- dm.Messager.success({ message: "发布成功" });
136
+ await CmsPartForm.CmsPartForm.publishAll();
192
137
  } finally {
193
138
  loading.value = false;
194
139
  }
195
140
  };
196
141
  const publishPartHandle = async () => {
197
- var _a;
198
- const httpRequest = (_a = MSAppClient.MSAppClient.instance) == null ? void 0 : _a.httpRequest;
199
142
  try {
200
- btnLoading.value = true;
201
- const response = await httpRequest.post(
202
- `/cms/content/publish/part`,
203
- {
204
- partIds: [
205
- curSelectPartItem.value.id
206
- ],
207
- ...optionData.value
208
- }
209
- );
210
- if (response.data.code !== 200) {
211
- dm.Messager.error({ message: response.data.msg });
212
- return;
213
- }
143
+ publishLoading.value = true;
144
+ await CmsPartForm.CmsPartForm.publish(curSelectPartItem.value.id, optionData.value);
214
145
  showPublish.value = false;
215
- dm.Messager.success({ message: "发布成功" });
216
146
  } finally {
217
- btnLoading.value = false;
147
+ publishLoading.value = false;
218
148
  }
219
149
  };
220
150
  const savePartHandle = async () => {
@@ -260,7 +190,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
260
190
  type: "primary",
261
191
  size: "large",
262
192
  text: "",
263
- onClick: publishAllHandle
193
+ onClick: publishAllPartHandle
264
194
  }, {
265
195
  default: vue.withCtx(() => [
266
196
  vue.createVNode(_component_MKSvgIcon, {
@@ -302,7 +232,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
302
232
  onDeleteSuccessfully: deletePartHandle,
303
233
  ref_key: "partTreeRef",
304
234
  ref: partTreeRef,
305
- curSelectId: vue.unref(route).query.pid
235
+ curSelectId: curSelectPartId.value
306
236
  }, null, 8, ["curSelectId"]),
307
237
  curSelectPartItem.value ? (vue.openBlock(), vue.createBlock(_component_el_tabs, {
308
238
  key: 0,
@@ -346,13 +276,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
346
276
  _: 1
347
277
  }, 8, ["disabled"])) : vue.createCommentVNode("", true)
348
278
  ], 64)),
349
- vue.unref(CmsSettings).publish.mode == "static" ? (vue.openBlock(), vue.createBlock(_component_el_dropdown, { key: 2 }, {
279
+ vue.unref(CmsSettings).publish.mode == "static" && curSelectPartItem.value.coverTemplate || curSelectPartItem.value.listTemplate || curSelectPartItem.value.contentTemplate ? (vue.openBlock(), vue.createBlock(_component_el_dropdown, { key: 2 }, {
350
280
  dropdown: vue.withCtx(() => [
351
281
  vue.createVNode(_component_el_dropdown_menu, null, {
352
282
  default: vue.withCtx(() => [
353
283
  vue.unref(CmsSettings).publish.mode == "static" && curSelectPartItem.value.coverTemplate ? (vue.openBlock(), vue.createBlock(_component_el_dropdown_item, {
354
284
  key: 0,
355
- onClick: _cache[2] || (_cache[2] = ($event) => previewHandle())
285
+ onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(CmsPartForm.CmsPartForm).openPreview(curSelectPartItem.value.id))
356
286
  }, {
357
287
  default: vue.withCtx(() => [
358
288
  vue.createVNode(_component_MKSvgIcon, {
@@ -365,7 +295,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
365
295
  })) : vue.createCommentVNode("", true),
366
296
  curSelectPartItem.value.listTemplate ? (vue.openBlock(), vue.createBlock(_component_el_dropdown_item, {
367
297
  key: 1,
368
- onClick: _cache[3] || (_cache[3] = ($event) => previewHandle(true))
298
+ onClick: _cache[3] || (_cache[3] = ($event) => vue.unref(CmsPartForm.CmsPartForm).openPreview(curSelectPartItem.value.id, "1"))
369
299
  }, {
370
300
  default: vue.withCtx(() => [
371
301
  vue.createVNode(_component_MKSvgIcon, {
@@ -495,7 +425,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
495
425
  vue.createVNode(_component_el_button, {
496
426
  type: "primary",
497
427
  onClick: publishPartHandle,
498
- loading: btnLoading.value
428
+ loading: publishLoading.value
499
429
  }, {
500
430
  default: vue.withCtx(() => [
501
431
  vue.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":["useRoute","useRouter","useCmsSettings","ref","reactive","CmsContentManPartForm","onMounted","usePartExtension","CmsPartForm","FormColumn","CmsPartTypesTable","Dialoger","watch","MSAppClient","Messager"],"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":["useRoute","useRouter","ref","watch","reactive","CmsPartMiniForm","useCmsSettings","CmsContentManPartForm","usePartExtension","Dialoger","CmsPartForm"],"mappings":"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"}
@@ -1,13 +1,8 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const dm = require("@maketribe/dm");
4
- require("element-plus");
5
- require("@maketribe/utils");
6
- require("../../../../core/DataModelDefines.js");
7
- const MSAppClient = require("../../../../core/MSAppClient.js");
8
- require("@maketribe/request");
9
3
  require("../../../../components/abstract/abstract-select/abstract-select.js");
10
4
  require("../../../../components/abstract/abstract-select/abstract-select-options.js");
5
+ require("element-plus");
11
6
  require("../../../../components/basic/svg-icon/index.js");
12
7
  require("../../../../components/basic/button/button-options.js");
13
8
  require("../../../../components/basic/config-provider/index.js");
@@ -21,6 +16,8 @@ const index = require("../../../../components/basic/page-container/index.js");
21
16
  require("../../../../components/basic/date-picker/index.js");
22
17
  require("../../../../components/basic/icon-select/index.js");
23
18
  require("../../../../components/basic/upload-file/upload-file.js");
19
+ require("@maketribe/request");
20
+ require("@maketribe/utils");
24
21
  require("../../../../components/basic/upload-file/context/web-file-upload-context.js");
25
22
  require("../../../../components/basic/upload-file/context/web-file-upload-context-options.js");
26
23
  require("../../../../components/basic/upload-file/ui/upload-image/index.js");
@@ -34,50 +31,28 @@ require("../../../../components/data-model/data-table-pagination/index.js");
34
31
  require("../../../../components/business/verify-dialog/index.js");
35
32
  require("../../../../components/business/resource-list/index.js");
36
33
  const index$1 = require("../../../../components/business/resource-manager/index.js");
34
+ require("@maketribe/dm");
35
+ const CmsPartForm = require("../../dataviews/cms-parts/CmsPartForm.js");
36
+ require("../../../../core/DataModelDefines.js");
37
+ require("vue-router");
38
+ require("@maketribe/locale");
37
39
  const ResourceManager = require("../../../../components/business/resource-list/ResourceManager.js");
38
40
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
39
41
  __name: "index",
40
42
  setup(__props) {
41
43
  const resourceManager = vue.reactive(new ResourceManager.ResourceManager({ baseURL: "/cms/template/resource" }));
42
44
  const publishAssetsHandle = async () => {
43
- const httpRequest = MSAppClient.MSAppClient.instance.httpRequest;
44
45
  try {
45
- const isConfirm = await dm.Dialoger.confirm({
46
- title: "发布资源",
47
- message: "是否发布资源?",
48
- type: "warning"
49
- });
50
- if (!isConfirm) {
51
- return;
52
- }
53
46
  resourceManager.loadingManager.startLoading();
54
- const response = await httpRequest.post(`/cms/content/publish/assets`);
55
- if (response.data.code !== 200) {
56
- dm.Messager.error({ message: response.data.msg });
57
- return;
58
- }
59
- dm.Messager.success({ message: "发布成功" });
47
+ CmsPartForm.CmsPartForm.publishAssets();
60
48
  } finally {
61
49
  resourceManager.loadingManager.completeLoading();
62
50
  }
63
51
  };
64
52
  const publishAllHandle = async () => {
65
- var _a;
66
- const httpRequest = (_a = MSAppClient.MSAppClient.instance) == null ? void 0 : _a.httpRequest;
67
53
  try {
68
- const isConfirm = await dm.Dialoger.confirm({ title: "全量发布", message: "是否整站全量发布?", type: "warning" });
69
- if (!isConfirm) {
70
- return;
71
- }
72
54
  resourceManager.loadingManager.startLoading();
73
- const response = await httpRequest.post(
74
- `/cms/content/publish/all`
75
- );
76
- if (response.data.code !== 200) {
77
- dm.Messager.error({ message: response.data.msg });
78
- return;
79
- }
80
- dm.Messager.success({ message: "发布成功" });
55
+ await CmsPartForm.CmsPartForm.publishAll();
81
56
  } finally {
82
57
  resourceManager.loadingManager.completeLoading();
83
58
  }
@@ -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":["reactive","ResourceManager","MSAppClient","Dialoger","Messager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,UAAA,kBAAkBA,IAAAA,SAAS,IAAIC,gBAAAA,gBAAgB,EAAE,SAAS,yBAA0B,CAAA,CAAC;AAG3F,UAAM,sBAAsB,YAAY;AAChC,YAAA,cAAcC,YAAAA,YAAY,SAAU;AAEtC,UAAA;AACI,cAAA,YAAY,MAAMC,GAAA,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;AAC9BC,aAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,QACF;AAEAA,WAAAA,SAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,MAAA,UACpC;AACA,wBAAgB,eAAe;MACjC;AAAA,IAAA;AAIF,UAAM,mBAAmB,YAAY;;AAE7B,YAAA,eAAcF,iBAAAA,YAAY,aAAZA,mBAAsB;AAEtC,UAAA;AACI,cAAA,YAAY,MAAMC,YAAS,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;AAC9BC,aAAA,SAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,QACF;AAEAA,WAAAA,SAAS,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":["reactive","ResourceManager","CmsPartForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBM,UAAA,kBAAkBA,IAAAA,SAAS,IAAIC,gBAAAA,gBAAgB,EAAE,SAAS,yBAA0B,CAAA,CAAC;AAG3F,UAAM,sBAAsB,YAAY;AAElC,UAAA;AAEJ,wBAAgB,eAAe;AAE/BC,oBAAA,YAAY,cAAc;AAAA,MAAA,UAG1B;AACE,wBAAgB,eAAe;MACjC;AAAA,IAAA;AAIF,UAAM,mBAAmB,YAAY;AAI/B,UAAA;AAEF,wBAAgB,eAAe;AAE/B,cAAMA,YAAAA,YAAY;MAAW,UAG7B;AACA,wBAAgB,eAAe;MACjC;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,39 @@
1
- import _sfc_main from "./index.vue2.js";
1
+ import { defineComponent } from "vue";
2
+ import "@lexical/text";
3
+ import "@lexical/utils";
4
+ import "@lexical/overflow";
5
+ import "lexical";
6
+ import "tiny-invariant";
7
+ import "@lexical/history";
8
+ import { useLexicalComposer } from "../../composables/useLexicalComposer.js";
9
+ import "@lexical/list";
10
+ import "@lexical/dragon";
11
+ import "@lexical/plain-text";
12
+ import "@lexical/rich-text";
13
+ import "@lexical/yjs";
14
+ import "yjs";
15
+ import { useAutoLink } from "./shared.js";
16
+ const _sfc_main = /* @__PURE__ */ defineComponent({
17
+ __name: "index",
18
+ props: {
19
+ matchers: {}
20
+ },
21
+ emits: ["change"],
22
+ setup(__props, { emit: __emit }) {
23
+ const props = __props;
24
+ const emit = __emit;
25
+ const editor = useLexicalComposer();
26
+ useAutoLink(editor, props.matchers, (url, prevUrl) => {
27
+ emit("change", {
28
+ url,
29
+ prevUrl
30
+ });
31
+ });
32
+ return (_ctx, _cache) => {
33
+ return null;
34
+ };
35
+ }
36
+ });
2
37
  export {
3
38
  _sfc_main as default
4
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../../../../../src/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { useLexicalComposer } from '../../composables'\r\nimport { type LinkMatcher, useAutoLink } from './shared'\r\n\r\nconst props = defineProps<{\r\n matchers: LinkMatcher[]\r\n}>()\r\n\r\nconst emit = defineEmits<{\r\n (e: 'change', value: { url: string | null, prevUrl: string | null }): void\r\n}>()\r\n\r\nconst editor = useLexicalComposer()\r\n\r\nuseAutoLink(editor, props.matchers, (url: string | null, prevUrl: string | null) => {\r\n emit('change', {\r\n url,\r\n prevUrl,\r\n })\r\n})\r\n</script>\r\n\r\n<template />\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,OAAO;AAIb,UAAM,SAAS;AAEf,gBAAY,QAAQ,MAAM,UAAU,CAAC,KAAoB,YAA2B;AAClF,WAAK,UAAU;AAAA,QACb;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA,CACF;;;;;;"}
@@ -1,39 +1,4 @@
1
- import { defineComponent } from "vue";
2
- import "@lexical/text";
3
- import "@lexical/utils";
4
- import "@lexical/overflow";
5
- import "lexical";
6
- import "tiny-invariant";
7
- import "@lexical/history";
8
- import { useLexicalComposer } from "../../composables/useLexicalComposer.js";
9
- import "@lexical/list";
10
- import "@lexical/dragon";
11
- import "@lexical/plain-text";
12
- import "@lexical/rich-text";
13
- import "@lexical/yjs";
14
- import "yjs";
15
- import { useAutoLink } from "./shared.js";
16
- const _sfc_main = /* @__PURE__ */ defineComponent({
17
- __name: "index",
18
- props: {
19
- matchers: {}
20
- },
21
- emits: ["change"],
22
- setup(__props, { emit: __emit }) {
23
- const props = __props;
24
- const emit = __emit;
25
- const editor = useLexicalComposer();
26
- useAutoLink(editor, props.matchers, (url, prevUrl) => {
27
- emit("change", {
28
- url,
29
- prevUrl
30
- });
31
- });
32
- return (_ctx, _cache) => {
33
- return null;
34
- };
35
- }
36
- });
1
+ import _sfc_main from "./index.vue.js";
37
2
  export {
38
3
  _sfc_main as default
39
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../../../src/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { useLexicalComposer } from '../../composables'\r\nimport { type LinkMatcher, useAutoLink } from './shared'\r\n\r\nconst props = defineProps<{\r\n matchers: LinkMatcher[]\r\n}>()\r\n\r\nconst emit = defineEmits<{\r\n (e: 'change', value: { url: string | null, prevUrl: string | null }): void\r\n}>()\r\n\r\nconst editor = useLexicalComposer()\r\n\r\nuseAutoLink(editor, props.matchers, (url: string | null, prevUrl: string | null) => {\r\n emit('change', {\r\n url,\r\n prevUrl,\r\n })\r\n})\r\n</script>\r\n\r\n<template />\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,OAAO;AAIb,UAAM,SAAS;AAEf,gBAAY,QAAQ,MAAM,UAAU,CAAC,KAAoB,YAA2B;AAClF,WAAK,UAAU;AAAA,QACb;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA,CACF;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -21,7 +21,7 @@ import "@lexical/markdown";
21
21
  import "../lexical-vue/composables/useCollaborationContext.js";
22
22
  import "../lexical-vue/components/LexicalMenu/shared.js";
23
23
  import "../lexical-vue/components/LexicalAutoEmbedPlugin/shared.js";
24
- import _sfc_main$1 from "../lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js";
24
+ import _sfc_main$1 from "../lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js";
25
25
  import "../lexical-vue/components/LexicalTypeaheadMenuPlugin/shared.js";
26
26
  const _sfc_main = /* @__PURE__ */ defineComponent({
27
27
  __name: "AutoLinkPlugin",
@@ -54,6 +54,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
54
  const handleDrop = async (event) => {
55
55
  emit("drop", event);
56
56
  };
57
+ const handleUploadClick = () => {
58
+ var input = document.createElement("input");
59
+ input.type = "file";
60
+ input.multiple = true;
61
+ input.addEventListener("change", () => {
62
+ var files = new Array(input.files.length).fill(0).map((_, i) => input.files[i]);
63
+ props.resourceManager.uploadResourceList(files);
64
+ });
65
+ input.click();
66
+ };
57
67
  onMounted(() => {
58
68
  props.resourceManager.loadResourceInfoList();
59
69
  });
@@ -62,6 +72,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
62
72
  const _component_ElBreadcrumbItem = resolveComponent("ElBreadcrumbItem");
63
73
  const _component_ElBreadcrumb = resolveComponent("ElBreadcrumb");
64
74
  const _component_el_button = resolveComponent("el-button");
75
+ const _component_ElButton = resolveComponent("ElButton");
65
76
  return openBlock(), createElementBlock("div", {
66
77
  class: normalizeClass(["resource-list", { row: listMode.value == "row" }])
67
78
  }, [
@@ -126,6 +137,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
126
137
  }))
127
138
  ]),
128
139
  _: 1
140
+ }),
141
+ createVNode(_component_ElButton, {
142
+ type: "primary",
143
+ onClick: handleUploadClick
144
+ }, {
145
+ default: withCtx(() => [
146
+ createTextVNode("上传")
147
+ ]),
148
+ _: 1
129
149
  })
130
150
  ])
131
151
  ]),