@maketribe/ms-app 3.2.44 → 3.2.46

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 (43) hide show
  1. package/dist/cjs/components/basic/lexical-editor/assets/doc-editor.css.js +1 -1
  2. package/dist/cjs/components/basic/lexical-editor/assets/doc-editor.css.js.map +1 -1
  3. package/dist/cjs/components/basic/lexical-editor/nodes/ModuleDecoratorNode.js +1 -1
  4. package/dist/cjs/components/basic/lexical-editor/nodes/ModuleDecoratorNode.js.map +1 -1
  5. package/dist/cjs/components/basic/lexical-editor/utils/html.js +1 -19
  6. package/dist/cjs/components/basic/lexical-editor/utils/html.js.map +1 -1
  7. package/dist/cjs/components/basic/lexical-editor/utils/module.js.map +1 -1
  8. package/dist/cjs/modules/cms/cms-settings.js +5 -1
  9. package/dist/cjs/modules/cms/cms-settings.js.map +1 -1
  10. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +40 -324
  11. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  12. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner.vue.js +362 -0
  13. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner.vue.js.map +1 -0
  14. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner.vue2.js +4 -0
  15. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner.vue2.js.map +1 -0
  16. package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js +38 -15
  17. package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
  18. package/dist/esm/components/basic/lexical-editor/assets/doc-editor.css.js +1 -1
  19. package/dist/esm/components/basic/lexical-editor/assets/doc-editor.css.js.map +1 -1
  20. package/dist/esm/components/basic/lexical-editor/nodes/ModuleDecoratorNode.js +1 -1
  21. package/dist/esm/components/basic/lexical-editor/nodes/ModuleDecoratorNode.js.map +1 -1
  22. package/dist/esm/components/basic/lexical-editor/utils/html.js +2 -20
  23. package/dist/esm/components/basic/lexical-editor/utils/html.js.map +1 -1
  24. package/dist/esm/components/basic/lexical-editor/utils/module.js.map +1 -1
  25. package/dist/esm/modules/cms/cms-settings.js +5 -1
  26. package/dist/esm/modules/cms/cms-settings.js.map +1 -1
  27. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +41 -325
  28. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  29. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner.vue.js +363 -0
  30. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner.vue.js.map +1 -0
  31. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner.vue2.js +5 -0
  32. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner.vue2.js.map +1 -0
  33. package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js +38 -15
  34. package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
  35. package/dist/style/index.css +1 -1
  36. package/dist/style/modules/cms/index.css +1 -1
  37. package/dist/style/modules/cms/pages/cms-contents/components/mk-cms-part-banner.css +1 -1
  38. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  39. package/dist/style/src/modules/cms/pages/cms-contents/components/mk-cms-part-banner.scss +1 -0
  40. package/dist/types/components/basic/lexical-editor/nodes/ModuleDecoratorNode.d.ts +1 -3
  41. package/dist/types/modules/cms/cms-settings.d.ts +5 -1
  42. package/dist/types/modules/cms/pages/cms-contents/components/part-banner.vue.d.ts +32 -0
  43. package/package.json +3 -3
