@maketribe/ms-app 3.2.37 → 3.2.39
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/core/nodes/RichElementNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js +8 -6
- package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +2 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +71 -2
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +8 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +12 -3
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesTable.js +3 -2
- package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesTable.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js +2 -4
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/nodes/RichElementNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js +9 -7
- package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +2 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +72 -3
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +10 -2
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/esm/modules/cms/components/part-tree/index.vue.js +12 -3
- package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesTable.js +3 -2
- package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesTable.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js +2 -4
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/commands.d.ts +4 -0
- package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +7 -0
- package/package.json +5 -6
|
@@ -229,7 +229,7 @@ const _CmsArticlesForm = class _CmsArticlesForm extends (_b = DataForm, _a = DAT
|
|
|
229
229
|
new FormColumn({
|
|
230
230
|
name: "isShowList",
|
|
231
231
|
label: "列表显示",
|
|
232
|
-
defaultValue:
|
|
232
|
+
defaultValue: 1,
|
|
233
233
|
componentInfo: "MKFormRadioBox",
|
|
234
234
|
componentProps: {
|
|
235
235
|
options: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsArticlesForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-articles/CmsArticlesForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn, FormDetailColumn } from \"@maketribe/dm\";\r\nimport { CmsPartTree } from \"../cms-parts/CmsPartTree\";\r\nimport { CmsTagsForm, CmsTagsTable } from \"../cms-tags\";\r\nimport { CmsArticleAtlasForm, CmsArticleAtlasTable } from \"./cms-article-atlas\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MaterialUploadContext } from \"../../../ms\";\r\nimport { html } from \"@codemirror/lang-html\";\r\nimport { ResponseConfig, R } from \"@maketribe/request\";\r\nimport { MSAppClient } from \"../../../../core\";\r\n\r\nexport class CmsArticlesForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"article\";\r\n\r\n\tconstructor(options: DataFormOptions = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsArticlesForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t}\r\n\tprotected loadRequest(paramsOrID: Record<string, any>): Promise<ResponseConfig<R<any>, any>> {\r\n\t\treturn super.loadDetailRequest(paramsOrID);\r\n\t}\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\tthis.setColumns([\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"cmsPartId\",\r\n\t\t\t\tlabel: \"所属栏目\",\r\n\t\t\t\t// componentInfo: \"MKFormDataTableSelect\",\r\n\t\t\t\tcomponentInfo: \"MKDataTreeSelect\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tlabelFieldName: \"name\",\r\n\t\t\t\t\tdataTree: this.register(new CmsPartTree()),\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"title\",\r\n\t\t\t\tlabel: \"标题\",\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"subTitle\",\r\n\t\t\t\tlabel: \"子标题\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"cover\",\r\n\t\t\t\tlabel: \"封面图\",\r\n\t\t\t\tcomponentInfo: \"MKFormImageUpload\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tuploadContext: new MaterialUploadContext({\r\n\t\t\t\t\t\tallowMaterialTypeValues: [1],\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"banner\",\r\n\t\t\t\tlabel: \"文字banner\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"desc\",\r\n\t\t\t\tlabel: \"文章描述\",\r\n\t\t\t\tcomponentInfo:\"MKFormInput\",\r\n\t\t\t\tcomponentProps:{\r\n\t\t\t\t\ttype:\"textarea\",\r\n\t\t\t\t\trow:3\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"seoKeywords\",\r\n\t\t\t\tlabel: \"SEO 关键词\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"seoDesc\",\r\n\t\t\t\tlabel: \"SEO 页面描述\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"releaseDate\",\r\n\t\t\t\tlabel: \"发布日期\",\r\n\t\t\t\tcomponentInfo: \"MKFormDatePicker\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"author\",\r\n\t\t\t\tlabel: \"作者\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"locationDesc\",\r\n\t\t\t\tlabel: \"地址描述\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"tags\",\r\n\t\t\t\tlabel: \"标签\",\r\n\t\t\t\tcomponentInfo: \"MKFormDataTableSelect\",\r\n\t\t\t\tdefaultValue: [],\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tobjectValue: true,\r\n\t\t\t\t\tdataTable: this.register(new CmsTagsTable()),\r\n\t\t\t\t\tdataForm: this.register(new CmsTagsForm()),\r\n\t\t\t\t\tlabelFieldName: \"tag\",\r\n\t\t\t\t\tmultiple: true,\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"sortNo\",\r\n\t\t\t\tlabel: \"排序序号\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isNew\",\r\n\t\t\t\tlabel: \"最新\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isTop\",\r\n\t\t\t\tlabel: \"置顶\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isHotRecommend\",\r\n\t\t\t\tlabel: \"热点推荐\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isPartRecommend\",\r\n\t\t\t\tlabel: \"栏目推荐\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isDraft\",\r\n\t\t\t\tlabel: \"草稿\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isShowList\",\r\n\t\t\t\tlabel: \"列表显示\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"downloadPath\",\r\n\t\t\t\tlabel: \"附件链接\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"content\",\r\n\t\t\t\tlabel: \"内容\",\r\n\t\t\t\t// componentInfo: \"MKFormRichTextEditor\",\r\n\t\t\t\tcomponentInfo: \"MKCodeEditor\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\textensions: [html()],\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\r\n\t\t\tnew FormDetailColumn({\r\n\t\t\t\tname: \"atlas\",\r\n\t\t\t\tlabel: \"文章图集\",\r\n\t\t\t\tassociationFieldName: \"cmsArticleId\",\r\n\t\t\t\tdefaultValue: [],\r\n\t\t\t\tdetailForm: this.register(new CmsArticleAtlasForm()),\r\n\t\t\t\tdetailTable: this.register(new CmsArticleAtlasTable()),\r\n\t\t\t}),\r\n\t\t]);\r\n\t}\r\n\r\n\tformatSubmitData(data: any) {\r\n\t\tObject.keys(data).forEach((key) => {\r\n\t\t\tif (data[key] === \"\") {\r\n\t\t\t\tdata[key] = null;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdata.sortNo -= 0;\r\n\r\n\t\treturn data;\r\n\t}\r\n\tsetData(data: any): void {\r\n\t\tsuper.setData(data);\r\n\t}\r\n\r\n /**\r\n * 发布\r\n */\r\n static async publish(mode:string,partId:string,id:string){\r\n \r\n if(mode == \"dynamic\"){\r\n // 调用发布接口\r\n return await MSAppClient!.instance?.httpRequest.post(`${MODULE_NAME}/content/publish/content-dynamic`, {\r\n partId: partId, contentIds: [ id ]\r\n });\r\n }\r\n else{\r\n // 调用发布接口\r\n return await MSAppClient!.instance?.httpRequest.post(`${MODULE_NAME}/content/publish/content`, {\r\n partId: partId, contentIds: [ id ]\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 保存并发布发布\r\n */\r\n async saveAndPublish(mode:string){\r\n\r\n const partId = this.data.cmsPartId;\r\n const id = this.data.id;\r\n\r\n let result:any = await this.submit()\r\n\r\n if(result.data.code == 200){\r\n result = await CmsArticlesForm.publish(mode,partId,id)\r\n }\r\n \r\n return result\r\n }\r\n}\r\n"],"names":["_a","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmsArticlesForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-articles/CmsArticlesForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn, FormDetailColumn } from \"@maketribe/dm\";\r\nimport { CmsPartTree } from \"../cms-parts/CmsPartTree\";\r\nimport { CmsTagsForm, CmsTagsTable } from \"../cms-tags\";\r\nimport { CmsArticleAtlasForm, CmsArticleAtlasTable } from \"./cms-article-atlas\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MaterialUploadContext } from \"../../../ms\";\r\nimport { html } from \"@codemirror/lang-html\";\r\nimport { ResponseConfig, R } from \"@maketribe/request\";\r\nimport { MSAppClient } from \"../../../../core\";\r\n\r\nexport class CmsArticlesForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"article\";\r\n\r\n\tconstructor(options: DataFormOptions = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsArticlesForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t}\r\n\tprotected loadRequest(paramsOrID: Record<string, any>): Promise<ResponseConfig<R<any>, any>> {\r\n\t\treturn super.loadDetailRequest(paramsOrID);\r\n\t}\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\tthis.setColumns([\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"cmsPartId\",\r\n\t\t\t\tlabel: \"所属栏目\",\r\n\t\t\t\t// componentInfo: \"MKFormDataTableSelect\",\r\n\t\t\t\tcomponentInfo: \"MKDataTreeSelect\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tlabelFieldName: \"name\",\r\n\t\t\t\t\tdataTree: this.register(new CmsPartTree()),\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"title\",\r\n\t\t\t\tlabel: \"标题\",\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"subTitle\",\r\n\t\t\t\tlabel: \"子标题\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"cover\",\r\n\t\t\t\tlabel: \"封面图\",\r\n\t\t\t\tcomponentInfo: \"MKFormImageUpload\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tuploadContext: new MaterialUploadContext({\r\n\t\t\t\t\t\tallowMaterialTypeValues: [1],\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"banner\",\r\n\t\t\t\tlabel: \"文字banner\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"desc\",\r\n\t\t\t\tlabel: \"文章描述\",\r\n\t\t\t\tcomponentInfo: \"MKFormInput\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\ttype: \"textarea\",\r\n\t\t\t\t\trow: 3\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"seoKeywords\",\r\n\t\t\t\tlabel: \"SEO 关键词\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"seoDesc\",\r\n\t\t\t\tlabel: \"SEO 页面描述\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"releaseDate\",\r\n\t\t\t\tlabel: \"发布日期\",\r\n\t\t\t\tcomponentInfo: \"MKFormDatePicker\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"author\",\r\n\t\t\t\tlabel: \"作者\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"locationDesc\",\r\n\t\t\t\tlabel: \"地址描述\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"tags\",\r\n\t\t\t\tlabel: \"标签\",\r\n\t\t\t\tcomponentInfo: \"MKFormDataTableSelect\",\r\n\t\t\t\tdefaultValue: [],\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tobjectValue: true,\r\n\t\t\t\t\tdataTable: this.register(new CmsTagsTable()),\r\n\t\t\t\t\tdataForm: this.register(new CmsTagsForm()),\r\n\t\t\t\t\tlabelFieldName: \"tag\",\r\n\t\t\t\t\tmultiple: true,\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"sortNo\",\r\n\t\t\t\tlabel: \"排序序号\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isNew\",\r\n\t\t\t\tlabel: \"最新\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isTop\",\r\n\t\t\t\tlabel: \"置顶\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isHotRecommend\",\r\n\t\t\t\tlabel: \"热点推荐\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isPartRecommend\",\r\n\t\t\t\tlabel: \"栏目推荐\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isDraft\",\r\n\t\t\t\tlabel: \"草稿\",\r\n\t\t\t\tdefaultValue: 0,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"isShowList\",\r\n\t\t\t\tlabel: \"列表显示\",\r\n\t\t\t\tdefaultValue: 1,\r\n\t\t\t\tcomponentInfo: \"MKFormRadioBox\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ label: \"是\", value: 1 },\r\n\t\t\t\t\t\t{ label: \"否\", value: 0 },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t\trequired: true,\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"downloadPath\",\r\n\t\t\t\tlabel: \"附件链接\",\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"content\",\r\n\t\t\t\tlabel: \"内容\",\r\n\t\t\t\t// componentInfo: \"MKFormRichTextEditor\",\r\n\t\t\t\tcomponentInfo: \"MKCodeEditor\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\textensions: [html()],\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\r\n\t\t\tnew FormDetailColumn({\r\n\t\t\t\tname: \"atlas\",\r\n\t\t\t\tlabel: \"文章图集\",\r\n\t\t\t\tassociationFieldName: \"cmsArticleId\",\r\n\t\t\t\tdefaultValue: [],\r\n\t\t\t\tdetailForm: this.register(new CmsArticleAtlasForm()),\r\n\t\t\t\tdetailTable: this.register(new CmsArticleAtlasTable()),\r\n\t\t\t}),\r\n\t\t]);\r\n\t}\r\n\r\n\tformatSubmitData(data: any) {\r\n\t\tObject.keys(data).forEach((key) => {\r\n\t\t\tif (data[key] === \"\") {\r\n\t\t\t\tdata[key] = null;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdata.sortNo -= 0;\r\n\r\n\t\treturn data;\r\n\t}\r\n\tsetData(data: any): void {\r\n\t\tsuper.setData(data);\r\n\t}\r\n\r\n\t/**\r\n\t * 发布\r\n\t */\r\n\tstatic async publish(mode: string, partId: string, id: string) {\r\n\r\n\t\tif (mode == \"dynamic\") {\r\n\t\t\t// 调用发布接口\r\n\t\t\treturn await MSAppClient!.instance?.httpRequest.post(`${MODULE_NAME}/content/publish/content-dynamic`, {\r\n\t\t\t\tpartId: partId, contentIds: [id]\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// 调用发布接口\r\n\t\t\treturn await MSAppClient!.instance?.httpRequest.post(`${MODULE_NAME}/content/publish/content`, {\r\n\t\t\t\tpartId: partId, contentIds: [id]\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * 保存并发布发布\r\n\t */\r\n\tasync saveAndPublish(mode: string) {\r\n\r\n\t\tconst partId = this.data.cmsPartId;\r\n\t\tconst id = this.data.id;\r\n\r\n\t\tlet result: any = await this.submit()\r\n\r\n\t\tif (result.data.code == 200) {\r\n\t\t\tresult = await CmsArticlesForm.publish(mode, partId, id)\r\n\t\t}\r\n\r\n\t\treturn result\r\n\t}\r\n}\r\n"],"names":["_a","_b"],"mappings":"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"}
|
|
@@ -23,9 +23,10 @@ const _CmsArticlesTable = class _CmsArticlesTable extends (_b = DataTable, _a =
|
|
|
23
23
|
var _a2, _b2, _c, _d;
|
|
24
24
|
await super.initialize();
|
|
25
25
|
try {
|
|
26
|
-
this.sorter.setColumnSort("
|
|
27
|
-
this.sorter.setColumnSort("isTop", OrderType.DESC);
|
|
26
|
+
this.sorter.setColumnSort("releaseDate", OrderType.DESC);
|
|
28
27
|
this.sorter.setColumnSort("isNew", OrderType.DESC);
|
|
28
|
+
this.sorter.setColumnSort("isTop", OrderType.DESC);
|
|
29
|
+
console.log(this.sorter.sortItems);
|
|
29
30
|
this.dataFilter.setColumns([
|
|
30
31
|
new FilterColumn({ name: "title", label: "标题", search: true }),
|
|
31
32
|
new FilterColumn({ name: "subTitle", label: "子标题" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsArticlesTable.js","sources":["../../../../../../src/modules/cms/dataviews/cms-articles/CmsArticlesTable.ts"],"sourcesContent":["import { DataTable, DataTableOptions, FilterColumn, TableActionColumn, TableColumn } from \"@maketribe/dm\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MSAppClient } from \"../../../../core\";\r\nimport {
|
|
1
|
+
{"version":3,"file":"CmsArticlesTable.js","sources":["../../../../../../src/modules/cms/dataviews/cms-articles/CmsArticlesTable.ts"],"sourcesContent":["import { DataTable, DataTableOptions, FilterColumn, TableActionColumn, TableColumn } from \"@maketribe/dm\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\nimport { MSAppClient } from \"../../../../core\";\r\nimport { OrderType } from \"@maketribe/request\";\r\n\r\nexport class CmsArticlesTable extends DataTable {\r\n\tstatic [DATA_MODEL_NAME]: string = \"article\";\r\n\r\n\tconstructor(options: Omit<DataTableOptions, \"name\"> = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsArticlesTable[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t}\r\n\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\ttry {\r\n\t\t\tthis.sorter.setColumnSort(\"releaseDate\", OrderType.DESC)\r\n\t\t\tthis.sorter.setColumnSort(\"isNew\", OrderType.DESC);\r\n\t\t\tthis.sorter.setColumnSort(\"isTop\", OrderType.DESC);\r\n\r\n\t\t\tconsole.log(this.sorter.sortItems)\r\n\r\n\t\t\tthis.dataFilter.setColumns([\r\n\t\t\t\tnew FilterColumn({ name: \"title\", label: \"标题\", search: true }),\r\n\t\t\t\tnew FilterColumn({ name: \"subTitle\", label: \"子标题\" }),\r\n\t\t\t\tnew FilterColumn({ name: \"desc\", label: \"简介\" })\r\n\t\t\t]);\r\n\r\n\t\t\tif ((MSAppClient.instance?.vueRouter.currentRoute as any)?.query?.cmsPartId) {\r\n\t\t\t\tthis.dataFilter.setParam(\"cmsPartId\", (MSAppClient.instance?.vueRouter.currentRoute as any).query.cmsPartId);\r\n\t\t\t}\r\n\t\t\tthis.setColumns([\r\n\t\t\t\tnew TableColumn({ name: \"title\", label: \"标题\" }),\r\n\t\t\t\tnew TableColumn({ name: \"subTitle\", label: \"子标题\" }),\r\n\t\t\t\tnew TableColumn({ name: \"desc\", label: \"描述\" }),\r\n\t\t\t\tnew TableColumn({ name: \"cover\", label: \"封面图\", componentInfo: \"MKColumnImage\" }),\r\n\t\t\t\t// nwe TableColumn({ name: \"T\", label: \"内容\" }),\r\n\t\t\t\tnew TableColumn({ name: \"publishTime\", label: \"发表日期\" }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isNew\",\r\n\t\t\t\t// label: \"是否是新的\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isTop\",\r\n\t\t\t\t// label: \"是否置顶\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isHotRecommend\",\r\n\t\t\t\t// label: \"是否热点推荐\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isPartRecommend\",\r\n\t\t\t\t// label: \"是否栏目推荐\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isDraft\",\r\n\t\t\t\t// label: \"是否是草稿\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\t// new TableColumn({\r\n\t\t\t\t// name: \"isShowList\",\r\n\t\t\t\t// label: \"是否列表显示\",\r\n\t\t\t\t// componentInfo: \"MKColumnObjectMappingText\",\r\n\t\t\t\t// componentProps: {\r\n\t\t\t\t// mapping: [\"否\", \"是\"],\r\n\t\t\t\t// },\r\n\t\t\t\t// }),\r\n\t\t\t\tnew TableColumn({ name: \"sortNo\", label: \"排序\" }),\r\n\t\t\t\tnew TableActionColumn(),\r\n\t\t\t]);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t\t//筛选\r\n\t}\r\n}\r\n"],"names":["_b","_a"],"mappings":";;;;;;;;;;;;;AAMO,MAAM,oBAAN,MAAM,2BAAyB,gBAC7B,sBAD6B,IAAU;AAAA,EAG/C,YAAY,UAA0C,IAAI;AACnD,UAAA;AAAA,MACL,MAAM,kBAAiB,eAAe;AAAA,MACtC,YAAY;AAAA,MACZ,GAAG;AAAA,IAAA,CACH;AAAA,EACF;AAAA,EAEA,MAAgB,aAAa;;AAC5B,UAAM,MAAM;AACR,QAAA;AACH,WAAK,OAAO,cAAc,eAAe,UAAU,IAAI;AACvD,WAAK,OAAO,cAAc,SAAS,UAAU,IAAI;AACjD,WAAK,OAAO,cAAc,SAAS,UAAU,IAAI;AAEzC,cAAA,IAAI,KAAK,OAAO,SAAS;AAEjC,WAAK,WAAW,WAAW;AAAA,QAC1B,IAAI,aAAa,EAAE,MAAM,SAAS,OAAO,MAAM,QAAQ,MAAM;AAAA,QAC7D,IAAI,aAAa,EAAE,MAAM,YAAY,OAAO,OAAO;AAAA,QACnD,IAAI,aAAa,EAAE,MAAM,QAAQ,OAAO,MAAM;AAAA,MAAA,CAC9C;AAED,WAAK,MAAAA,OAAAC,MAAA,YAAY,aAAZ,gBAAAA,IAAsB,UAAU,iBAAhC,gBAAAD,IAAsD,UAAtD,mBAA6D,WAAW;AACvE,aAAA,WAAW,SAAS,eAAc,iBAAY,aAAZ,mBAAsB,UAAU,cAAqB,MAAM,SAAS;AAAA,MAC5G;AACA,WAAK,WAAW;AAAA,QACf,IAAI,YAAY,EAAE,MAAM,SAAS,OAAO,MAAM;AAAA,QAC9C,IAAI,YAAY,EAAE,MAAM,YAAY,OAAO,OAAO;AAAA,QAClD,IAAI,YAAY,EAAE,MAAM,QAAQ,OAAO,MAAM;AAAA,QAC7C,IAAI,YAAY,EAAE,MAAM,SAAS,OAAO,OAAO,eAAe,iBAAiB;AAAA;AAAA,QAE/E,IAAI,YAAY,EAAE,MAAM,eAAe,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAiDtD,IAAI,YAAY,EAAE,MAAM,UAAU,OAAO,MAAM;AAAA,QAC/C,IAAI,kBAAkB;AAAA,MAAA,CACtB;AAAA,aACO,GAAG;AACX,cAAQ,MAAM,CAAC;AAAA,IAChB;AAAA,EAED;AACD;AA3FC,cADY,mBACJ,IAA2B;AAD7B,IAAM,mBAAN;"}
|
|
@@ -276,7 +276,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
276
276
|
]),
|
|
277
277
|
article.releaseDate ? (openBlock(), createElementBlock("div", _hoisted_12, [
|
|
278
278
|
createVNode(_component_MKSvgIcon, { iconClass: "Timer" }),
|
|
279
|
-
createTextVNode("
|
|
279
|
+
createTextVNode(" 新闻日期 : " + toDisplayString(article.releaseDate), 1)
|
|
280
280
|
])) : createCommentVNode("", true)
|
|
281
281
|
]),
|
|
282
282
|
createElementVNode("div", _hoisted_13, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-list.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/article-list.vue"],"sourcesContent":["<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"top\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"tags\">\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useTop && article.isTop == 1\"\r\n @click=\"changeArticleStatus(article, 'isTop', 0)\">置顶</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useNew && article.isNew == 1\"\r\n @click=\"changeArticleStatus(article, 'isNew', 0)\">最新</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 0)\">热门推荐</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 0)\">栏目推荐</el-tag>\r\n </div>\r\n </div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon>\r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\" v-if=\"article.releaseDate\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon>\r\n 发布时间 : {{ article.releaseDate }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <!-- <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a> -->\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\"\r\n v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-dropdown>\r\n <el-button type=\"primary\" size=\"large\" text>\r\n 更多\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static' && article.url\">\r\n <a style=\"text-decoration: none;color: #606266;\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\"\r\n target=\"_blank\">\r\n 访问\r\n </a>\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useTop && article.isTop == 0\"\r\n @click=\"changeArticleStatus(article, 'isTop', 1)\">设为置顶</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useNew && article.isNew == 0\"\r\n @click=\"changeArticleStatus(article, 'isNew', 1)\">设为最新</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 1)\">设为热门推荐</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 1)\">设为栏目推荐</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable, CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch, onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n//改变文章指定,最新,推荐状态\r\nconst changeArticleStatus = async (article: any, item: string, status: number) => {\r\n const text: Record<string, string[]> = {\r\n \"isTop\": ['取消置顶', '设为置顶'],\r\n \"isNew\": ['取消最新', '设为最新'],\r\n \"isHotRecommend\": ['取消热门推荐', '设为热门推荐'],\r\n \"isPartRecommend\": ['取消栏目推荐', '设为栏目推荐'],\r\n }\r\n\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"修改文章状态\",\r\n message: `是否${text[item][status]}?`,\r\n type: \"warning\"\r\n })\r\n if (!isConfirm) {\r\n return\r\n }\r\n try {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n await articleForm.editRecord(article.id)\r\n const isSuccess = await articleForm.simpleSubmit({\r\n id: article.id,\r\n [item]: status\r\n })\r\n\r\n if (isSuccess) {\r\n articlesDv.load();\r\n }\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n\r\n\r\n}\r\n\r\n// 初始化\r\nonMounted(() => {\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n \r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response: any = await CmsArticlesForm.publish(CmsSettings.publish.mode, article.cmsPartId, article.id);\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\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"article-list.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/article-list.vue"],"sourcesContent":["<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"top\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"tags\">\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useTop && article.isTop == 1\"\r\n @click=\"changeArticleStatus(article, 'isTop', 0)\">置顶</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useNew && article.isNew == 1\"\r\n @click=\"changeArticleStatus(article, 'isNew', 0)\">最新</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 0)\">热门推荐</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 0)\">栏目推荐</el-tag>\r\n </div>\r\n </div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon>\r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\" v-if=\"article.releaseDate\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon>\r\n 新闻日期 : {{ article.releaseDate }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <!-- <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a> -->\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\"\r\n v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-dropdown>\r\n <el-button type=\"primary\" size=\"large\" text>\r\n 更多\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static' && article.url\">\r\n <a style=\"text-decoration: none;color: #606266;\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\"\r\n target=\"_blank\">\r\n 访问\r\n </a>\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useTop && article.isTop == 0\"\r\n @click=\"changeArticleStatus(article, 'isTop', 1)\">设为置顶</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useNew && article.isNew == 0\"\r\n @click=\"changeArticleStatus(article, 'isNew', 1)\">设为最新</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 1)\">设为热门推荐</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 1)\">设为栏目推荐</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable, CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch, onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n//改变文章指定,最新,推荐状态\r\nconst changeArticleStatus = async (article: any, item: string, status: number) => {\r\n const text: Record<string, string[]> = {\r\n \"isTop\": ['取消置顶', '设为置顶'],\r\n \"isNew\": ['取消最新', '设为最新'],\r\n \"isHotRecommend\": ['取消热门推荐', '设为热门推荐'],\r\n \"isPartRecommend\": ['取消栏目推荐', '设为栏目推荐'],\r\n }\r\n\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"修改文章状态\",\r\n message: `是否${text[item][status]}?`,\r\n type: \"warning\"\r\n })\r\n if (!isConfirm) {\r\n return\r\n }\r\n try {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n await articleForm.editRecord(article.id)\r\n const isSuccess = await articleForm.simpleSubmit({\r\n id: article.id,\r\n [item]: status\r\n })\r\n\r\n if (isSuccess) {\r\n articlesDv.load();\r\n }\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n\r\n\r\n}\r\n\r\n// 初始化\r\nonMounted(() => {\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n \r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response: any = await CmsArticlesForm.publish(CmsSettings.publish.mode, article.cmsPartId, article.id);\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\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,6 @@ const RichTextEditor = /* @__PURE__ */ defineComponent({
|
|
|
33
33
|
//"undo redo | styles | fontfamily | fontsize forecolor | bold italic underline strikethrough | alignleft aligncenter alignright | material | outdent indent | link | table | hr | removeformat | code fullscreen"
|
|
34
34
|
toolbar: props.toolbar,
|
|
35
35
|
inline: props.inline,
|
|
36
|
-
forced_root_block: " ",
|
|
37
36
|
valid_elements: "*[*]",
|
|
38
37
|
// 允许所有元素和属性
|
|
39
38
|
extended_valid_elements: "script[src|async|defer|type|charset]",
|
|
@@ -49,7 +48,6 @@ const RichTextEditor = /* @__PURE__ */ defineComponent({
|
|
|
49
48
|
language: "zh-Hans",
|
|
50
49
|
skin_url: "ms",
|
|
51
50
|
content_css: "ms",
|
|
52
|
-
end_container_on_empty_block: ">",
|
|
53
51
|
content_style: contentStyle,
|
|
54
52
|
// quickbars_insert_toolbar: 'image',
|
|
55
53
|
// quickbars_selection_toolbar: 'forecolor backcolor fontsize | bold italic underline | fontfamily',
|
|
@@ -78,9 +76,9 @@ const RichTextEditor = /* @__PURE__ */ defineComponent({
|
|
|
78
76
|
watch(computed(() => props.modelValue), (modelValue) => {
|
|
79
77
|
for (const instance2 of tinymceInstance) {
|
|
80
78
|
if (instance2.getContent() !== modelValue) {
|
|
81
|
-
instance2.setContent(modelValue || "<
|
|
79
|
+
instance2.setContent(modelValue || "<div></div");
|
|
82
80
|
} else if (!modelValue) {
|
|
83
|
-
instance2.setContent("<
|
|
81
|
+
instance2.setContent("<div></div>");
|
|
84
82
|
}
|
|
85
83
|
}
|
|
86
84
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.js","sources":["../../../../../../src/modules/ms/components/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["import { Ref, computed, defineComponent, getCurrentInstance, onBeforeUnmount, onMounted, ref, unref, watch, withCtx } from \"vue\";\r\nimport { MKMaterialSelect } from \"../material-select\";\r\nimport TinyMCE from \"tinymce\";\r\nimport \"tinymce/themes/silver/theme.js\";\r\nimport \"tinymce/models/dom/model.min.js\";\r\nimport \"tinymce/icons/default/icons.min.js\";\r\nimport \"tinymce/plugins/link\";\r\n// import \"tinymce/plugins/table\";\r\nimport \"tinymce/plugins/fullscreen\";\r\nimport \"tinymce/plugins/code\";\r\n// import \"tinymce/plugins/image\";\r\nimport \"tinymce/plugins/quickbars\";\r\nimport \"tinymce/plugins/lists\";\r\nimport \"./langs/zh-Hans.js\";\r\n\r\nimport \"./skins/ui/ms/skin.js\";\r\nimport \"./skins/ui/ms/content.js\";\r\nimport \"./skins/content/ms/content.js\";\r\n\r\nimport contentStyle from \"./content.css?raw\";\r\n\r\nimport { richTextEditorEmits, richTextEditorProps } from \"./rich-text-editor-options\";\r\n\r\nexport default defineComponent({\r\n\tname: \"MKRichTextEditor\",\r\n\tprops: richTextEditorProps,\r\n\temits: richTextEditorEmits,\r\n\tsetup(props, { emit }) {\r\n\t\tconst richTextEditorEl: Ref<HTMLElement | null> = ref(null);\r\n\r\n\t\tconst instance = getCurrentInstance();\r\n\r\n // 这个方法暂时没用上\r\n\t\t// function escapeHtml(text: string) {\r\n\t\t// \treturn text.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\r\n\t\t// }\r\n\r\n\t\tonMounted(async () => {\r\n\t\t\tconst tinymceInstance = await TinyMCE.init({\r\n\t\t\t\ttarget: unref(richTextEditorEl)!,\r\n\t\t\t\tpromotion: false, \r\n menubar: false,\r\n\t\t\t\tplugins:props.plugins,\r\n //\"undo redo | styles | fontfamily | fontsize forecolor | bold italic underline strikethrough | alignleft aligncenter alignright | material | outdent indent | link | table | hr | removeformat | code fullscreen\"\r\n toolbar: props.toolbar,\r\n inline: props.inline,\r\n\t\t\t\
|
|
1
|
+
{"version":3,"file":"rich-text-editor.js","sources":["../../../../../../src/modules/ms/components/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["import { Ref, computed, defineComponent, getCurrentInstance, onBeforeUnmount, onMounted, ref, unref, watch, withCtx } from \"vue\";\r\nimport { MKMaterialSelect } from \"../material-select\";\r\nimport TinyMCE from \"tinymce\";\r\nimport \"tinymce/themes/silver/theme.js\";\r\nimport \"tinymce/models/dom/model.min.js\";\r\nimport \"tinymce/icons/default/icons.min.js\";\r\nimport \"tinymce/plugins/link\";\r\n// import \"tinymce/plugins/table\";\r\nimport \"tinymce/plugins/fullscreen\";\r\nimport \"tinymce/plugins/code\";\r\n// import \"tinymce/plugins/image\";\r\nimport \"tinymce/plugins/quickbars\";\r\nimport \"tinymce/plugins/lists\";\r\nimport \"./langs/zh-Hans.js\";\r\n\r\nimport \"./skins/ui/ms/skin.js\";\r\nimport \"./skins/ui/ms/content.js\";\r\nimport \"./skins/content/ms/content.js\";\r\n\r\nimport contentStyle from \"./content.css?raw\";\r\n\r\nimport { richTextEditorEmits, richTextEditorProps } from \"./rich-text-editor-options\";\r\n\r\nexport default defineComponent({\r\n\tname: \"MKRichTextEditor\",\r\n\tprops: richTextEditorProps,\r\n\temits: richTextEditorEmits,\r\n\tsetup(props, { emit }) {\r\n\t\tconst richTextEditorEl: Ref<HTMLElement | null> = ref(null);\r\n\r\n\t\tconst instance = getCurrentInstance();\r\n\r\n // 这个方法暂时没用上\r\n\t\t// function escapeHtml(text: string) {\r\n\t\t// \treturn text.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\r\n\t\t// }\r\n\r\n\t\tonMounted(async () => {\r\n\t\t\tconst tinymceInstance = await TinyMCE.init({\r\n\t\t\t\ttarget: unref(richTextEditorEl)!,\r\n\t\t\t\tpromotion: false, \r\n menubar: false,\r\n\t\t\t\tplugins:props.plugins,\r\n //\"undo redo | styles | fontfamily | fontsize forecolor | bold italic underline strikethrough | alignleft aligncenter alignright | material | outdent indent | link | table | hr | removeformat | code fullscreen\"\r\n toolbar: props.toolbar,\r\n inline: props.inline,\r\n\t\t\t\tvalid_elements: \"*[*]\", // 允许所有元素和属性\r\n\t\t\t\textended_valid_elements: \"script[src|async|defer|type|charset]\", // 允许 script 标签的特定属性\r\n\t\t\t\tcustom_elements: \"~script\", // 允许自定义标签\r\n\t\t\t\tvalid_children: \"+body[script]\", // 允许 body 包含 script 标签\r\n\t\t\t\tcleanup: false,\r\n\t\t\t\tapply_source_formatting: false,\r\n\t\t\t\tverify_html: false,\r\n\t\t\t\tfont_family_formats:\r\n\t\t\t\t\t\"微软雅黑='微软雅黑';宋体='宋体';黑体='黑体';仿宋='仿宋';楷体='楷体';隶书='隶书';幼圆='幼圆';Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings\",\r\n\t\t\t\tlanguage: \"zh-Hans\",\r\n skin_url:\"ms\",\r\n content_css:\"ms\", \r\n content_style:contentStyle,\r\n // quickbars_insert_toolbar: 'image',\r\n // quickbars_selection_toolbar: 'forecolor backcolor fontsize | bold italic underline | fontfamily',\r\n // powerpaste_word_import: 'clean',\r\n // powerpaste_html_import: 'clean',\r\n\t\t\t\tsetup: (editor) => {\r\n\t\t\t\t\t\r\n\t\t\t\t\teditor.on(\"change\", function () {\r\n\t\t\t\t\t\t// console.log(\"Content changed:\", editor.getContent());\r\n\t\t\t\t\t});\r\n\t\t\t\t\teditor.ui.registry.addButton(\"material\", {\r\n\t\t\t\t\t\ticon: \"image\",\r\n\t\t\t\t\t\tonAction: async () => {\r\n\t\t\t\t\t\t\tconst response = await MKMaterialSelect();\r\n\t\t\t\t\t\t\tif (!response.success) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\teditor.insertContent(`<img src=\"${response.path}\" alt=\"${response.data!.id}\">`);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t\teditor.on(\"paste\", (event, ...args) => {\r\n\t\t\t\t\t\t// console.log(event, ...args);\r\n\t\t\t\t\t});\r\n\t\t\t\t\teditor.on(\"change input undo redo\", () => {\r\n\t\t\t\t\t\temit(\"update:model-value\", editor.getContent());\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\twatch(\r\n\t\t\t\tcomputed(() => props.modelValue),\r\n\t\t\t\t(modelValue) => {\r\n\t\t\t\t\tfor (const instance of tinymceInstance) {\r\n\t\t\t\t\t\tif (instance.getContent() !== modelValue) {\r\n\t\t\t\t\t\t\tinstance.setContent(modelValue || \"<div></div\");\r\n\t\t\t\t\t\t}\r\n else if(!modelValue){\r\n instance.setContent(\"<div></div>\");\r\n }\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{ immediate: true }\r\n\t\t\t);\r\n\t\t\twatch(\r\n\t\t\t\tcomputed(() => props.disabled),\r\n\t\t\t\t(disabled) => {\r\n\t\t\t\t\tfor (const instance of tinymceInstance) {\r\n\t\t\t\t\t\tinstance.mode.set(disabled ? \"readonly\" : \"design\");\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{ immediate: true }\r\n\t\t\t);\r\n\r\n\t\t\twithCtx(() => {\r\n\t\t\t\tonBeforeUnmount(() => {\r\n\t\t\t\t\tfor (const instance of tinymceInstance) {\r\n\t\t\t\t\t\tinstance.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, instance);\r\n\t\t});\r\n\t\treturn () => {\r\n\t\t\treturn (\r\n\t\t\t\t<div class=\"mk-rich-text-editor\">\r\n\t\t\t\t\t<div class=\"mk-rich-text-editor__wrapper\" ref={((el: HTMLElement) => (richTextEditorEl.value = el)) as any} />\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\t},\r\n});\r\n"],"names":["defineComponent","name","props","richTextEditorProps","emits","richTextEditorEmits","setup","emit","richTextEditorEl","ref","instance","getCurrentInstance","onMounted","tinymceInstance","TinyMCE","init","target","unref","promotion","menubar","plugins","toolbar","inline","valid_elements","extended_valid_elements","custom_elements","valid_children","cleanup","apply_source_formatting","verify_html","font_family_formats","language","skin_url","content_css","content_style","contentStyle","editor","on","ui","registry","addButton","icon","onAction","response","MKMaterialSelect","success","insertContent","path","data","id","event","args","getContent","watch","computed","modelValue","setContent","immediate","disabled","mode","set","withCtx","onBeforeUnmount","destroy","_createVNode","el","value"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAeA,iDAAgB;AAAA,EAC9BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,OAAOC;AAAAA,EACPC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACtB,UAAMC,mBAA4CC,IAAI,IAAI;AAE1D,UAAMC,WAAWC;AAOjBC,cAAU,YAAY;AACrB,YAAMC,kBAAkB,MAAMC,QAAQC,KAAK;AAAA,QAC1CC,QAAQC,MAAMT,gBAAgB;AAAA,QAC9BU,WAAW;AAAA,QACPC,SAAS;AAAA,QACbC,SAAQlB,MAAMkB;AAAAA;AAAAA,QAEVC,SAASnB,MAAMmB;AAAAA,QACfC,QAAQpB,MAAMoB;AAAAA,QAClBC,gBAAgB;AAAA;AAAA,QAChBC,yBAAyB;AAAA;AAAA,QACzBC,iBAAiB;AAAA;AAAA,QACjBC,gBAAgB;AAAA;AAAA,QAChBC,SAAS;AAAA,QACTC,yBAAyB;AAAA,QACzBC,aAAa;AAAA,QACbC,qBACC;AAAA,QACDC,UAAU;AAAA,QACNC,UAAS;AAAA,QACTC,aAAY;AAAA,QACZC,eAAcC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QAKlB7B,OAAQ8B,YAAW;AAElBA,iBAAOC,GAAG,UAAU,WAAY;AAAA,UAC/B,CACA;AACDD,iBAAOE,GAAGC,SAASC,UAAU,YAAY;AAAA,YACxCC,MAAM;AAAA,YACNC,UAAU,YAAY;AACrB,oBAAMC,WAAW,MAAMC;AACvB,kBAAI,CAACD,SAASE,SAAS;AACtB;AAAA,cACD;AACAT,qBAAOU,cAAc,aAAaH,SAASI,IAAI,UAAUJ,SAASK,KAAMC,EAAE,IAAI;AAAA,YAC/E;AAAA,UACD,CAAC;AACDb,iBAAOC,GAAG,SAAS,CAACa,UAAUC,SAAS;AAAA,UACtC,CACA;AACDf,iBAAOC,GAAG,0BAA0B,MAAM;AACzC9B,iBAAK,sBAAsB6B,OAAOgB,WAAY,CAAA;AAAA,UAC/C,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AACDC,YACCC,SAAS,MAAMpD,MAAMqD,UAAU,GAC9BA,gBAAe;AACf,mBAAW7C,aAAYG,iBAAiB;AACvC,cAAIH,UAAS0C,WAAY,MAAKG,YAAY;AACzC7C,YAAAA,UAAS8C,WAAWD,cAAc,YAAY;AAAA,UAC/C,WACc,CAACA,YAAW;AAClB7C,YAAAA,UAAS8C,WAAW,aAAa;AAAA,UACnC;AAAA,QACP;AAAA,MACD,GACA;AAAA,QAAEC,WAAW;AAAA,MAAK,CACnB;AACAJ,YACCC,SAAS,MAAMpD,MAAMwD,QAAQ,GAC5BA,cAAa;AACb,mBAAWhD,aAAYG,iBAAiB;AACvCH,UAAAA,UAASiD,KAAKC,IAAIF,WAAW,aAAa,QAAQ;AAAA,QACnD;AAAA,MACD,GACA;AAAA,QAAED,WAAW;AAAA,MAAK,CACnB;AAEAI,cAAQ,MAAM;AACbC,wBAAgB,MAAM;AACrB,qBAAWpD,aAAYG,iBAAiB;AACvCH,YAAAA,UAASqD,QAAO;AAAA,UACjB;AAAA,QACD,CAAC;AAAA,MACD,GAAErD,QAAQ;AAAA,IACZ,CAAC;AACD,WAAO,MAAM;AACZ,aAAAsD,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAEmDC,QAAqBzD,iBAAiB0D,QAAQD;AAAAA,MAAG,GAAA,IAAA,CAAA,CAAA;AAAA;EAItG;AACD,CAAC;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LexicalEditor, LexicalNode } from "lexical";
|
|
1
2
|
/**
|
|
2
3
|
* 模版类型
|
|
3
4
|
*/
|
|
@@ -22,6 +23,7 @@ export declare const registerDocTemplate: (options: TemplateType) => void;
|
|
|
22
23
|
* @param name
|
|
23
24
|
*/
|
|
24
25
|
export declare const unRegisterDocTemplate: (name: string) => void;
|
|
26
|
+
export declare const createTemplateNodes: (editor: LexicalEditor, html: string) => LexicalNode[];
|
|
25
27
|
/**
|
|
26
28
|
*
|
|
27
29
|
* @param name
|
|
@@ -33,3 +35,8 @@ export declare const useTemplate: () => void;
|
|
|
33
35
|
* @returns
|
|
34
36
|
*/
|
|
35
37
|
export declare const showTemplateSelectDialog: () => Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* html模版弹窗
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
export declare const showHtmlTemplateDialog: () => Promise<string>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maketribe/ms-app",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.39",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -39,22 +39,21 @@
|
|
|
39
39
|
"@lexical/utils": "~0.17.0",
|
|
40
40
|
"@lexical/yjs": "~0.17.0",
|
|
41
41
|
"lexical": "~0.17.0",
|
|
42
|
-
"
|
|
42
|
+
"tinymce": "^7.1.1",
|
|
43
43
|
"element-plus": "^2.7.3",
|
|
44
44
|
"lodash-es": "^4.17.21",
|
|
45
45
|
"sortablejs": "^1.15.2",
|
|
46
46
|
"tiny-invariant": "^1.3.3",
|
|
47
|
-
"tinymce": "^7.1.1",
|
|
48
47
|
"ufo": "^1.3.1",
|
|
49
48
|
"vditor": "^3.9.6",
|
|
50
49
|
"vue": "^3.4.31",
|
|
51
50
|
"vue-codemirror": "^6.1.1",
|
|
52
51
|
"vue-cropper": "^1.1.4",
|
|
53
52
|
"vue-router": "^4.2.4",
|
|
54
|
-
"@maketribe/utils": "^3.2.1",
|
|
55
|
-
"@maketribe/request": "^3.2.3",
|
|
56
53
|
"@maketribe/dm": "^3.2.11",
|
|
57
|
-
"@maketribe/
|
|
54
|
+
"@maketribe/request": "^3.2.3",
|
|
55
|
+
"@maketribe/locale": "^3.2.0",
|
|
56
|
+
"@maketribe/utils": "^3.2.1"
|
|
58
57
|
},
|
|
59
58
|
"devDependencies": {
|
|
60
59
|
"@types/sortablejs": "^1.15.8"
|