diff --git a/zyplayer-doc-ui/wiki-ui/src/assets/api/page.js b/zyplayer-doc-ui/wiki-ui/src/assets/api/page.js index 369f7728..ee985cfa 100644 --- a/zyplayer-doc-ui/wiki-ui/src/assets/api/page.js +++ b/zyplayer-doc-ui/wiki-ui/src/assets/api/page.js @@ -6,6 +6,7 @@ export default { pageChangeParent: (data) => request({url: '/zyplayer-doc-wiki/page/changeParent', method: 'post', data: Qs.stringify(data)}), pageList: (data) => request({url: '/zyplayer-doc-wiki/page/list', method: 'post', data: Qs.stringify(data)}), updatePage: (data) => request({url: '/zyplayer-doc-wiki/page/update', method: 'post', data: Qs.stringify(data)}), + createEmptyPage: (data) => request({url: '/zyplayer-doc-wiki/page/empty', method: 'post', data: Qs.stringify(data)}), pageDetail: (data) => request({url: '/zyplayer-doc-wiki/page/detail', method: 'post', data: Qs.stringify(data)}), pageDelete: (data) => request({url: '/zyplayer-doc-wiki/page/delete', method: 'post', data: Qs.stringify(data)}), pageHistoryList: (data) => request({url: '/zyplayer-doc-wiki/page/history/list', method: 'post', data: Qs.stringify(data)}), diff --git a/zyplayer-doc-ui/wiki-ui/src/components/layouts/GlobalLayout.vue b/zyplayer-doc-ui/wiki-ui/src/components/layouts/GlobalLayout.vue index 9282a4b5..bffe5ef3 100644 --- a/zyplayer-doc-ui/wiki-ui/src/components/layouts/GlobalLayout.vue +++ b/zyplayer-doc-ui/wiki-ui/src/components/layouts/GlobalLayout.vue @@ -208,10 +208,14 @@ const turnLeftCollapse = () => { } const createWiki = () => { if (choiceSpace.value > 0) { - router.push({ - path: '/page/edit', - query: {parentId: nowPageId.value} - }) + pageApi.createEmptyPage({spaceId: choiceSpace.value,parentId: nowPageId.value}) + .then((json) => { + router.push({ + path: '/page/edit', + query: {parentId: nowPageId.value, pageIdHid: json.data} + }) + }) + } else { ElMessage.warning('请先选择或创建空间') } diff --git a/zyplayer-doc-ui/wiki-ui/src/views/page/Edit.vue b/zyplayer-doc-ui/wiki-ui/src/views/page/Edit.vue index adbc8378..186a5073 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/page/Edit.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/page/Edit.vue @@ -79,6 +79,8 @@ let isUnlock = ref(false); let pageId = ref(''); // 父级,有值代表在此父级新建文档 let parentId = ref(''); +// 从新建文档传递过来的 +let pageIdHid = ref(''); let markdownContent = ref(''); let fileUploadUrl = ref(import.meta.env.VITE_APP_BASE_API + '/zyplayer-doc-wiki/page/file/wangEditor/upload'); let toolbars = { @@ -179,6 +181,9 @@ const createWikiSave = (saveAfter) => { } // 修改内容时强制不能修改父路径,只能在目录上拖动修改 let parentIdVal = pageId.value > 0 ? '' : parentId.value + if (!!pageIdHid.value){ + wikiPage.value.id = pageIdHid.value + } let param = { spaceId: props.spaceId, parentId: parentIdVal, @@ -188,6 +193,7 @@ const createWikiSave = (saveAfter) => { content: content, preview: preview, } + pageApi.updatePage(param).then((json) => { ElMessage.success('保存成功!') // 重新加载左侧列表,跳转到展示页面 @@ -238,9 +244,16 @@ const cleanPage = () => { } } const initQueryParam = (to) => { + pageIdHid.value = to.query.pageIdHid // pageId和parentId二选一,传了pageId代表编辑页面,否则代表新建页面 pageId.value = to.query.pageId parentId.value = to.query.parentId + if (!!pageIdHid.value){ + wangEditorRef.value.setPageId(pageIdHid.value) + } + if (!!pageId.value){ + wangEditorRef.value.setPageId(pageId.value) + } if (!!pageId.value) { loadPageDetail(pageId.value) pageApi.pageLock({pageId: pageId.value}).catch((json) => { @@ -260,6 +273,13 @@ let mavonEditorRef = ref(); const addMarkdownImage = (pos, file) => { let formData = new FormData() formData.append('files', file) + if (!!pageIdHid.value){ + formData.append('pageId', pageIdHid.value) + } + if (!!pageId.value){ + formData.append('pageId', pageId.value) + } + axios({ url: fileUploadUrl.value, method: 'post', diff --git a/zyplayer-doc-ui/wiki-ui/src/views/page/editor/WangEditor.vue b/zyplayer-doc-ui/wiki-ui/src/views/page/editor/WangEditor.vue index 35e3d2a0..a152937f 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/page/editor/WangEditor.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/page/editor/WangEditor.vue @@ -35,7 +35,7 @@ let toolbarConfig = { "fullScreen", "undo", "redo", "emotion", "|", "lineHeight", "fontFamily" ], }; - +let editorPageId = ref(''); let route = useRoute(); let editorConfig = ref({ placeholder: '请输入文档内容', @@ -47,6 +47,9 @@ let editorConfig = ref({ // 最大支持50M图片上传 maxFileSize: 50 * 1024 * 1024, withCredentials: true, + meta: { + pageId: editorPageId, + }, }, uploadVideo: { server: import.meta.env.VITE_APP_BASE_API + '/zyplayer-doc-wiki/page/file/wangEditor/upload', @@ -54,6 +57,9 @@ let editorConfig = ref({ // 最大支持300M图片上传 maxFileSize: 300 * 1024 * 1024, withCredentials: true, + meta: { + pageId: editorPageId, + }, } } }); @@ -83,6 +89,9 @@ const getPageData = () => { const setTitle = (title) => { pageTitle.value = title; } +const setPageId = (id) => { + editorPageId.value = id; +} const setHtml = (content) => { editorRef.value.select([]); @@ -96,7 +105,7 @@ onBeforeUnmount(() => { editor.destroy(); }); -defineExpose({setTitle, setHtml, getPageData}); +defineExpose({setTitle,setPageId, setHtml, getPageData});