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