合并闭源版功能,创建文档时上传文件也能绑定到page上

This commit is contained in:
Sh1yu
2023-06-29 10:42:11 +08:00
parent 49d697347a
commit f7773e2ec6
7 changed files with 50 additions and 80 deletions

View File

@@ -6,7 +6,6 @@ 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)}),

View File

@@ -3,7 +3,7 @@
<el-container>
<el-aside v-show="leftCollapse" :style="{ width: rightAsideWidth + 'px' }">
<div style="padding: 10px;height: 100%;box-sizing: border-box;background: #fafafa;">
<div style="margin-bottom: 10px">
<div style="margin-bottom: 5px">
<el-select :model-value="choiceSpace" filterable placeholder="选择空间" style="width: 100%" @change="spaceChangeEvents">
<el-option-group label="">
<el-option key="0" label="创建空间" value="0"></el-option>
@@ -13,9 +13,6 @@
<el-option v-for="item in spaceOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
<div align="center">
<el-button :icon="ElIconPlus" style="width: 100%" v-on:click="createWiki">创建文档</el-button>
</div>
<el-autocomplete v-model="searchKeywords" :fetch-suggestions="doSearchByKeywords" placeholder="在当前空间搜索" popper-class="search-autocomplete" style="width: 100%; margin: 10px 0" @select="handleSearchKeywordsSelect">
<template v-slot="{ item }">
<div class="search-option-item">
@@ -26,6 +23,21 @@
</div>
</template>
</el-autocomplete>
<div style="margin-left: 10px;margin-bottom: 10px">
<span style="color:#898989;font-size:small;">空间目录
<el-dropdown style="float:right">
<el-icon >
<el-icon-plus/>
</el-icon>
<template v-slot:dropdown>
<el-dropdown-menu>
<el-dropdown-item v-on:click="createWiki(1,true)">创建Html</el-dropdown-item>
<el-dropdown-item v-on:click="createWiki(2,true)">创建Markdown</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</span>
</div>
<div class="wiki-page-tree-box">
<el-tree
ref="wikiPageTreeRef"
@@ -45,10 +57,22 @@
<template v-slot="{ node, data }">
<div class="page-tree-node">
<el-tooltip :content="node.label" placement="top-start" :show-after="1000">
<span class="label">
<el-icon><el-icon-document/></el-icon>
<span class="text">{{ node.label }}</span>
</span>
<span class="label">
<el-icon><el-icon-document/></el-icon>
<span class="el-dropdown-link">{{ node.label }}
<el-dropdown style="float:right">
<el-icon >
<el-icon-plus/>
</el-icon>
<template v-slot:dropdown>
<el-dropdown-menu>
<el-dropdown-item v-on:click="createWiki(2)">创建Markdown</el-dropdown-item>
<el-dropdown-item v-on:click="createWiki(1)">创建Html</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</span>
</span>
</el-tooltip>
</div>
</template>
@@ -206,13 +230,16 @@ const turnLeftCollapse = () => {
}
}, 100)
}
const createWiki = () => {
if (choiceSpace.value > 0) {
pageApi.createEmptyPage({spaceId: choiceSpace.value,parentId: nowPageId.value})
const createWiki = (editorType,clearParentId) => {
if (clearParentId){
nowPageId.value = 0
}
if (choiceSpace.value > 0) {
pageApi.updatePage({spaceId: choiceSpace.value,parentId: nowPageId.value,editorType:editorType,name:'未命名',content:'',preview:''})
.then((json) => {
router.push({
path: '/page/edit',
query: {parentId: nowPageId.value, pageIdHid: json.data}
query: {parentId: nowPageId.value, pageId: json.data.id}
})
})

View File

@@ -79,8 +79,6 @@ 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 = {
@@ -181,8 +179,8 @@ const createWikiSave = (saveAfter) => {
}
// 修改内容时强制不能修改父路径,只能在目录上拖动修改
let parentIdVal = pageId.value > 0 ? '' : parentId.value
if (!!pageIdHid.value){
wikiPage.value.id = pageIdHid.value
if (!!pageId.value){
wikiPage.value.id = pageId.value
}
let param = {
spaceId: props.spaceId,
@@ -244,13 +242,9 @@ 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)
}
@@ -273,9 +267,6 @@ 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)
}