Browse Source

云盘:修复目录节点删除问题

space2
han2015 2 months ago
parent
commit
93c0c6afbf
  1. 55
      src/views/doc/manage.vue
  2. 39
      src/views/doc/space.vue

55
src/views/doc/manage.vue

@ -23,7 +23,7 @@ import preview from './preview.vue';
import space from './space.vue'; import space from './space.vue';
import spacePermission from './spacePermission.vue'; import spacePermission from './spacePermission.vue';
import SvgIcon from "@/components/SvgIcon/index.vue"; import SvgIcon from "@/components/SvgIcon/index.vue";
import {doDelSpace,doAccessManage} from "@/api/doc/space" import {doDelSpace,doAccessManage,doCreateAiagent} from "@/api/doc/space"
import Space from "./space.vue"; import Space from "./space.vue";
//TODO: add file icons done! //TODO: add file icons done!
@ -184,8 +184,12 @@ function showShareMessage(row:respCreateShare){
} }
//---------------------------------------- //----------------------------------------
function onDelNodeMatter(row:matterInfo){
onDelMatter(row,true)
}
// //
function onDelMatter(row:matterInfo){ function onDelMatter(row:matterInfo,dir?:boolean){
if (row.uuid){ if (row.uuid){
ElMessageBox.confirm(`确认删除( ${row.name}) ?删除后不可恢复!取消则放弃删除操作。`, "警告", { ElMessageBox.confirm(`确认删除( ${row.name}) ?删除后不可恢复!取消则放弃删除操作。`, "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
@ -195,11 +199,12 @@ function onDelMatter(row:matterInfo){
postDelMatter(uid,{ postDelMatter(uid,{
"uuid":row.uuid "uuid":row.uuid
}).then(()=>{ }).then(()=>{
if (row.dir) { if (row.dir || dir) {
currentNode.value.uuid = row.puuid ?? "" const node = treeRef.value.getNode(row.uuid)
currentNode.value.name = row.path ? row.path.replace(`/${row.name}`,'').match(/[^/]+$/g)?.pop() :"上级目录" if (node) {
treeRef.value.remove(node)
treeRef.value.remove(row.uuid) }
currentNode.value.uuid = row.puuid ?? "root"
} }
onLoadMatterList() onLoadMatterList()
}) })
@ -774,6 +779,26 @@ function onSpacePManage(row:matterInfo){
}) })
} }
//
function onAiAgent(row:matterInfo){
if(row.agent){
alert("当前目录已经是智能体目录")
return
}
ElMessageBox.confirm(`确认创建智能体( ${row.name}) ?`, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(()=>{
doCreateAiagent(uid,{
space:SpaceID.value.uuid,
matter:row.uuid
}).then(()=>{
router.replace({ query: { t: Date.now() } })
})
})
}
//------------------------------------------------------ //------------------------------------------------------
//http://172.20.2.87:6010/api/alien/preview/5a10aaf6-396e-4d9a-7e87-3c5c8029d4db/123.png?ir=fill_100_100 //http://172.20.2.87:6010/api/alien/preview/5a10aaf6-396e-4d9a-7e87-3c5c8029d4db/123.png?ir=fill_100_100
@ -826,7 +851,15 @@ const handleSelectionChange = (val:matterInfo[]) => {
<template #default="{ node, data }"> <template #default="{ node, data }">
<div class="tree-item"> <div class="tree-item">
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
<el-button size="small" :icon="Delete" circle @click="(e)=>{ e.stopPropagation(); onDelMatter(data)}"></el-button> <el-dropdown>
<el-button size="small" :icon="Setting" circle ></el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); onDelNodeMatter(data)}">删除</el-dropdown-item>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); onMatterRename(data)}">重命名</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div> </div>
</template> </template>
</el-tree> </el-tree>
@ -851,9 +884,11 @@ const handleSelectionChange = (val:matterInfo[]) => {
<el-button size="small" :icon="Setting" circle ></el-button> <el-button size="small" :icon="Setting" circle ></el-button>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); onAccessManage(data)}">成员管理</el-dropdown-item> <el-dropdown-item v-if="!data.puuid" @click="(e)=>{ e.stopPropagation(); onAccessManage()}">成员管理</el-dropdown-item>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); onSpacePManage(data)}">权限管理</el-dropdown-item> <el-dropdown-item @click="(e)=>{ e.stopPropagation(); onSpacePManage(data)}">权限管理</el-dropdown-item>
<el-dropdown-item v-if="data.puuid" @click="(e)=>{ e.stopPropagation(); onAiAgent(data)}">创建智能体</el-dropdown-item>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); onDelSpaceMatter(data)}">删除</el-dropdown-item> <el-dropdown-item @click="(e)=>{ e.stopPropagation(); onDelSpaceMatter(data)}">删除</el-dropdown-item>
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); spaceEleRef.onSpaceMatterRename(data)}">重命名</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
@ -936,7 +971,7 @@ const handleSelectionChange = (val:matterInfo[]) => {
<template #default="scope"> <template #default="scope">
<div v-show="currentHoverRow === scope.row.uuid"> <div v-show="currentHoverRow === scope.row.uuid">
<span v-if="scope.row.deleted"> <span v-if="scope.row.deleted">
<el-button size="small" :icon="View" circle @click="restoreMatter(scope.row)"></el-button> <el-button type="text" @click="restoreMatter(scope.row)">恢复</el-button>
</span> </span>
<span v-else> <span v-else>
<el-button size="small" :icon="View" circle @click="onPrivateView(scope.row)"></el-button> <el-button size="small" :icon="View" circle @click="onPrivateView(scope.row)"></el-button>

39
src/views/doc/space.vue

@ -9,7 +9,7 @@ import sharePermission from './sharePermission.vue';
import spacePermission from './spacePermission.vue'; import spacePermission from './spacePermission.vue';
import { matterPage,matterInfo,matterTree,doFileUpload,matterPermit} from "@/api/doc/type" import { matterPage,matterInfo,matterTree,doFileUpload,matterPermit} from "@/api/doc/type"
import { doAccessManage,getSpaceMatterList,doCreateSpaceDir,doDelSpaceMatter, import { doAccessManage,getSpaceMatterList,doCreateSpaceDir,doDelSpaceMatter,
doAiTraining ,doCreateAiagent,spaceMatterRename} from "@/api/doc/space" doAiTraining ,spaceMatterRename} from "@/api/doc/space"
import { h } from 'vue' import { h } from 'vue'
import { import {
Delete, Delete,
@ -151,7 +151,6 @@ function onDelMatter(row:matterInfo){
"space":props.spaceid, "space":props.spaceid,
}).then(()=>{ }).then(()=>{
currentNode.value.uuid = row.puuid ?? "" currentNode.value.uuid = row.puuid ?? ""
currentNode.value.name = row.path ? row.path.replace(`/${row.name}`,'').match(/[^/]+$/g)?.pop() :"上级目录"
onLoadMatterList() onLoadMatterList()
}) })
}) })
@ -275,7 +274,7 @@ function onCreateDir(){
} }
// //
function onMatterRename(row:matterInfo){ function onSpaceMatterRename(row:matterInfo){
const newname=ref(row.name) const newname=ref(row.name)
ElMessageBox({ ElMessageBox({
title:"请输入新的文件名", title:"请输入新的文件名",
@ -471,31 +470,7 @@ async function doCreateMultyDir(path:string,uuid:string){
} }
//-------------------------AI section-------------- //-------------------------AI section--------------
//
function onAiAgent(){
if(currentNode.value.uuid=="root"){
alert("根目录不支持创建智能体")
return
}
if(currentNode.value.agent){
alert("当前目录已经是智能体目录")
return
}
ElMessageBox.confirm(`确认创建智能体( ${currentNode.value.name}) ?`, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(()=>{
doCreateAiagent(props.uid,{
space:props.spaceid,
matter:currentNode.value.uuid
}).then(()=>{
router.replace({ query: { t: Date.now() } })
})
})
}
function handleAiUpload(info:matterInfo){ function handleAiUpload(info:matterInfo){
// //
if (info.path?.startsWith(currentAgent.value.path)){ if (info.path?.startsWith(currentAgent.value.path)){
@ -594,7 +569,7 @@ const handleSelectionChange = (val:matterInfo[]) => {
tabSelected.value = val tabSelected.value = val
} }
defineExpose({handleDoubleClick,onDelMatter}) defineExpose({handleDoubleClick,onDelMatter,onSpaceMatterRename})
// //
function isOwner(){ function isOwner(){
@ -639,9 +614,9 @@ function isOwner(){
</el-col> </el-col>
<el-button style="margin-left: auto;" @click="()=>currentAgent.model=true">AI助手</el-button> <el-button style="margin-left: auto;" @click="()=>currentAgent.model=true">AI助手</el-button>
<el-button-group v-if="isOwner()" class="control" style="margin: 0 10px;"> <!-- <el-button-group v-if="isOwner()" class="control" style="margin: 0 10px;">
<el-button :icon="Plus" @click="onAiAgent">创建智能体</el-button> <el-button :icon="Plus" @click="onAiAgent">创建智能体</el-button>
</el-button-group> </el-button-group> -->
<el-button-group style="margin-right:20px;"> <el-button-group style="margin-right:20px;">
<el-button :icon="List" @click="updateListOrGrid(true)"></el-button> <el-button :icon="List" @click="updateListOrGrid(true)"></el-button>
<el-button :icon="Grid" @click="updateListOrGrid(false)"></el-button> <el-button :icon="Grid" @click="updateListOrGrid(false)"></el-button>
@ -683,7 +658,7 @@ function isOwner(){
</span> </span>
<span v-if="scope.row.permitVal>=PERMITS.EDIT" class="manager_span"> <span v-if="scope.row.permitVal>=PERMITS.EDIT" class="manager_span">
<el-button size="small" :icon="Edit" circle @click="onlyOfficeEdit(scope.row)"></el-button> <el-button size="small" :icon="Edit" circle @click="onlyOfficeEdit(scope.row)"></el-button>
<el-button size="small" circle @click="onMatterRename(scope.row)"></el-button> <el-button size="small" circle @click="onSpaceMatterRename(scope.row)"></el-button>
</span> </span>
</div> </div>
</template> </template>
@ -718,7 +693,7 @@ function isOwner(){
<li v-if="row.permitVal! >= PERMITS.DOWNLOAD" @click="onDownload(row)">下载</li> <li v-if="row.permitVal! >= PERMITS.DOWNLOAD" @click="onDownload(row)">下载</li>
<span v-if="row.permitVal! >= PERMITS.EDIT" > <span v-if="row.permitVal! >= PERMITS.EDIT" >
<li @click="onlyOfficeEdit(row)">编辑</li> <li @click="onlyOfficeEdit(row)">编辑</li>
<li @click="onMatterRename(row)">重命名</li> <li @click="onSpaceMatterRename(row)">重命名</li>
</span> </span>
<span v-if="row.permitVal! >= PERMITS.MANAGER" > <span v-if="row.permitVal! >= PERMITS.MANAGER" >
<li @click="onDelMatter(row)">删除</li> <li @click="onDelMatter(row)">删除</li>

Loading…
Cancel
Save