|
|
|
@ -7,7 +7,8 @@ |
|
|
|
import { getExpirTime, getFileIcon, readableSize,fileType} from "./tools" |
|
|
|
import sharePermission from './sharePermission.vue'; |
|
|
|
import { useUserStore } from "@/store/modules/user"; |
|
|
|
import { getMatterList,postCreateDir,postDelMatter,postCreateShare,postMatterRename,postDelMatBatch,getMySpaces,doCreateSpace} from "@/api/doc/index" |
|
|
|
import { getMatterList,postCreateDir,postDelMatter,postCreateShare,postMatterRename, |
|
|
|
postDelMatBatch,getMySpaces,doCreateSpace,getRecyclingList} from "@/api/doc/index" |
|
|
|
import { matterPage,matterInfo,respCreateShare,matterTree, doFileUpload,matterPermit} from "@/api/doc/type" |
|
|
|
import { h } from 'vue' |
|
|
|
import router from "@/router"; |
|
|
|
@ -22,7 +23,7 @@ import preview from './preview.vue'; |
|
|
|
import space from './space.vue'; |
|
|
|
import spacePermission from './spacePermission.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"; |
|
|
|
|
|
|
|
//TODO: add file icons done! |
|
|
|
@ -69,6 +70,7 @@ const spaceTreeRef = ref(); //space的树树组件的引用 |
|
|
|
let spaceNodeUid="" //用来判断树组件的展开和关闭,如何只是展开和关闭的点击事件不在刷新,通currentNode的作用 |
|
|
|
|
|
|
|
const modListOrGrild=ref(true) |
|
|
|
const modRecycling=ref(false) |
|
|
|
|
|
|
|
const Departs = computed(() => { |
|
|
|
return `${'p0'+userStore.userInfoCont.userId},${userStore.userInfoCont.company},${userStore.userInfoCont.department},${userStore.userInfoCont.organization}` |
|
|
|
@ -182,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){ |
|
|
|
ElMessageBox.confirm(`确认删除( ${row.name}) ?删除后不可恢复!取消则放弃删除操作。`, "警告", { |
|
|
|
confirmButtonText: "确定", |
|
|
|
@ -193,11 +199,12 @@ function onDelMatter(row:matterInfo){ |
|
|
|
postDelMatter(uid,{ |
|
|
|
"uuid":row.uuid |
|
|
|
}).then(()=>{ |
|
|
|
if (row.dir) { |
|
|
|
currentNode.value.uuid = row.puuid ?? "" |
|
|
|
currentNode.value.name = row.path ? row.path.replace(`/${row.name}`,'').match(/[^/]+$/g)?.pop() :"上级目录" |
|
|
|
|
|
|
|
treeRef.value.remove(row.uuid) |
|
|
|
if (row.dir || dir) { |
|
|
|
const node = treeRef.value.getNode(row.uuid) |
|
|
|
if (node) { |
|
|
|
treeRef.value.remove(node) |
|
|
|
} |
|
|
|
currentNode.value.uuid = row.puuid ?? "root" |
|
|
|
} |
|
|
|
onLoadMatterList() |
|
|
|
}) |
|
|
|
@ -282,6 +289,41 @@ function onSearchFile(name?:string){ |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//获取回收站文件 |
|
|
|
function showRecycling(){ |
|
|
|
modRecycling.value=true |
|
|
|
currentNode.value={} //清空当前节点 |
|
|
|
if(!PRIVATESPACE.value) { //共享空间模式要切换到个人空间 |
|
|
|
PRIVATESPACE.value=true |
|
|
|
} |
|
|
|
|
|
|
|
getRecyclingList(uid,{}).then((resp)=>{ |
|
|
|
paginInfo.value={total:1,page:0} |
|
|
|
matterList.value=resp.data |
|
|
|
}) |
|
|
|
} |
|
|
|
//恢复删除文件 |
|
|
|
function restoreMatter(row:matterInfo){ |
|
|
|
if (row.uuid){ |
|
|
|
ElMessageBox.confirm(`确认要恢复( ${row.name}) ?`, "警告", { |
|
|
|
confirmButtonText: "确定", |
|
|
|
cancelButtonText: "取消", |
|
|
|
type: "warning", |
|
|
|
}).then(()=>{ |
|
|
|
postDelMatter(uid,{ |
|
|
|
"uuid":row.uuid, |
|
|
|
"restore":"true", |
|
|
|
}).then(()=>{ |
|
|
|
ElMessage({ |
|
|
|
message: '已成功恢复文件,请在个人空间查看。', |
|
|
|
type: 'success', |
|
|
|
plain: true, |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//加载目录文件列表 |
|
|
|
function onLoadMatterList(){ |
|
|
|
let _page: matterPage = { |
|
|
|
@ -349,45 +391,54 @@ function onDBclickMatter(row:matterInfo){ |
|
|
|
|
|
|
|
//树节点展开 |
|
|
|
function onNodeExpand(node: TreeNode, resolve: (data: matterTree[]) => void, reject: () => void) { |
|
|
|
modRecycling.value=false |
|
|
|
let cuuid ="root" |
|
|
|
if ((node.data as matterTree).uuid) { |
|
|
|
const cuuid = (node.data as matterTree).uuid |
|
|
|
cuuid= (node.data as matterTree).uuid |
|
|
|
currentNode.value = node.data |
|
|
|
|
|
|
|
let _page: matterPage = { |
|
|
|
page: 0, |
|
|
|
pageSize: 50, |
|
|
|
orderCreateTime: "DESC", |
|
|
|
orderDir: "DESC", |
|
|
|
puuid: cuuid, |
|
|
|
deleted: false |
|
|
|
}; |
|
|
|
|
|
|
|
getMatterList(uid, _page).then((resp) => { |
|
|
|
paginInfo.value = { total: resp.data.totalPages, page: resp.data.page } |
|
|
|
matterList.value = resp.data.data |
|
|
|
// .filter((item)=>{ |
|
|
|
// return !item.dir |
|
|
|
// }) |
|
|
|
let node_data = resp.data.data.filter((item) => { |
|
|
|
return item.dir |
|
|
|
}).map((val) => { |
|
|
|
const copy = structuredClone(val) |
|
|
|
copy.dir = !copy.dir |
|
|
|
return copy |
|
|
|
}) |
|
|
|
|
|
|
|
resolve(node_data) |
|
|
|
}).catch(() => reject()) |
|
|
|
} |
|
|
|
|
|
|
|
let _page: matterPage = { |
|
|
|
page: 0, |
|
|
|
pageSize: 50, |
|
|
|
orderCreateTime: "DESC", |
|
|
|
orderDir: "DESC", |
|
|
|
puuid: cuuid, |
|
|
|
deleted: false |
|
|
|
}; |
|
|
|
|
|
|
|
getMatterList(uid, _page).then((resp) => { |
|
|
|
paginInfo.value = { total: resp.data.totalPages, page: resp.data.page } |
|
|
|
matterList.value = resp.data.data |
|
|
|
// .filter((item)=>{ |
|
|
|
// return !item.dir |
|
|
|
// }) |
|
|
|
let node_data = resp.data.data.filter((item) => { |
|
|
|
return item.dir |
|
|
|
}).map((val) => { |
|
|
|
const copy = structuredClone(val) |
|
|
|
copy.dir = !copy.dir |
|
|
|
return copy |
|
|
|
}) |
|
|
|
|
|
|
|
resolve(node_data) |
|
|
|
}).catch(() => reject()) |
|
|
|
|
|
|
|
} |
|
|
|
//树节点单击 |
|
|
|
function onNodeClick(data:matterTree,node:TreeNode,self:any,env:any){ |
|
|
|
modRecycling.value=false |
|
|
|
if(!PRIVATESPACE.value) { |
|
|
|
PRIVATESPACE.value=true |
|
|
|
} |
|
|
|
if (currentNode.value.uuid === data.uuid) return; |
|
|
|
const cuuid = data.uuid |
|
|
|
currentNode.value = data |
|
|
|
if (data){ |
|
|
|
if (currentNode.value.uuid === data.uuid) return; |
|
|
|
//const cuuid = data.uuid |
|
|
|
currentNode.value = data |
|
|
|
}else{ |
|
|
|
currentNode.value={uuid:"root"} |
|
|
|
} |
|
|
|
|
|
|
|
onLoadMatterList() |
|
|
|
return |
|
|
|
let _page: matterPage = { |
|
|
|
@ -528,7 +579,7 @@ async function handleFolderFile(option:File){ |
|
|
|
const _path = option.webkitRelativePath |
|
|
|
const _dir=_path.replace(/\/[^/]+\w+$/,"") //只保留文件夹目录,[^/]就是用来限制,只能是最后一个目录 |
|
|
|
const node = matterList.value.filter((item)=>{ |
|
|
|
return item.dir && item.path?.endsWith(_dir) |
|
|
|
return item.dir && _dir.endsWith(item.name!) |
|
|
|
}) |
|
|
|
|
|
|
|
let puuid="" |
|
|
|
@ -536,10 +587,11 @@ async function handleFolderFile(option:File){ |
|
|
|
if(node.length==0){ |
|
|
|
const subs= await doCreateMultyDir(_dir,currentNode.value.uuid) |
|
|
|
matterList.value.push(...subs) //这里如果子文件夹多的时候,可能会造成第一级路径多次创建,只是造成资源浪费,问题不大 |
|
|
|
|
|
|
|
|
|
|
|
const newnodes=matterList.value.filter((item)=>{ |
|
|
|
return item.dir && item.path?.endsWith(_dir) |
|
|
|
return item.dir && _dir.endsWith(item.name!) |
|
|
|
}) |
|
|
|
|
|
|
|
if(newnodes.length>0){ |
|
|
|
puuid=newnodes[0].uuid |
|
|
|
}else{ |
|
|
|
@ -567,6 +619,13 @@ async function doCreateMultyDir(path:string,uuid:string){ |
|
|
|
const list=[]; |
|
|
|
const dirs=path.split("/") |
|
|
|
for(let i=0;i<dirs.length;i++){ |
|
|
|
const node = matterList.value.filter((item)=>{ |
|
|
|
return item.dir && dirs[i].endsWith(item.name!) |
|
|
|
}) |
|
|
|
if(node.length>0) { |
|
|
|
uuid = node[0].uuid |
|
|
|
continue; |
|
|
|
} |
|
|
|
await postCreateDir(uid,{ |
|
|
|
userUuid:uid, |
|
|
|
puuid:uuid, |
|
|
|
@ -580,7 +639,7 @@ async function doCreateMultyDir(path:string,uuid:string){ |
|
|
|
} |
|
|
|
|
|
|
|
function handleMouseEnter(row:any){ |
|
|
|
currentHoverRow.value=row.name |
|
|
|
currentHoverRow.value=row.uuid |
|
|
|
} |
|
|
|
//上传成功 |
|
|
|
function handleSingleUpload(response:any){ |
|
|
|
@ -626,6 +685,7 @@ function onNewSpace(){ |
|
|
|
function onSpaceNodeClick(data:matterTree,node:TreeNode,self:any,env:any){ |
|
|
|
if(PRIVATESPACE.value) { //如果打开了个人空间,突然点击共享空间,要及时切换状态 |
|
|
|
PRIVATESPACE.value=false |
|
|
|
modRecycling.value=false |
|
|
|
} |
|
|
|
//如果在单个组件上重复点击,不在刷新请求 |
|
|
|
if(spaceNodeUid==data.uuid) return; |
|
|
|
@ -719,15 +779,35 @@ 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 |
|
|
|
//渲染完页面再执行 |
|
|
|
onMounted(() => { |
|
|
|
treeRef.value.append( |
|
|
|
{name:'个人空间',uuid:'root',dir:false}, |
|
|
|
currentNode.value.uuid |
|
|
|
) |
|
|
|
// treeRef.value.append( |
|
|
|
// {name:'个人空间',uuid:'root',dir:false}, |
|
|
|
// currentNode.value.uuid |
|
|
|
// ) |
|
|
|
//加载我的空间列表 |
|
|
|
getMySpaces(uid,{roles:Departs.value}).then((resp)=>{ |
|
|
|
resp.data.forEach((item)=>{ |
|
|
|
@ -753,7 +833,10 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
<template> |
|
|
|
<div style="display:grid;grid-template-columns:1fr 4fr; width: 100%;height: 100%;"> |
|
|
|
<div class="menus_tree"> |
|
|
|
<el-tree |
|
|
|
<div class="area_header"> |
|
|
|
<el-icon :size="20"><House /></el-icon><span class="area_name" > 个人空间</span> |
|
|
|
</div> |
|
|
|
<el-tree |
|
|
|
ref="treeRef" |
|
|
|
style="max-width: 600px" |
|
|
|
:data="treeData" |
|
|
|
@ -768,11 +851,22 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
<template #default="{ node, data }"> |
|
|
|
<div class="tree-item"> |
|
|
|
<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> |
|
|
|
</template> |
|
|
|
</el-tree> |
|
|
|
<div style="display:flex;margin-top: 9px;background-color: white;"><span style="align-content: center;margin-left: 21px;color: #686854;">共享空间</span> <el-button style="margin: 10px 0px 10px auto;" :icon="Plus" @click="onNewSpace"> </el-button></div> |
|
|
|
<div class="area_header"> |
|
|
|
<el-icon :size="20"><Collection /></el-icon> <span class="area_name" > 共享空间</span> |
|
|
|
<el-button size="small" style="margin: 0 5px 0 auto;" :icon="Plus" @click="onNewSpace"> </el-button> |
|
|
|
</div> |
|
|
|
<el-tree |
|
|
|
ref="spaceTreeRef" |
|
|
|
style="max-width: 600px" |
|
|
|
@ -790,9 +884,11 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
<el-button size="small" :icon="Setting" circle ></el-button> |
|
|
|
<template #dropdown> |
|
|
|
<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 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(); onSpacePManage(data)}">权限管理</el-dropdown-item> |
|
|
|
<el-dropdown-item @click="(e)=>{ e.stopPropagation(); spaceEleRef.onSpaceMatterRename(data)}">重命名</el-dropdown-item> |
|
|
|
</el-dropdown-menu> |
|
|
|
</template> |
|
|
|
</el-dropdown> |
|
|
|
@ -800,10 +896,14 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-tree> |
|
|
|
<div class="area_header" @click="showRecycling"> |
|
|
|
<el-icon :size="20"><Delete /></el-icon><span class="area_name" > 回收站</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-if="PRIVATESPACE" class="app_container"> |
|
|
|
<el-row :gutter="24" style="margin: 12px 0px;"> |
|
|
|
<el-row v-if="modRecycling"><span style="margin: 12px 0px;font-weight: bold;font-size: 20px;"> 回收站 </span> </el-row> |
|
|
|
<el-row v-else :gutter="24" style="margin: 12px 0px;"> |
|
|
|
<el-link v-if="currentNode.name!=='root'" @click="onNodeClick(treeData[0], null as unknown as TreeNode, null, null)"> |
|
|
|
<span style="font-weight: bold;margin-right: 5px;align-content: center;">根目录</span>/ |
|
|
|
</el-link> |
|
|
|
@ -815,7 +915,7 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-row :gutter="24"> |
|
|
|
<el-row v-if="!modRecycling" :gutter="24"> |
|
|
|
<el-col :span="14"> |
|
|
|
<div class="el-button el-button--default" style="position: relative;"> |
|
|
|
<input type="file" style="position: absolute;opacity: 0;width: 50px;" |
|
|
|
@ -854,7 +954,7 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
:row-style ="() => ({ lineHeight: '36px' })" |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
@cell-mouse-enter="handleMouseEnter"> |
|
|
|
<el-table-column type="selection" width="50" /> |
|
|
|
<!-- <el-table-column type="selection" width="50" /> --> |
|
|
|
<el-table-column width="450" property="name" label="文件名"> |
|
|
|
<template #default="scope"> |
|
|
|
<input v-if="scope.row.name===''" v-model="newdirName" type="text" autofocus placeholder="文件夹名" style="border:groove;height:30px;" @change="onCreateDir" /> |
|
|
|
@ -869,14 +969,18 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
</el-table-column> |
|
|
|
<el-table-column width="360" align="center"> |
|
|
|
<template #default="scope"> |
|
|
|
<div v-show="currentHoverRow === scope.row.name"> |
|
|
|
<!-- <el-button size="small" :icon="Promotion" circle ></el-button> --> |
|
|
|
<el-button size="small" :icon="View" circle @click="onPrivateView(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Share" circle @click="onShareMatter(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Download" circle @click="onDownload(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Edit" circle @click="onlyOfficeEdit(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Delete" circle @click="onDelMatter(scope.row)"></el-button> |
|
|
|
<el-button size="small" circle @click="onMatterRename(scope.row)">改</el-button> |
|
|
|
<div v-show="currentHoverRow === scope.row.uuid"> |
|
|
|
<span v-if="scope.row.deleted"> |
|
|
|
<el-button type="text" @click="restoreMatter(scope.row)">恢复</el-button> |
|
|
|
</span> |
|
|
|
<span v-else> |
|
|
|
<el-button size="small" :icon="View" circle @click="onPrivateView(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Share" circle @click="onShareMatter(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Download" circle @click="onDownload(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Edit" circle @click="onlyOfficeEdit(scope.row)"></el-button> |
|
|
|
<el-button size="small" :icon="Delete" circle @click="onDelMatter(scope.row)"></el-button> |
|
|
|
<el-button size="small" circle @click="onMatterRename(scope.row)">改</el-button> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
@ -903,13 +1007,18 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
<span style="margin: 5px 0;text-wrap-mode:nowrap;">{{ row.name }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<ul v-if="row.name!=''" class="grid-menus" v-show="currentHoverRow === row.name" @mouseleave="currentHoverRow=''"> |
|
|
|
<li v-if="getFileIcon(row.name)!='img'" @click="onPrivateView(row)">预览</li> |
|
|
|
<li @click="onShareMatter(row)">分享</li> |
|
|
|
<li @click="onDownload(row)">下载</li> |
|
|
|
<li @click="onlyOfficeEdit(row)">编辑</li> |
|
|
|
<li @click="onDelMatter(row)">删除</li> |
|
|
|
<li @click="onMatterRename(row)">重命名</li> |
|
|
|
<ul v-if="row.name!=''" class="grid-menus" v-show="currentHoverRow === row.uuid" @mouseleave="currentHoverRow=''"> |
|
|
|
<span v-if="row.deleted"> |
|
|
|
<li @click="restoreMatter(row)">恢复</li> |
|
|
|
</span> |
|
|
|
<span v-else> |
|
|
|
<li v-if="getFileIcon(row.name)!='img'" @click="onPrivateView(row)">预览</li> |
|
|
|
<li @click="onShareMatter(row)">分享</li> |
|
|
|
<li @click="onDownload(row)">下载</li> |
|
|
|
<li @click="onlyOfficeEdit(row)">编辑</li> |
|
|
|
<li @click="onDelMatter(row)">删除</li> |
|
|
|
<li @click="onMatterRename(row)">重命名</li> |
|
|
|
</span> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -947,6 +1056,19 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
--el-tree-expand-icon-color:#4c4c4e; |
|
|
|
} |
|
|
|
} |
|
|
|
.area_header{ |
|
|
|
display: flex; |
|
|
|
margin-top: 9px; |
|
|
|
padding: 12px 7px; |
|
|
|
background-color: white; |
|
|
|
align-items: center; |
|
|
|
.area_name{ |
|
|
|
align-content: center; |
|
|
|
margin-left: 8px; |
|
|
|
color: #686854; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.tree-item{ |
|
|
|
display: flex; |
|
|
|
@ -975,7 +1097,7 @@ const handleSelectionChange = (val:matterInfo[]) => { |
|
|
|
|
|
|
|
.search{ |
|
|
|
margin-left: auto; |
|
|
|
margin-right: 20px; |
|
|
|
margin-right: 26px; |
|
|
|
display:inherit; |
|
|
|
} |
|
|
|
.shareDialog{ |
|
|
|
|