@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.
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +37 -2
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +2 -37
- package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
- package/dist/cjs/components/business/resource-list/resource-list.vue.js +20 -0
- package/dist/cjs/components/business/resource-list/resource-list.vue.js.map +1 -1
- package/dist/cjs/components/business/resource-manager/resource-manager.vue.js +0 -19
- package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +1 -1
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js +69 -0
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js +49 -0
- package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js.map +1 -0
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +36 -106
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +10 -35
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +36 -1
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +1 -36
- package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
- package/dist/esm/components/business/resource-list/resource-list.vue.js +20 -0
- package/dist/esm/components/business/resource-list/resource-list.vue.js.map +1 -1
- package/dist/esm/components/business/resource-manager/resource-manager.vue.js +1 -20
- package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/cms/components/part-tree/index.vue.js +1 -1
- package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsContentManPartForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js +70 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js +49 -0
- package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartMiniForm.js.map +1 -0
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +38 -108
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +10 -35
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/style/index.css +1 -1
- package/dist/style/modules/cms/index.css +1 -1
- package/dist/style/modules/cms/resource-manager.css +1 -1
- package/dist/style/src/modules/cms/resource-manager.scss +10 -5
- package/dist/types/modules/cms/dataviews/cms-parts/CmsPartForm.d.ts +20 -0
- package/dist/types/modules/cms/dataviews/cms-parts/CmsPartMiniForm.d.ts +4 -0
- package/dist/types/modules/cms/dataviews/cms-parts/index.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref,
|
|
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 {
|
|
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
|
|
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
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
|
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:
|
|
107
|
+
dataForm: partMiniForm
|
|
159
108
|
});
|
|
160
109
|
if (item.id) {
|
|
161
|
-
|
|
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
|
-
|
|
125
|
+
partMiniForm.submittedEvent.on(({ response }) => {
|
|
170
126
|
var _a;
|
|
171
|
-
(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
200
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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) =>
|
|
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) =>
|
|
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:
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuHA,UAAM,QAAQ;AACd,UAAM,SAAS;AAET,UAAA,gBAAgB,CAAC,SAAS,UAAU;AACxC,UAAI,QAAQ;AACV,eAAO,KAAK,iCAAiC,kBAAkB,MAAM,EAAE,WAAW;AAAA,MAAA,OAC7E;AACL,eAAO,KAAK,iCAAiC,kBAAkB,MAAM,EAAE,EAAE;AAAA,MAC3E;AAAA,IAAA;AAII,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,cAAc,IAAI,KAAK;AAG7B,UAAM,aAAa,IAAI;AAAA,MACrB,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAAA,CACf;AAEK,UAAA,aAAa,IAAI,KAAK;AAGtB,UAAA,gBAAgB,IAAI,cAAc;AAGlC,UAAA,oBAAoB,IAAI,IAAW;AAGnC,UAAA,cAAc,IAAI,IAAI;AAG5B,UAAM,UAAU;AAGhB,UAAM,eAAe,SAAS,IAAI,sBAAuB,CAAA;AAGzD,cAAU,MAAM;AAEd,mBAAa,KAAK;AAAA,IAAA,CACnB;AAGK,UAAA,mBAAmB,OAAO,SAAc;AAExC,UAAA,kBAAkB,SAAS,MAAM;AAEnC,0BAAkB,QAAQ;AAEtB,YAAA,CAAC,kBAAkB,MAAM,iBAAiB;AAC5C,wBAAc,QAAQ;AAAA,QAAA,OAEpB;AACF,wBAAc,QAAQ;AAAA,QACxB;AAEa,qBAAA,WAAW,kBAAkB,MAAM,EAAE;AAE3C,eAAA,QAAQ,EAAE,MAAM,gBAAgB,OAAO,EAAE,KAAK,kBAAkB,MAAM,GAAG,EAAU,CAAA;AAC1F,gBAAQ,QAAQ,iBAAiB,kBAAkB,MAAM,EAAE;AAAA,MAC7D;AAAA,IAAA;AAGI,UAAA,mBAAmB,CAAC,SAAc;AACtC,UAAI,KAAK,MAAM,kBAAkB,MAAM,IAAI;AACzC,0BAAkB,QAAQ;AAAA,MAC5B;AAAA,IAAA;AAGI,UAAA,iBAAiB,CAAC,SAAc;AACpC,wBAAkB,QAAQ;AAC1B,oBAAc,QAAQ;AAAA,IAAA;AAIxB,UAAM,WAAW;AAAA,MACf,IAAK,cAAc,YAAY;AAAA,QAC7B,MAAgB,aAAa;AAC3B,gBAAM,MAAM;AACZ,eAAK,WAAW;AAAA,YACd,IAAI,WAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,eAAe;AAAA,cACf,cAAc;AAAA,cACd,gBAAgB;AAAA,gBACd,WAAW,KAAK;AAAA,kBACd,IAAI,kBAAkB;AAAA,gBACxB;AAAA,cACF;AAAA,cACA,UAAU;AAAA,YAAA,CACX;AAAA,YACD,IAAI,WAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,YAAA,CACX;AAAA,YACD,IAAI,WAAW;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,YAAA,CACX;AAAA,UAAA,CACF;AAAA,QACH;AAAA,MAAA,EACC;AAAA,IAAA;AAKC,UAAA,qBAAqB,OAAO,SAAe;AAC/C,YAAM,SAAS,eAAe;AAAA,QAC5B,UAAU;AAAA,MAAA,CACX;AAED,UAAI,KAAK,IAAI;AACX,iBAAS,UAAU,EAAE,UAAU,KAAK,GAAI,CAAA;AAAA,MAC1C;AAAA,IAAA;AAGF,UAAM,eAAe,YAAY;AAC3B,UAAA,cAAc,SAAS,QAAQ;AACf,0BAAA,SAAS,MAAM,aAAa,WAAW,kBAAkB,MAAM,EAAE,GAAG,KAAK;AAAA,MAC7F;AAAA,IAAA,CACD;AAGQ,aAAA,eAAe,GAAG,MAAM;;AAC9B,wBAAY,MAAe,aAA3B,mBAAqC;AAAA,IAAK,CAC5C;AAEK,UAAA,UAAU,IAAI,KAAK;AAGzB,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,gBAAQ,QAAQ;AAEV,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,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAIF,UAAM,oBAAoB,YAAY;;AAC9B,YAAA,eAAc,iBAAY,aAAZ,mBAAsB;AACtC,UAAA;AACF,mBAAW,QAAQ;AAEb,cAAA,WAAW,MAAM,YAAY;AAAA,UACjC;AAAA,UAA6B;AAAA,YAC7B,SAAS;AAAA,cACP,kBAAkB,MAAM;AAAA,YAC1B;AAAA,YACA,GAAG,WAAW;AAAA,UAChB;AAAA,QAAA;AAGI,YAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,mBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C;AAAA,QACF;AACA,oBAAY,QAAQ;AAEpB,iBAAS,QAAQ,EAAE,SAAS,OAAQ,CAAA;AAAA,MAAA,UAEpC;AACA,mBAAW,QAAQ;AAAA,MACrB;AAAA,IAAA;AAMF,UAAM,iBAAiB,YAAY;AACjC,wBAAkB,QAAQ,aAAa;AACvC,YAAM,aAAa;IAAO;AAOtB,UAAA,qBAAqB,CAAC,MAAW;AACrC,mBAAa,KAAK,UAAU;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsHA,UAAM,QAAQ;AACd,UAAM,SAAS;AAGf,UAAM,kBAAkB,IAAY,MAAM,MAAM,GAAa;AAC7D,UAAM,MAAI,MAAM,MAAM,KAAI,CAAC,MAAQ;AACjC,sBAAgB,QAAQ;AAAA,IAAA,GACxB,EAAE,WAAU,KAAA,CAAM;AAGpB,UAAM,eAAe,SAA0B,IAAI,gBAAiB,CAAA;AAG9D,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,cAAc,IAAI,KAAK;AAG7B,UAAM,aAAa,IAAI;AAAA,MACrB,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAAA,CACf;AAGK,UAAA,iBAAiB,IAAI,KAAK;AAG1B,UAAA,UAAU,IAAI,KAAK;AAGnB,UAAA,gBAAgB,IAAI,cAAc;AAGlC,UAAA,oBAAoB,IAAI,IAAW;AAGnC,UAAA,cAAc,IAAI,IAAI;AAG5B,UAAM,UAAU;AAGhB,UAAM,eAAe,SAAS,IAAI,sBAAuB,CAAA;AAGnD,UAAA,mBAAmB,OAAO,SAAc;AAExC,UAAA,kBAAkB,SAAS,MAAM;AAEnC,0BAAkB,QAAQ;AAEtB,YAAA,CAAC,kBAAkB,MAAM,iBAAiB;AAC5C,wBAAc,QAAQ;AAAA,QAAA,OAEpB;AACF,wBAAc,QAAQ;AAAA,QACxB;AAEa,qBAAA,WAAW,kBAAkB,MAAM,EAAE;AAC3C,eAAA,QAAQ,EAAE,MAAM,gBAAgB,OAAO,EAAE,KAAK,kBAAkB,MAAM,GAAG,EAAU,CAAA;AAC1F,gBAAQ,QAAQ,iBAAiB,kBAAkB,MAAM,EAAE;AAAA,MAC7D;AAAA,IAAA;AAII,UAAA,mBAAmB,CAAC,SAAc;AACtC,UAAI,KAAK,MAAM,kBAAkB,MAAM,IAAI;AACzC,0BAAkB,QAAQ;AAAA,MAC5B;AAAA,IAAA;AAII,UAAA,iBAAiB,CAAC,SAAc;AACpC,wBAAkB,QAAQ;AAC1B,oBAAc,QAAQ;AAAA,IAAA;AAMlB,UAAA,qBAAqB,OAAO,SAAe;AAC/C,YAAM,SAAS,eAAe;AAAA,QAC5B,UAAU;AAAA,MAAA,CACX;AAED,UAAI,KAAK,IAAI;AACX,qBAAa,UAAU,EAAE,UAAU,KAAK,GAAI,CAAA;AAAA,MAC9C;AAAA,IAAA;AAII,UAAA,aAAa,OAAO,MAAM;AAC9B,UAAG,GAAE;AACH,mBAAW,MAAM,gBAAgB,CAAC,CAAC,kBAAkB,MAAM;AAC3D,mBAAW,MAAM,iBAAiB,CAAC,CAAC,kBAAkB,MAAM;AAC5D,mBAAW,MAAM,mBAAmB,CAAC,CAAC,kBAAkB,MAAM;AAAA,MAChE;AAAA,IAAA,CACD;AAED,UAAM,eAAe,YAAY;AAC3B,UAAA,cAAc,SAAS,QAAQ;AACf,0BAAA,SAAS,MAAM,aAAa,WAAW,kBAAkB,MAAM,EAAE,GAAG,KAAK;AAAA,MAC7F;AAAA,IAAA,CACD;AAGD,iBAAa,eAAe,GAAG,CAAC,EAAE,eAAmB;;AAChD,UAAA,SAAS,KAAK,MAAK;AAEJ,wBAAA,QAAQ,SAAS,KAAK;AAErC,0BAAY,MAAe,aAA3B,mBAAqC;AAAA,MACxC;AAAA,IAAA,CAED;AAGD,UAAM,uBAAuB,YAAY;AAEnC,UAAA;AAEF,gBAAQ,QAAQ;AAEhB,cAAM,YAAY;MAAW,UAE/B;AACE,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGF,UAAM,oBAAoB,YAAY;AAEhC,UAAA;AAEF,uBAAe,QAAQ;AAEvB,cAAM,YAAY,QAAQ,kBAAkB,MAAM,IAAG,WAAW,KAAK;AAErE,oBAAY,QAAQ;AAAA,MAAA,UAEpB;AACA,uBAAe,QAAQ;AAAA,MACzB;AAAA,IAAA;AAMF,UAAM,iBAAiB,YAAY;AACjC,wBAAkB,QAAQ,aAAa;AACvC,YAAM,aAAa;IAAO;AAOtB,UAAA,qBAAqB,CAAC,MAAW;AACrC,mBAAa,KAAK,UAAU;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|