@@ -0,0 +1,363 @@
1
+ import { defineComponent, ref, reactive, computed, onMounted, watch, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, createBlock, withCtx, Fragment, renderList, createElementVNode, createCommentVNode, toDisplayString, createVNode, unref, createTextVNode, normalizeStyle } from "vue";
2
+ import { useCmsSettings } from "../../../cms-settings.js";
3
+ import { DataViewRequest, Where } from "@maketribe/request";
4
+ import { Messager, Dialoger } from "@maketribe/dm";
5
+ import { CmsAdContentsForm } from "../../../dataviews/cms-ad-contents/CmsAdContentsForm.js";
6
+ import { CmsAdDefinesForm } from "../../../dataviews/cms-ad-defines/CmsAdDefinesForm.js";
7
+ import "element-plus";
8
+ import "@maketribe/utils";
9
+ import "../../../../../core/DataModelDefines.js";
10
+ import "vue-router";
11
+ import "@maketribe/locale";
12
+ import "../../../../ms/dataviews/ms-config/MsConfigTable.js";
13
+ import "lodash-es";
14
+ import "../../../../../components/basic/svg-icon/index.js";
15
+ import "../../../../../components/data-model/data-form/index.js";
16
+ import "../../../../../components/data-model/data-table/index.js";
17
+ import "../../../../../components/data-model/data-table-pagination/index.js";
18
+ import "../../../../../components/abstract/abstract-select/abstract-select.js";
19
+ import "../../../../../components/abstract/abstract-select/abstract-select-options.js";
20
+ import "../../../../../components/basic/button/button-options.js";
21
+ import "../../../../../components/basic/config-provider/index.js";
22
+ import "../../../../../components/basic/data-table-select/index.js";
23
+ import "../../../../../components/basic/data-select/index.js";
24
+ import "../../../../../components/basic/pagination/index.js";
25
+ import "../../../../../components/basic/system-provider/index.js";
26
+ import "../../../../../components/basic/code-editor/index.js";
27
+ import "../../../../../components/basic/json-editor/index.js";
28
+ import "../../../../../components/basic/page-container/index.js";
29
+ import "../../../../../components/basic/date-picker/index.js";
30
+ import "../../../../../components/basic/icon-select/index.js";
31
+ import "../../../../../components/basic/upload-file/upload-file.js";
32
+ import "../../../../../components/basic/upload-file/context/web-file-upload-context.js";
33
+ import "../../../../../components/basic/upload-file/context/web-file-upload-context-options.js";
34
+ import "../../../../../components/basic/upload-file/ui/upload-image/index.js";
35
+ import "../../../../../components/basic/upload-file/ui/upload-file/index.js";
36
+ import "../../../../../components/basic/upload-file/ui/upload-video/index.js";
37
+ import "../../../../../components/basic/upload-file/upload-file-options.js";
38
+ import "../../../../../components/basic/doc-editor/index.js";
39
+ import "../../../../../components/basic/copy-container/index.js";
40
+ import "../../../../../components/basic/image-cropper/index.js";
41
+ import "../../../../../components/basic/visual-page-editor/index.js";
42
+ import "../../../../../components/basic/lexical-editor/assets/iconfont.js";
43
+ import "@lexical/overflow";
44
+ import "@lexical/text";
45
+ import "@lexical/utils";
46
+ import "lexical";
47
+ import "@lexical/selection";
48
+ import "@lexical/link";
49
+ import "@lexical/rich-text";
50
+ import "../../../../../components/basic/lexical-editor/utils/html.js";
51
+ import "../../../../../components/basic/lexical-editor/utils/image.js";
52
+ import { EditPen, Plus, Delete } from "@element-plus/icons-vue";
53
+ import "../../../../../components/basic/lexical-editor/composables/useElementBlockSelection.js";
54
+ import "@lexical/history";
55
+ /* empty css */
56
+ import "../../../../../components/basic/lexical-editor/nodes/ModuleDecoratorNode.js";
57
+ import "../../../../../components/basic/lexical-editor/nodes/ImageNode.js";
58
+ import "../../../../../components/basic/lexical-editor/nodes/ImageTextWarpNode.js";
59
+ import "../../../../../components/basic/lexical-editor/nodes/Template.js";
60
+ /* empty css */
61
+ /* empty css */
62
+ /* empty css */
63
+ import "../../../../../components/basic/lexical-editor/plugins/RichTextEditorPlugin.js";
64
+ import "../../../../../components/basic/lexical-editor/plugins/HashtagPlugin.js";
65
+ import "../../../../../components/basic/lexical-editor/plugins/ListPlugin.js";
66
+ import "../../../../../components/basic/lexical-editor/plugins/CheckListPlugin.js";
67
+ import "../../../../../components/basic/lexical-editor/plugins/TablePlugin.js";
68
+ /* empty css */
69
+ import "@lexical/dragon";
70
+ import "@lexical/plain-text";
71
+ import "../../../../../components/basic/lexical-editor/stage/DecoratedTeleports.js";
72
+ /* empty css */
73
+ import "../../../../../components/business/verify-dialog/verify-dialog-option.js";
74
+ import "../../../../../components/business/resource-list/index.js";
75
+ import "../../../../../components/business/resource-manager/index.js";
76
+ import "../../../../ms/dataviews/department/DepartmentForm.js";
77
+ import "../../../../ms/dataviews/department/DepartmentTable.js";
78
+ import "../../../../ms/dataviews/department/DepartmentTree.js";
79
+ import "../../../../ms/dataviews/log/operate-log/OperateLogTable.js";
80
+ import "../../../../ms/dataviews/log/login-log/LoginLogTable.js";
81
+ import "../../../../ms/dataviews/log/request-log/RequestLogTable.js";
82
+ import "../../../../ms/dataviews/log/local-log/LocalLogTree.js";
83
+ import "../../../../ms/components/material-list/index.js";
84
+ import "../../../../ms/components/markdown-editor/index.js";
85
+ import "../../../../ms/components/rich-text-editor/index.js";
86
+ import "../../../../ms/material-upload-context/material-upload-context-options.js";
87
+ import "../../../../ms/material-upload-context/material-upload-context.js";
88
+ import "@codemirror/lang-html";
89
+ const _hoisted_1 = { class: "mk-cms-part-banner__list_item" };
90
+ const _hoisted_2 = { class: "mk-cms-part-banner__list_content" };
91
+ const _hoisted_3 = /* @__PURE__ */ createElementVNode("div", {
92
+ slot: "placeholder",
93
+ class: "image-slot"
94
+ }, [
95
+ /* @__PURE__ */ createTextVNode(" 加载中"),
96
+ /* @__PURE__ */ createElementVNode("span", { class: "dot" }, "...")
97
+ ], -1);
98
+ const _hoisted_4 = ["src"];
99
+ const _hoisted_5 = { class: "mk-cms-part-banner__list_bottom" };
100
+ const _hoisted_6 = { class: "mk-cms-part-banner__list_title" };
101
+ const _hoisted_7 = { class: "mk-cms-part-banner__list_action-mask" };
102
+ const _sfc_main = /* @__PURE__ */ defineComponent({
103
+ __name: "part-banner",
104
+ props: { adkey: { type: String }, title: { type: String }, deviceValue: { type: String, default: "" }, viewWidth: { type: Number } },
105
+ setup(__props) {
106
+ const props = __props;
107
+ const adRequest = new DataViewRequest({ name: "ad-define", moduleName: "cms" });
108
+ const adContentRequest = new DataViewRequest({ name: "ad-content", moduleName: "cms" });
109
+ const cmsSettings = useCmsSettings();
110
+ const partAdBanner = ref(null);
111
+ const loading = ref(true);
112
+ const adContentForm = reactive(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }));
113
+ const adDefineForm = reactive(new CmsAdDefinesForm());
114
+ ref(null);
115
+ const partAdBannerHeight = computed(() => {
116
+ var _a, _b;
117
+ const sizes = cmsSettings.part.bannerImageSize.split("*");
118
+ let widthHeightRatio = 0;
119
+ if (!!((_a = partAdBanner.value) == null ? void 0 : _a.width) && !!((_b = partAdBanner.value) == null ? void 0 : _b.height)) {
120
+ widthHeightRatio = partAdBanner.value.width / partAdBanner.value.height;
121
+ } else if (sizes.length && sizes[0] && sizes[1]) {
122
+ widthHeightRatio = sizes[0] / sizes[1];
123
+ }
124
+ if (widthHeightRatio && props.viewWidth) {
125
+ return props.viewWidth / widthHeightRatio + "px";
126
+ }
127
+ return "240px";
128
+ });
129
+ adContentForm.beforeSubmitEvent.on(async ({ data }) => {
130
+ if (partAdBanner.value) {
131
+ data.adDefineId = partAdBanner.value.id;
132
+ } else {
133
+ try {
134
+ const widthAndHeight = cmsSettings.part.bannerImageSize.split("*");
135
+ const result = await adRequest.add({ key: props.adkey, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] });
136
+ if (result.data.code == 200) {
137
+ partAdBanner.value = { id: result.data.data };
138
+ data.adDefineId = result.data.data;
139
+ }
140
+ } catch (error) {
141
+ Messager.error({ message: "添加失败!" });
142
+ }
143
+ }
144
+ });
145
+ adDefineForm.formatSubmitData = (data) => {
146
+ if (partAdBanner.value) {
147
+ data.id = partAdBanner.value.id;
148
+ } else {
149
+ data.key = props.adkey;
150
+ data.desc = `${props.title}的Banner`;
151
+ }
152
+ return data;
153
+ };
154
+ adContentForm.submittedEvent.on(() => loadPartAdDefineData());
155
+ adDefineForm.submittedEvent.on(() => loadPartAdDefineData());
156
+ const loadPartAdDefineData = async () => {
157
+ var _a, _b;
158
+ try {
159
+ loading.value = true;
160
+ const where = new Where();
161
+ where.addCondition("key", "=", props.adkey);
162
+ partAdBanner.value = (await adRequest.query({
163
+ data: {
164
+ pn: 1,
165
+ pc: 1e6,
166
+ condition: where
167
+ }
168
+ })).data.data[0];
169
+ if (((_a = partAdBanner.value) == null ? void 0 : _a.width) && ((_b = partAdBanner.value) == null ? void 0 : _b.width)) {
170
+ adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`);
171
+ }
172
+ } catch (e) {
173
+ console.error(e);
174
+ } finally {
175
+ loading.value = false;
176
+ }
177
+ };
178
+ const showAdContentHandle = async (id) => {
179
+ await Dialoger.dataFormDialog({
180
+ dataForm: adContentForm,
181
+ recId: id
182
+ });
183
+ };
184
+ const showAdDefineHandle = async () => {
185
+ var _a;
186
+ await Dialoger.dataFormDialog({
187
+ title: "设置素材显示尺寸",
188
+ dataForm: adDefineForm,
189
+ recId: (_a = partAdBanner.value) == null ? void 0 : _a.id
190
+ });
191
+ adDefineForm.getColumn("contents").visible = false;
192
+ adDefineForm.getColumn("key").visible = false;
193
+ adDefineForm.getColumn("desc").visible = false;
194
+ };
195
+ const deleteAdContentHandle = async (id) => {
196
+ try {
197
+ const isConfirm = await Dialoger.confirm({ title: "确定删除?", message: "确定删除当前轮播吗?", type: "warning" });
198
+ if (!isConfirm) return;
199
+ const result = await adContentRequest.delete(id);
200
+ if (result.data.code != 200) {
201
+ Messager.error({ message: result.data.msg || "删除失败!" });
202
+ return;
203
+ }
204
+ ;
205
+ loadPartAdDefineData();
206
+ } catch (error) {
207
+ Messager.error({ message: "删除失败!" });
208
+ }
209
+ };
210
+ onMounted(() => {
211
+ watch(() => props.adkey, () => loadPartAdDefineData(), { immediate: true });
212
+ });
213
+ return (_ctx, _cache) => {
214
+ var _a;
215
+ const _component_el_image = resolveComponent("el-image");
216
+ const _component_el_button = resolveComponent("el-button");
217
+ const _component_el_carousel_item = resolveComponent("el-carousel-item");
218
+ const _component_el_carousel = resolveComponent("el-carousel");
219
+ const _component_el_text = resolveComponent("el-text");
220
+ const _component_el_empty = resolveComponent("el-empty");
221
+ const _directive_loading = resolveDirective("loading");
222
+ return withDirectives((openBlock(), createElementBlock("div", null, [
223
+ partAdBanner.value && ((_a = partAdBanner.value.contents) == null ? void 0 : _a.length) ? (openBlock(), createBlock(_component_el_carousel, {
224
+ key: 0,
225
+ autoplay: false,
226
+ height: partAdBannerHeight.value,
227
+ arrow: "always",
228
+ ref: "carouselRef"
229
+ }, {
230
+ default: withCtx(() => [
231
+ (openBlock(true), createElementBlock(Fragment, null, renderList(partAdBanner.value.contents, (item) => {
232
+ return openBlock(), createBlock(_component_el_carousel_item, {
233
+ key: item.id
234
+ }, {
235
+ default: withCtx(() => [
236
+ createElementVNode("div", _hoisted_1, [
237
+ createElementVNode("div", _hoisted_2, [
238
+ item.type == 1 ? (openBlock(), createBlock(_component_el_image, {
239
+ key: 0,
240
+ class: "mk-cms-part-banner__list_content_img",
241
+ src: item.path,
242
+ fit: "cover",
243
+ tyle: "width: 100%;height: 100%;"
244
+ }, {
245
+ default: withCtx(() => [
246
+ _hoisted_3
247
+ ]),
248
+ _: 2
249
+ }, 1032, ["src"])) : createCommentVNode("", true),
250
+ item.type == 2 ? (openBlock(), createElementBlock("video", {
251
+ key: 1,
252
+ class: "video",
253
+ src: item.path,
254
+ style: { "width": "100%", "height": "100%" },
255
+ controls: ""
256
+ }, null, 8, _hoisted_4)) : createCommentVNode("", true)
257
+ ]),
258
+ createElementVNode("div", _hoisted_5, [
259
+ createElementVNode("div", _hoisted_6, toDisplayString(item.title), 1),
260
+ createElementVNode("div", null, toDisplayString(item.desc), 1)
261
+ ]),
262
+ createElementVNode("div", _hoisted_7, [
263
+ createVNode(_component_el_button, {
264
+ type: "primary",
265
+ style: { "margin-left": "10px" },
266
+ icon: unref(EditPen),
267
+ onClick: ($event) => showAdContentHandle(item.id)
268
+ }, {
269
+ default: withCtx(() => [
270
+ createTextVNode(" 编辑当前轮播素材 ")
271
+ ]),
272
+ _: 2
273
+ }, 1032, ["icon", "onClick"]),
274
+ createVNode(_component_el_button, {
275
+ type: "primary",
276
+ style: { "margin-left": "10px" },
277
+ icon: unref(Plus),
278
+ onClick: _cache[0] || (_cache[0] = ($event) => showAdContentHandle(null))
279
+ }, {
280
+ default: withCtx(() => [
281
+ createTextVNode(" 添加新轮播素材 ")
282
+ ]),
283
+ _: 1
284
+ }, 8, ["icon"]),
285
+ createVNode(_component_el_button, {
286
+ type: "primary",
287
+ style: { "margin-left": "10px" },
288
+ icon: unref(EditPen),
289
+ onClick: _cache[1] || (_cache[1] = ($event) => showAdDefineHandle())
290
+ }, {
291
+ default: withCtx(() => [
292
+ createTextVNode(" 设置素材显示尺寸 ")
293
+ ]),
294
+ _: 1
295
+ }, 8, ["icon"]),
296
+ createVNode(_component_el_button, {
297
+ type: "danger",
298
+ style: { "margin-left": "10px" },
299
+ icon: unref(Delete),
300
+ onClick: ($event) => deleteAdContentHandle(item.id)
301
+ }, {
302
+ default: withCtx(() => [
303
+ createTextVNode(" 删除当前素材 ")
304
+ ]),
305
+ _: 2
306
+ }, 1032, ["icon", "onClick"])
307
+ ])
308
+ ])
309
+ ]),
310
+ _: 2
311
+ }, 1024);
312
+ }), 128))
313
+ ]),
314
+ _: 1
315
+ }, 8, ["height"])) : (openBlock(), createBlock(_component_el_empty, {
316
+ key: 1,
317
+ "image-size": 80,
318
+ style: normalizeStyle({ height: partAdBannerHeight.value })
319
+ }, {
320
+ description: withCtx(() => [
321
+ createVNode(_component_el_text, null, {
322
+ default: withCtx(() => [
323
+ createTextVNode("暂无" + toDisplayString(__props.title) + "轮播素材数据", 1)
324
+ ]),
325
+ _: 1
326
+ }),
327
+ createVNode(_component_el_button, {
328
+ type: "primary",
329
+ text: "",
330
+ style: { "margin-left": "10px" },
331
+ icon: unref(Plus),
332
+ onClick: _cache[2] || (_cache[2] = ($event) => showAdDefineHandle())
333
+ }, {
334
+ default: withCtx(() => [
335
+ createTextVNode(" 设置素材显示尺寸 ")
336
+ ]),
337
+ _: 1
338
+ }, 8, ["icon"]),
339
+ createVNode(_component_el_button, {
340
+ type: "primary",
341
+ text: "",
342
+ style: { "margin-left": "10px" },
343
+ icon: unref(Plus),
344
+ onClick: _cache[3] || (_cache[3] = ($event) => showAdContentHandle(null))
345
+ }, {
346
+ default: withCtx(() => [
347
+ createTextVNode(" 添加 ")
348
+ ]),
349
+ _: 1
350
+ }, 8, ["icon"])
351
+ ]),
352
+ _: 1
353
+ }, 8, ["style"]))
354
+ ])), [
355
+ [_directive_loading, loading.value]
356
+ ]);
357
+ };
358
+ }
359
+ });
360
+ export {
361
+ _sfc_main as default
362
+ };
363
+ //# sourceMappingURL=part-banner.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part-banner.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-banner.vue"],"sourcesContent":["<template>\r\n <div v-loading=\"loading\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" :height=\"partAdBannerHeight\"\r\n arrow=\"always\" ref=\"carouselRef\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"danger\" style=\"margin-left: 10px;\" :icon=\"Delete\" @click=\"deleteAdContentHandle(item.id)\">\r\n 删除当前素材\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else :image-size=\"80\" :style=\"{ height: partAdBannerHeight }\">\r\n <template #description>\r\n <el-text>暂无{{ title }}轮播素材数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, ref, watch, defineProps, computed } from \"vue\";\r\nimport { DataViewRequest, DVQueryable, Where } from \"@maketribe/request\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, Plus, Delete } from \"@element-plus/icons-vue\"\r\n\r\nconst props = defineProps({ adkey: { type: String }, title: { type: String }, deviceValue: { type: String, default: \"\" }, viewWidth: { type: Number } })\r\n\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\nconst adContentRequest = new DataViewRequest({ name: \"ad-content\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\nconst warpRef = ref<any | null>(null);\r\n// 计算广告的高度\r\nconst partAdBannerHeight = computed(() => {\r\n\r\n // 全局Banner尺寸信息\r\n const sizes = cmsSettings.part.bannerImageSize.split(\"*\") as Array<any>;\r\n\r\n // 宽高比\r\n let widthHeightRatio = 0;\r\n\r\n //设定的比例\r\n if (!!partAdBanner.value?.width && !!partAdBanner.value?.height) {\r\n widthHeightRatio = partAdBanner.value.width / partAdBanner.value.height;\r\n }\r\n else if (sizes.length && sizes[0] && sizes[1]) {\r\n widthHeightRatio = sizes[0] / sizes[1]\r\n }\r\n\r\n if (widthHeightRatio && props.viewWidth) { return (props.viewWidth / widthHeightRatio) + \"px\" }\r\n\r\n return \"240px\"\r\n\r\n})\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: props.adkey, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n//提交判断是否存在,判断更新还是添加\r\nadDefineForm.formatSubmitData = ((data) => {\r\n if (partAdBanner.value) {\r\n data.id = partAdBanner.value.id as any;\r\n } else {\r\n data.key = props.adkey\r\n data.desc = `${props.title}的Banner`\r\n }\r\n return data\r\n})\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => loadPartAdDefineData())\r\n// 添加完成则刷新\r\nadDefineForm.submittedEvent.on(() => loadPartAdDefineData())\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", props.adkey);\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data[0];\r\n\r\n if (partAdBanner.value?.width && partAdBanner.value?.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async () => {\r\n await Dialoger.dataFormDialog({\r\n title: \"设置素材显示尺寸\",\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value?.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\nconst deleteAdContentHandle = async (id: any) => {\r\n try {\r\n const isConfirm = await Dialoger.confirm({ title: \"确定删除?\", message: \"确定删除当前轮播吗?\", type: \"warning\" })\r\n if (!isConfirm) return;\r\n const result = await adContentRequest.delete(id)\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"删除失败!\" })\r\n return\r\n };\r\n loadPartAdDefineData()\r\n } catch (error) {\r\n Messager.error({ message: \"删除失败!\" })\r\n }\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.adkey, () => loadPartAdDefineData(), { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./part-banner.vue.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
5
+ //# sourceMappingURL=part-banner.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part-banner.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -52,6 +52,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  const _component_el_radio = resolveComponent("el-radio");
53
53
  const _component_el_radio_group = resolveComponent("el-radio-group");
54
54
  const _component_el_form_item = resolveComponent("el-form-item");
55
+ const _component_el_checkbox = resolveComponent("el-checkbox");
56
+ const _component_el_checkbox_group = resolveComponent("el-checkbox-group");
55
57
  const _component_el_form = resolveComponent("el-form");
56
58
  const _component_el_tab_pane = resolveComponent("el-tab-pane");
57
59
  const _component_el_divider = resolveComponent("el-divider");
@@ -100,7 +102,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
100
102
  createElementVNode("div", _hoisted_3, [
101
103
  createVNode(_component_el_tabs, {
102
104
  modelValue: activeTabName.value,
103
- "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => activeTabName.value = $event),
105
+ "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => activeTabName.value = $event),
104
106
  class: "mk-cms-contents__body__right"
105
107
  }, {
106
108
  default: withCtx(() => [
@@ -138,6 +140,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
138
140
  }, 8, ["modelValue"])
139
141
  ]),
140
142
  _: 1
143
+ }),
144
+ createVNode(_component_el_form_item, { label: "兼容设备 : " }, {
145
+ default: withCtx(() => [
146
+ createVNode(_component_el_checkbox_group, {
147
+ modelValue: unref(CmsSettings).devices,
148
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(CmsSettings).devices = $event)
149
+ }, {
150
+ default: withCtx(() => [
151
+ createVNode(_component_el_checkbox, {
152
+ label: "PC端",
153
+ value: "pc"
154
+ }),
155
+ createVNode(_component_el_checkbox, {
156
+ label: "移动端",
157
+ value: "mobile"
158
+ })
159
+ ]),
160
+ _: 1
161
+ }, 8, ["modelValue"])
162
+ ]),
163
+ _: 1
141
164
  })
142
165
  ]),
143
166
  _: 1
@@ -165,7 +188,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
165
188
  default: withCtx(() => [
166
189
  createVNode(_component_el_switch, {
167
190
  modelValue: unref(CmsSettings).part.openBanner,
168
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(CmsSettings).part.openBanner = $event)
191
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(CmsSettings).part.openBanner = $event)
169
192
  }, null, 8, ["modelValue"])
170
193
  ]),
171
194
  _: 1
@@ -177,7 +200,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
177
200
  default: withCtx(() => [
178
201
  createVNode(_component_el_input, {
179
202
  modelValue: unref(CmsSettings).part.bannerImageSize,
180
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(CmsSettings).part.bannerImageSize = $event),
203
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => unref(CmsSettings).part.bannerImageSize = $event),
181
204
  placeholder: "",
182
205
  style: { "max-width": "200px" }
183
206
  }, null, 8, ["modelValue"])
@@ -197,7 +220,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
197
220
  default: withCtx(() => [
198
221
  createVNode(_component_el_input, {
199
222
  modelValue: unref(CmsSettings).part.doc.css,
200
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => unref(CmsSettings).part.doc.css = $event),
223
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(CmsSettings).part.doc.css = $event),
201
224
  autosize: { minRows: 2, maxRows: 4 },
202
225
  type: "textarea",
203
226
  placeholder: "多个css url , 号分割,逗号必须是英文逗号"
@@ -209,7 +232,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
209
232
  default: withCtx(() => [
210
233
  createVNode(_component_el_input, {
211
234
  modelValue: unref(CmsSettings).part.doc.js,
212
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(CmsSettings).part.doc.js = $event),
235
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => unref(CmsSettings).part.doc.js = $event),
213
236
  autosize: { minRows: 2, maxRows: 4 },
214
237
  type: "textarea",
215
238
  placeholder: "多个 js url , 号分割,逗号必须是英文逗号"
@@ -237,7 +260,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
237
260
  default: withCtx(() => [
238
261
  createVNode(_component_el_switch, {
239
262
  modelValue: unref(CmsSettings).content.useTop,
240
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => unref(CmsSettings).content.useTop = $event)
263
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => unref(CmsSettings).content.useTop = $event)
241
264
  }, null, 8, ["modelValue"])
242
265
  ]),
243
266
  _: 1
@@ -246,7 +269,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
246
269
  default: withCtx(() => [
247
270
  createVNode(_component_el_switch, {
248
271
  modelValue: unref(CmsSettings).content.useNew,
249
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => unref(CmsSettings).content.useNew = $event)
272
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => unref(CmsSettings).content.useNew = $event)
250
273
  }, null, 8, ["modelValue"])
251
274
  ]),
252
275
  _: 1
@@ -255,7 +278,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
255
278
  default: withCtx(() => [
256
279
  createVNode(_component_el_switch, {
257
280
  modelValue: unref(CmsSettings).content.useHotRecommend,
258
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => unref(CmsSettings).content.useHotRecommend = $event)
281
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => unref(CmsSettings).content.useHotRecommend = $event)
259
282
  }, null, 8, ["modelValue"])
260
283
  ]),
261
284
  _: 1
@@ -264,7 +287,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
264
287
  default: withCtx(() => [
265
288
  createVNode(_component_el_switch, {
266
289
  modelValue: unref(CmsSettings).content.usePartRecommend,
267
- "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => unref(CmsSettings).content.usePartRecommend = $event)
290
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => unref(CmsSettings).content.usePartRecommend = $event)
268
291
  }, null, 8, ["modelValue"])
269
292
  ]),
270
293
  _: 1
@@ -273,7 +296,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
273
296
  default: withCtx(() => [
274
297
  createVNode(_component_el_switch, {
275
298
  modelValue: unref(CmsSettings).content.useTags,
276
- "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => unref(CmsSettings).content.useTags = $event)
299
+ "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => unref(CmsSettings).content.useTags = $event)
277
300
  }, null, 8, ["modelValue"])
278
301
  ]),
279
302
  _: 1
@@ -282,7 +305,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
282
305
  default: withCtx(() => [
283
306
  createVNode(_component_el_switch, {
284
307
  modelValue: unref(CmsSettings).content.useAtlas,
285
- "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => unref(CmsSettings).content.useAtlas = $event)
308
+ "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => unref(CmsSettings).content.useAtlas = $event)
286
309
  }, null, 8, ["modelValue"])
287
310
  ]),
288
311
  _: 1
@@ -291,7 +314,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
291
314
  default: withCtx(() => [
292
315
  createVNode(_component_el_input, {
293
316
  modelValue: unref(CmsSettings).content.coverImageSize,
294
- "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => unref(CmsSettings).content.coverImageSize = $event),
317
+ "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => unref(CmsSettings).content.coverImageSize = $event),
295
318
  placeholder: "",
296
319
  style: { "max-width": "200px" }
297
320
  }, null, 8, ["modelValue"])
@@ -302,7 +325,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
302
325
  default: withCtx(() => [
303
326
  createVNode(_component_el_input, {
304
327
  modelValue: unref(CmsSettings).content.bannerImageSize,
305
- "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => unref(CmsSettings).content.bannerImageSize = $event),
328
+ "onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => unref(CmsSettings).content.bannerImageSize = $event),
306
329
  placeholder: "",
307
330
  style: { "max-width": "200px" }
308
331
  }, null, 8, ["modelValue"])
@@ -328,7 +351,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
328
351
  default: withCtx(() => [
329
352
  createVNode(_component_el_input, {
330
353
  modelValue: unref(CmsSettings).content.doc.css,
331
- "onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => unref(CmsSettings).content.doc.css = $event),
354
+ "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => unref(CmsSettings).content.doc.css = $event),
332
355
  autosize: { minRows: 2, maxRows: 4 },
333
356
  type: "textarea",
334
357
  placeholder: "多个css url , 号分割,逗号必须是英文逗号"
@@ -340,7 +363,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
340
363
  default: withCtx(() => [
341
364
  createVNode(_component_el_input, {
342
365
  modelValue: unref(CmsSettings).content.doc.js,
343
- "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => unref(CmsSettings).content.doc.js = $event),
366
+ "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => unref(CmsSettings).content.doc.js = $event),
344
367
  autosize: { minRows: 2, maxRows: 4 },
345
368
  type: "textarea",
346
369
  placeholder: "多个 js url , 号分割,逗号必须是英文逗号"
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-settigns/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-appsettings__warp\" v-loading=\"loading\" style=\"\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\">\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=\"Operation\" style=\"margin-right: 5px\" />\r\n CMS应用设置\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div>\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text :disabled=\"!changed\" @click=\"saveHandle\">\r\n <MKSvgIcon iconClass=\"save\" />\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-appsettings__form_warp\" style=\"\r\n background: #fff;\r\n flex: 1;\r\n height: 100%;\r\n padding: 10px;\r\n margin: 10px;\r\n overflow: auto;\r\n \">\r\n <el-tabs v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <el-tab-pane label=\"发布设置\" name=\"publish\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"发布模式 : \">\r\n <el-radio-group v-model=\"CmsSettings.publish.mode\">\r\n <el-radio value=\"static\">静态发布</el-radio>\r\n <el-radio value=\"dynamic\">动态发布</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-form>\r\n <!-- <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"文档模块 : \">\r\n <DocModuleEditForm :modules=\"CmsSettings.docModules\"></DocModuleEditForm>\r\n </el-form-item>\r\n </el-form> -->\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\">\r\n <el-divider content-position=\"left\">栏目内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"开启栏目轮播图 : \">\r\n <el-switch v-model=\"CmsSettings.part.openBanner\" />\r\n </el-form-item>\r\n\r\n <el-form-item v-if=\"CmsSettings.part.openBanner\" label=\"轮播图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.part.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n \r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.part.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.part.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"内容设置\" name=\"content\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"启用内容置顶 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTop\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用最新内容 : \">\r\n <el-switch v-model=\"CmsSettings.content.useNew\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用热门推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.useHotRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用栏目推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.usePartRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容标签 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTags\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容资源库 : \">\r\n <el-switch v-model=\"CmsSettings.content.useAtlas\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容封面图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.coverImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容Banner图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n \r\n <el-divider content-position=\"left\">内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.content.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.content.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref,onMounted,watch, } from \"vue\";\r\nimport { useCmsSettings,CmsSettingsKEY,type CmsSettingsType } from \"../../cms-settings\"\r\nimport { MsConfigTable } from \"../../../ms/dataviews/ms-config/\"\r\nimport DocModuleEditForm from \"./DocModuleEditForm.vue\"\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true); \r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"publish\");\r\n// 激活的tab\r\nconst loading = ref(false);\r\nconst changed = ref(false);\r\n\r\n\r\nconst saveHandle = async ()=>{\r\n\r\n if(changed.value){\r\n loading.value = true;\r\n await MsConfigTable.setConfigValue(CmsSettingsKEY,JSON.stringify(CmsSettings))\r\n loading.value = false;\r\n changed.value = false;\r\n }\r\n\r\n}\r\n\r\nonMounted(async ()=>{\r\n\r\n // 初始化\r\n const data = await MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY);\r\n if(data){ Object.assign(CmsSettings,data) }\r\n setTimeout(() => {\r\n loading.value = false;\r\n }, 500);\r\n // 数据改变\r\n watch(CmsSettings,()=>{\r\n changed.value = true;\r\n },{ deep:true })\r\n})\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyIM,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,gBAAgB,IAAI,SAAS;AAE7B,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,UAAU,IAAI,KAAK;AAGzB,UAAM,aAAa,YAAU;AAE3B,UAAG,QAAQ,OAAM;AACf,gBAAQ,QAAQ;AAChB,cAAM,cAAc,eAAe,gBAAe,KAAK,UAAU,WAAW,CAAC;AAC7E,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAIF,cAAU,YAAU;AAGlB,YAAM,OAAQ,MAAM,cAAc,eAAgC,cAAc;AAChF,UAAG,MAAK;AAAS,eAAA,OAAO,aAAY,IAAI;AAAA,MAAE;AAC1C,iBAAW,MAAM;AACf,gBAAQ,QAAQ;AAAA,SACf,GAAG;AAEN,YAAM,aAAY,MAAI;AACpB,gBAAQ,QAAQ;AAAA,MAAA,GAChB,EAAE,MAAK,KAAA,CAAM;AAAA,IAAA,CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-settigns/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-appsettings__warp\" v-loading=\"loading\" style=\"\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\">\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=\"Operation\" style=\"margin-right: 5px\" />\r\n CMS应用设置\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div>\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text :disabled=\"!changed\" @click=\"saveHandle\">\r\n <MKSvgIcon iconClass=\"save\" />\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-appsettings__form_warp\" style=\"\r\n background: #fff;\r\n flex: 1;\r\n height: 100%;\r\n padding: 10px;\r\n margin: 10px;\r\n overflow: auto;\r\n \">\r\n <el-tabs v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <el-tab-pane label=\"发布设置\" name=\"publish\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"发布模式 : \">\r\n <el-radio-group v-model=\"CmsSettings.publish.mode\">\r\n <el-radio value=\"static\">静态发布</el-radio>\r\n <el-radio value=\"dynamic\">动态发布</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"兼容设备 : \">\r\n <el-checkbox-group v-model=\"CmsSettings.devices\">\r\n <el-checkbox label=\"PC端\" value=\"pc\" />\r\n <el-checkbox label=\"移动端\" value=\"mobile\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-form>\r\n <!-- <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"文档模块 : \">\r\n <DocModuleEditForm :modules=\"CmsSettings.docModules\"></DocModuleEditForm>\r\n </el-form-item>\r\n </el-form> -->\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\">\r\n <el-divider content-position=\"left\">栏目内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"开启栏目轮播图 : \">\r\n <el-switch v-model=\"CmsSettings.part.openBanner\" />\r\n </el-form-item>\r\n\r\n <el-form-item v-if=\"CmsSettings.part.openBanner\" label=\"轮播图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.part.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n \r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.part.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.part.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"内容设置\" name=\"content\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"启用内容置顶 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTop\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用最新内容 : \">\r\n <el-switch v-model=\"CmsSettings.content.useNew\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用热门推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.useHotRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用栏目推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.usePartRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容标签 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTags\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容资源库 : \">\r\n <el-switch v-model=\"CmsSettings.content.useAtlas\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容封面图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.coverImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容Banner图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n \r\n <el-divider content-position=\"left\">内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.content.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.content.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref,onMounted,watch, } from \"vue\";\r\nimport { useCmsSettings,CmsSettingsKEY,type CmsSettingsType } from \"../../cms-settings\"\r\nimport { MsConfigTable } from \"../../../ms/dataviews/ms-config/\"\r\nimport DocModuleEditForm from \"./DocModuleEditForm.vue\"\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true); \r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"publish\");\r\n// 激活的tab\r\nconst loading = ref(false);\r\nconst changed = ref(false);\r\n\r\n\r\nconst saveHandle = async ()=>{\r\n\r\n if(changed.value){\r\n loading.value = true;\r\n await MsConfigTable.setConfigValue(CmsSettingsKEY,JSON.stringify(CmsSettings))\r\n loading.value = false;\r\n changed.value = false;\r\n }\r\n\r\n}\r\n\r\nonMounted(async ()=>{\r\n\r\n // 初始化\r\n const data = await MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY);\r\n if(data){ Object.assign(CmsSettings,data) }\r\n setTimeout(() => {\r\n loading.value = false;\r\n }, 500);\r\n // 数据改变\r\n watch(CmsSettings,()=>{\r\n changed.value = true;\r\n },{ deep:true })\r\n})\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA+IM,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,gBAAgB,IAAI,SAAS;AAE7B,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,UAAU,IAAI,KAAK;AAGzB,UAAM,aAAa,YAAU;AAE3B,UAAG,QAAQ,OAAM;AACf,gBAAQ,QAAQ;AAChB,cAAM,cAAc,eAAe,gBAAe,KAAK,UAAU,WAAW,CAAC;AAC7E,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAIF,cAAU,YAAU;AAGlB,YAAM,OAAQ,MAAM,cAAc,eAAgC,cAAc;AAChF,UAAG,MAAK;AAAS,eAAA,OAAO,aAAY,IAAI;AAAA,MAAE;AAC1C,iBAAW,MAAM;AACf,gBAAQ,QAAQ;AAAA,SACf,GAAG;AAEN,YAAM,aAAY,MAAI;AACpB,gBAAQ,QAAQ;AAAA,MAAA,GAChB,EAAE,MAAK,KAAA,CAAM;AAAA,IAAA,CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}