|
@@ -16,13 +16,27 @@
|
|
|
<div
|
|
|
style="height: 75vh;overflow-y: auto;">
|
|
|
<div class="searchBox">
|
|
|
- <el-input v-model="searchFire" @keyup.enter="fileBlur" class="searchFire" size="large" placeholder="搜索文件" />
|
|
|
- <el-icon class="SearchIcon" @click="fileBlur">
|
|
|
- <Search />
|
|
|
- </el-icon>
|
|
|
+ <div v-if="leftShowList == 1" style="width:100%">
|
|
|
+ <el-input v-model="searchFire" @keyup.enter="fileBlur" class="searchFire" size="large"
|
|
|
+ placeholder="搜索文件夹" />
|
|
|
+ <el-icon class="SearchIcon" @click="fileBlur">
|
|
|
+ <Search />
|
|
|
+ </el-icon>
|
|
|
+ </div>
|
|
|
+ <div v-else style="width:100%">
|
|
|
+ <el-input v-model="searchFolderTree" @keyup.enter="folderBlur" class="searchFire" size="large"
|
|
|
+ placeholder="搜索文件" />
|
|
|
+ <el-icon class="SearchIcon" @click="folderBlur">
|
|
|
+ <Search />
|
|
|
+ </el-icon>
|
|
|
+ </div>
|
|
|
+ <div class="left_changeShow">
|
|
|
+ <img v-if="leftShowList == 1" src="@/assets/images/squre.png" @click="changeLeftShow" alt="">
|
|
|
+ <img v-else src="@/assets/images/Frame_187.png" @click="changeLeftShow" alt="">
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- v-for盒子 -->
|
|
|
- <div style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;align-content: flex-start;overflow-y: auto;">
|
|
|
+ <div v-if="leftShowList == 1" style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;align-content: flex-start;overflow-y: auto;">
|
|
|
<template v-for="(item, index) in fileMenu" :key="index">
|
|
|
<div class="setBox" >
|
|
|
<el-dropdown trigger="click" class="selectChe">
|
|
@@ -61,6 +75,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
+ <LeftList v-else :spaceType="2" :isDept="isDept" @treeRClick="treeRClick" :searchFolderTree="searchFolderTree" :ListtreeData="ListtreeData" @listfolderClick="listfolderClick"></LeftList>
|
|
|
</div>
|
|
|
<div class="expansion">
|
|
|
<div class="top_box">
|
|
@@ -79,7 +94,7 @@
|
|
|
<!-- 众多功能 -->
|
|
|
<div class="manyUse">
|
|
|
<div class="useMenu">
|
|
|
- <div v-if="(thisRole.some(item=>item == 'upload') || (isDept && thisFolder.dirId)) && pathLabelData.length"
|
|
|
+ <div v-if="(thisRole.some(item=>item == 'upload') || (isDept && thisFolder.dirId)) && (pathLabelData.length || leftShowList == 0)"
|
|
|
style="display: flex;width: 92px;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;">
|
|
|
<div style="margin-left: 5px;">
|
|
|
<img src="../../assets/images/upload.png" style="width: 24px;height: 24px;" alt="">
|
|
@@ -163,203 +178,199 @@
|
|
|
<span>使用右键进行文件操作</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 面包屑功能栏 -->
|
|
|
- <div class="breadBox">
|
|
|
- <!-- 左侧 -->
|
|
|
- <div style="display: flex;justify-content: space-around;align-items: center;margin-left: 10px;">
|
|
|
- <!-- 前进后退 -->
|
|
|
- <!-- <div style="display: flex;justify-content: space-around;align-items: center;margin-right: 5px;" >
|
|
|
- <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt=""
|
|
|
- @click="arrowLift">
|
|
|
- <img style="display:block;width: 16px;height: 16px;" :src="grayRight" alt="">
|
|
|
- </div> -->
|
|
|
- <!-- 面包屑 -->
|
|
|
- <div class="topPath">
|
|
|
- <span @click="backTopPath">{{ topPath }}</span>
|
|
|
- <PathLabel v-if="!loadingPreview" @folderClick="folderClick" :pathLabelData='pathLabelData'></PathLabel>
|
|
|
- <!-- <BreadMenu></BreadMenu> -->
|
|
|
+ <div v-show="leftShowList == 1">
|
|
|
+ <!-- 面包屑功能栏 -->
|
|
|
+ <div class="breadBox">
|
|
|
+ <!-- 左侧 -->
|
|
|
+ <div style="display: flex;justify-content: space-around;align-items: center;margin-left: 10px;">
|
|
|
+ <!-- 前进后退 -->
|
|
|
+ <!-- <div style="display: flex;justify-content: space-around;align-items: center;margin-right: 5px;" >
|
|
|
+ <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt=""
|
|
|
+ @click="arrowLift">
|
|
|
+ <img style="display:block;width: 16px;height: 16px;" :src="grayRight" alt="">
|
|
|
+ </div> -->
|
|
|
+ <!-- 面包屑 -->
|
|
|
+ <div class="topPath">
|
|
|
+ <span @click="backTopPath">{{ topPath }}</span>
|
|
|
+ <PathLabel v-if="!loadingPreview" @folderClick="folderClick" :pathLabelData='pathLabelData'></PathLabel>
|
|
|
+ <!-- <BreadMenu></BreadMenu> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 右侧 -->
|
|
|
- <div>
|
|
|
- <img
|
|
|
- src="@/assets/images/sort.png"
|
|
|
- @click="changeSort"
|
|
|
- v-if="isAsc == 'asc'"
|
|
|
+ <!-- 右侧 -->
|
|
|
+ <div>
|
|
|
+ <img
|
|
|
+ src="@/assets/images/sort.png"
|
|
|
+ @click="changeSort"
|
|
|
+ v-if="isAsc == 'asc'"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ src="@/assets/images/Frame_188.png"
|
|
|
+ @click="changeSort"
|
|
|
+ v-else
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <!-- //控制宫格展示 -->
|
|
|
+ <img
|
|
|
+ v-if="fileGrid"
|
|
|
+ src="@/assets/images/squre.png"
|
|
|
+ class="shouzhi palace-grid"
|
|
|
alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- src="@/assets/images/Frame_188.png"
|
|
|
- @click="changeSort"
|
|
|
+ @click="changeShow(true)"
|
|
|
+ />
|
|
|
+ <img
|
|
|
v-else
|
|
|
+ src="@/assets/images/Frame_187.png"
|
|
|
+ class="shouzhi palace-grid"
|
|
|
alt=""
|
|
|
- />
|
|
|
- <!-- //控制宫格展示 -->
|
|
|
- <img
|
|
|
- v-if="fileGrid"
|
|
|
- src="@/assets/images/squre.png"
|
|
|
- class="shouzhi palace-grid"
|
|
|
- alt=""
|
|
|
- @click="changeShow(true)"
|
|
|
- />
|
|
|
- <img
|
|
|
- v-else
|
|
|
- src="@/assets/images/Frame_187.png"
|
|
|
- class="shouzhi palace-grid"
|
|
|
- alt=""
|
|
|
- @click="changeShow(false)"
|
|
|
- />
|
|
|
- <!-- <img :src="squre" alt="" @click="gridChange" class="shouzhi"> -->
|
|
|
+ @click="changeShow(false)"
|
|
|
+ />
|
|
|
+ <!-- <img :src="squre" alt="" @click="gridChange" class="shouzhi"> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- </div> -->
|
|
|
- <!-- 展示文件夹盒子 -->
|
|
|
- <!-- 文件夹 -->
|
|
|
- <div class="showBox">
|
|
|
- <div class="detailBox file-jia" @click="mouseClick">
|
|
|
- <el-collapse v-model="folder">
|
|
|
- <el-collapse-item name="1" class="custom-collapse-item">
|
|
|
- <template #title>
|
|
|
- <span class="file-title">文件夹</span>
|
|
|
- </template>
|
|
|
- <el-table v-if="fileGrid == 1" :data="folderList" height="37vh" style="width: 100%" :scrollbar-always-on="true"
|
|
|
- @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
|
|
|
- @row-contextmenu="folderRClick" ref="taskTableRef">
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
- <el-table-column label="名称" :show-overflow-tooltip="true" :tooltip-options="{showAfter: 1000}" width="600">
|
|
|
- <template #default="scope">
|
|
|
- <span class="juzhong">
|
|
|
- <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,true)" class="juli">
|
|
|
- <Star />
|
|
|
- </el-icon>
|
|
|
- <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="" class="juli">
|
|
|
- <img :src="scope.row.dirType=='1'?fileBox:ordinary" style="width: 20px;height: 24px;"
|
|
|
- alt="" class="juli">
|
|
|
- <span class="shouzhi"> {{ scope.row.dirName }}</span>
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="createTime" label="时间" width="280" />
|
|
|
- <el-table-column prop="dirType" label="类型">
|
|
|
- <template #default="scope">
|
|
|
- <span v-if="scope.row.dirType == '1'">普通目录</span>
|
|
|
- <span v-else>组织目录</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="加密等级">
|
|
|
- <template #default="scope">
|
|
|
- <span>
|
|
|
- {{setTablelevel(scope.row.encryptLevel)}}
|
|
|
- </span>
|
|
|
+ <!-- </div> -->
|
|
|
+ <!-- 展示文件夹盒子 -->
|
|
|
+ <!-- 文件夹 -->
|
|
|
+ <div class="showBox">
|
|
|
+ <div class="detailBox file-jia" @click="mouseClick">
|
|
|
+ <el-collapse v-model="folder">
|
|
|
+ <el-collapse-item name="1" class="custom-collapse-item">
|
|
|
+ <template #title>
|
|
|
+ <span class="file-title">文件夹</span>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table v-if="fileGrid == 1" :data="folderList" height="37vh" style="width: 100%" :scrollbar-always-on="true"
|
|
|
+ @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
|
|
|
+ @row-contextmenu="folderRClick" ref="taskTableRef">
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column label="名称" :show-overflow-tooltip="true" :tooltip-options="{showAfter: 1000}" width="600">
|
|
|
+ <template #default="scope">
|
|
|
+ <span class="juzhong">
|
|
|
+ <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,true)" class="juli">
|
|
|
+ <Star />
|
|
|
+ </el-icon>
|
|
|
+ <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="" class="juli">
|
|
|
+ <img :src="scope.row.dirType=='1'?fileBox:ordinary" style="width: 20px;height: 24px;"
|
|
|
+ alt="" class="juli">
|
|
|
+ <span class="shouzhi"> {{ scope.row.dirName }}</span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="createTime" label="时间" width="280" />
|
|
|
+ <el-table-column prop="dirType" label="类型">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.dirType == '1'">普通目录</span>
|
|
|
+ <span v-else>组织目录</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="加密等级">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>
|
|
|
+ {{setTablelevel(scope.row.encryptLevel)}}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- </el-table>
|
|
|
- <PlaceGridFolder v-else @folderClick="folderClick" :folderList="folderList" :restName="restName"
|
|
|
- :collectFolder="collectFolder" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack" :thisFolder="thisFolder" :impDirId="impDirId">
|
|
|
- </PlaceGridFolder>
|
|
|
- </el-collapse-item>
|
|
|
- </el-collapse>
|
|
|
- <!-- 右键唤出的菜单 -->
|
|
|
- <div class="right_menu" v-if="folderVisible"
|
|
|
- :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
|
|
|
- <!-- <div class="menu_item" @click="folderClick(null, null)">
|
|
|
- <img src="@/assets/images/trash.png" alt="" />
|
|
|
- <span>打开</span>
|
|
|
- </div> -->
|
|
|
- <div class="menu_item" @click="restName(null, null)">
|
|
|
- <img src="@/assets/images/textbox.png" alt="" />
|
|
|
- <span class="shouzhi">重命名</span>
|
|
|
- </div>
|
|
|
- <div class="menu_item" @click="collectFolder">
|
|
|
- <img src="@/assets/images/collect.png" alt="" />
|
|
|
- <span class="shouzhi">收藏</span>
|
|
|
- </div>
|
|
|
- <div class="menu_item" v-if="thisFolder.dirType ==='1' && clickRow.dirType === '2' && isDept" @click="upFirstFoler(null)">
|
|
|
- <img src="@/assets/images/notePencil.png" alt="" />
|
|
|
- <span class="shouzhi">编辑</span>
|
|
|
+ </el-table>
|
|
|
+ <PlaceGridFolder v-else @folderClick="folderClick" :folderList="folderList" :restName="restName"
|
|
|
+ :collectFolder="collectFolder" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack" :thisFolder="thisFolder" :impDirId="impDirId">
|
|
|
+ </PlaceGridFolder>
|
|
|
+ </el-collapse-item>
|
|
|
+ </el-collapse>
|
|
|
+ <!-- 右键唤出的菜单 -->
|
|
|
+ <div class="right_menu" v-if="folderVisible"
|
|
|
+ :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
|
|
|
+ <!-- <div class="menu_item" @click="folderClick(null, null)">
|
|
|
+ <img src="@/assets/images/trash.png" alt="" />
|
|
|
+ <span>打开</span>
|
|
|
+ </div> -->
|
|
|
+ <div class="menu_item" @click="restName(null, null)">
|
|
|
+ <img src="@/assets/images/textbox.png" alt="" />
|
|
|
+ <span class="shouzhi">重命名</span>
|
|
|
+ </div>
|
|
|
+ <div class="menu_item" @click="collectFolder">
|
|
|
+ <img src="@/assets/images/collect.png" alt="" />
|
|
|
+ <span class="shouzhi">收藏</span>
|
|
|
+ </div>
|
|
|
+ <div class="menu_item" v-if="thisFolder.dirType ==='1' && clickRow.dirType === '2' && isDept" @click="upFirstFoler(null)">
|
|
|
+ <img src="@/assets/images/notePencil.png" alt="" />
|
|
|
+ <span class="shouzhi">编辑</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 文件 -->
|
|
|
- <div class="fileTable">
|
|
|
- <el-collapse v-model="files" >
|
|
|
- <el-collapse-item name="2" class="">
|
|
|
- <template #title>
|
|
|
- <span class="file-title">文件</span>
|
|
|
- </template>
|
|
|
- <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="30" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid == 1" :height="fileHeight" :data="fileList" :scrollbar-always-on="true" style="width: 100%"
|
|
|
- @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
|
|
|
- @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
- <el-table-column label="名称" width="600">
|
|
|
- <template #default="scope">
|
|
|
- <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="juzhong">
|
|
|
- <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,false)">
|
|
|
- <Star />
|
|
|
- </el-icon>
|
|
|
- <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="" class="juli">
|
|
|
- <img :src="setImg(scope.row.fileType)" style="width:22px;height:22px;" alt="" class="juli">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- placement="top"
|
|
|
- :show-after="1000"
|
|
|
- :content="scope.row.fileName"
|
|
|
- >
|
|
|
- <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
|
|
|
- <span class="shouzhi">{{ scope.row.fileName }}</span>
|
|
|
- </el-tooltip>
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="createTime" label="时间" sortable width="280" />
|
|
|
- <el-table-column prop="fileType" label="类型" />
|
|
|
- <el-table-column label="大小">
|
|
|
- <template #default="scope">
|
|
|
- <span>
|
|
|
- {{ formatFileSize(scope.row.fileSize) }}
|
|
|
- </span>
|
|
|
+ <!-- 文件 -->
|
|
|
+ <div class="fileTable">
|
|
|
+ <el-collapse v-model="files" >
|
|
|
+ <el-collapse-item name="2" class="">
|
|
|
+ <template #title>
|
|
|
+ <span class="file-title">文件</span>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <PalaceGridFile v-else :fileHeight="fileHeight" @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
|
|
|
- @lastBB="lastBB" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @handleRowClick="handleRowClick" @onlineCase="onlineCase" @shareBack="shareBack" :thisFolder="thisFolder" :fileList="fileList"></PalaceGridFile>
|
|
|
- </el-collapse-item>
|
|
|
- </el-collapse>
|
|
|
- <div :class="{'setCli':!noMenuItem}" v-if="cliCC" :style="{ left: xz + 'px', top: yz -100 + 'px' }">
|
|
|
- <template v-for="(item, index) in filterMouseCli()" :key="index">
|
|
|
- <p @click="chooseSet(item, index, 1)" v-if="!noMenuItem" class="chooseSet shouzhi">
|
|
|
- <img :src="item.img" alt="">
|
|
|
- <span class="shouzhi"></span>{{ item.name }}
|
|
|
- <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
|
|
|
- style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
|
|
|
- </p>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
|
|
|
- <p @click="chooseSet1(0)" class="chooseSet">
|
|
|
- <img src="../../assets/images/user.png" alt="">
|
|
|
- 选择人员
|
|
|
- </p>
|
|
|
- <p class="chooseSet" @click="goLock">
|
|
|
- <img src="../../assets/images/archiveTray.png" alt="">
|
|
|
- 归档
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="30" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid == 1" :height="fileHeight" :data="fileList" :scrollbar-always-on="true" style="width: 100%"
|
|
|
+ @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
|
|
|
+ @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column label="名称" width="600">
|
|
|
+ <template #default="scope">
|
|
|
+ <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="juzhong">
|
|
|
+ <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,false)">
|
|
|
+ <Star />
|
|
|
+ </el-icon>
|
|
|
+ <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="" class="juli">
|
|
|
+ <img :src="setImg(scope.row.fileType)" style="width:22px;height:22px;" alt="" class="juli">
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top"
|
|
|
+ :show-after="1000"
|
|
|
+ :content="scope.row.fileName"
|
|
|
+ >
|
|
|
+ <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
|
|
|
+ <span class="shouzhi">{{ scope.row.fileName }}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="createTime" label="时间" sortable width="280" />
|
|
|
+ <el-table-column prop="fileType" label="类型" />
|
|
|
+ <el-table-column label="大小">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>
|
|
|
+ {{ formatFileSize(scope.row.fileSize) }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <PalaceGridFile v-else :fileHeight="fileHeight" @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
|
|
|
+ @lastBB="lastBB" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @handleRowClick="handleRowClick" @onlineCase="onlineCase" @shareBack="shareBack" :thisFolder="thisFolder" :fileList="fileList"></PalaceGridFile>
|
|
|
+ </el-collapse-item>
|
|
|
+ </el-collapse>
|
|
|
+
|
|
|
+ </div>
|
|
|
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-else>
|
|
|
- <div>
|
|
|
- <el-button @click="editOnline = true; historyPrew = false">返回</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <FileEdit :docId="clickRowId" :copyRow="copyRow" :historyPrew="historyPrew"
|
|
|
- :historycopyRow="historycopyRow" :onlyView="onlyView" @cancleHistoryPrew="cancleHistoryPrew">
|
|
|
- </FileEdit>
|
|
|
+ <ListShow v-show="leftShowList == 0" @handleSelectionChange="handleSelectionChange" :fileList="fileList" @changeListSort="changeListSort" @delCollect="delCollect" @collectByStar="collectByStar" @handleRowClick="handleRowClick"></ListShow>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div :class="{'setCli':!noMenuItem}" v-if="cliCC" :style="{ left: xz + 'px', top: yz -100 + 'px' }">
|
|
|
+ <template v-for="(item, index) in filterMouseCli()" :key="index">
|
|
|
+ <p @click="chooseSet(item, index, 1)" v-if="!noMenuItem" class="chooseSet shouzhi">
|
|
|
+ <img :src="item.img" alt="">
|
|
|
+ <span class="shouzhi"></span>{{ item.name }}
|
|
|
+ <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
|
|
|
+ style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
|
|
|
+ <p @click="chooseSet1(0)" class="chooseSet">
|
|
|
+ <img src="../../assets/images/user.png" alt="">
|
|
|
+ 选择人员
|
|
|
+ </p>
|
|
|
+ <p class="chooseSet" @click="goLock">
|
|
|
+ <img src="../../assets/images/archiveTray.png" alt="">
|
|
|
+ 归档
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
|
|
|
<!-- 扩容弹窗 -->
|
|
|
<div>
|
|
@@ -466,6 +477,7 @@
|
|
|
</div>
|
|
|
<!-- 扫描文件移动到 -->
|
|
|
<MoveTo v-if="openScanMove" :spaceType='2' :scanFileArr="scanFileArr" :thisFolder="thisFolder" :openScanMove="openScanMove" @closeOpenScanMove='closeOpenScanMove'></MoveTo>
|
|
|
+ <TreeMenu v-show="showTreeMenu" :spaceType='2' :isDept="isDept" @upFirstFoler="upFirstFoler" @restName="restName" @delName="delName" :xz="xz" :yz="yz"></TreeMenu>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -488,6 +500,8 @@ import SpaceBig from './modalComponebts/SpaceBig.vue'
|
|
|
import PlaceGridFolder from '@/views/myfile/components/PlaceGridFolder.vue'
|
|
|
import PalaceGridFile from '@/views/myfile/components/PalaceGridFile.vue'
|
|
|
import ImgFile from "./jsComponents/ImgFile"
|
|
|
+import LeftList from "@/components/LeftList/LeftList.vue"
|
|
|
+import ListShow from "@/components/ListShow/ListShow.vue"
|
|
|
import { Search } from '@element-plus/icons-vue'
|
|
|
import blueLeft from '../../assets/images/blueLeft.png'
|
|
|
import grayRight from "../../assets/images/grayRight.png"
|
|
@@ -523,6 +537,7 @@ import elTableInfiniteScroll from 'el-table-infinite-scroll'
|
|
|
import { getConfigKey } from "@/api/system/config.js"
|
|
|
import { setIcon } from "@/utils/index.js";
|
|
|
import uploadApi from '../../api/upload/upload'
|
|
|
+import TreeMenu from '@/components/TreeMenu/TreeMenu.vue'
|
|
|
|
|
|
export default {
|
|
|
directives: {
|
|
@@ -750,6 +765,11 @@ export default {
|
|
|
const isCode = ref(false)// 验证的类型
|
|
|
const isAsc = ref("desc");
|
|
|
const clickPath = inject("clickPath");
|
|
|
+ const leftShowList = ref(localStorage.getItem('leftShowList') ||1)
|
|
|
+ const thisFirst = ref()
|
|
|
+ const ListtreeData = ref()
|
|
|
+ const searchFolderTree = ref()
|
|
|
+ const showTreeMenu = ref(false)
|
|
|
const changeSort = async () => {
|
|
|
isAsc.value == "asc" ? (isAsc.value = "desc") : (isAsc.value = "asc")
|
|
|
refreshFile()
|
|
@@ -764,6 +784,18 @@ export default {
|
|
|
// folderList.value = res.rows
|
|
|
})
|
|
|
}
|
|
|
+ const changeListSort = async (listAsc)=>{
|
|
|
+ const query = `${thisFolder.value.dirId}?isAsc=${listAsc}&orderByColumn=createTime&pageSize=9999&pageNum=1`
|
|
|
+ myfile.getById(query)
|
|
|
+ .then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ fileList.value = res.rows;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(error => {
|
|
|
+ console.error("myfile.getAllFileMenu 调用失败:", error);
|
|
|
+ });
|
|
|
+ }
|
|
|
const changeShow =async (fileGrids) => {
|
|
|
// console.log('fileGrid',fileGrid.value);
|
|
|
filePageNum.value = 1
|
|
@@ -866,11 +898,34 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
function getSpaceList() {
|
|
|
+ getFileTree()
|
|
|
myfile.fileType(2).then(res => {
|
|
|
useSpace.value = res.data.usedCap
|
|
|
allSpace.value = res.data.spaceCap
|
|
|
})
|
|
|
}
|
|
|
+ //获取文件树
|
|
|
+ function getFileTree() {
|
|
|
+ documents.fileTree(2).then((res) => {
|
|
|
+ res.disabled = true;
|
|
|
+ ListtreeData.value = [res];
|
|
|
+ function getAllNodeIds(nodes) {
|
|
|
+ nodes.forEach((node) => {
|
|
|
+ if (node.remark) {
|
|
|
+ node.remark = JSON.parse(node.remark);
|
|
|
+ }
|
|
|
+ if (node.children && node.children.length > 0) {
|
|
|
+ getAllNodeIds(node.children);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return nodes;
|
|
|
+ }
|
|
|
+ // 调用递归函数获取所有节点的 id
|
|
|
+ getAllNodeIds(ListtreeData.value);
|
|
|
+ // console.log("treedataarr", arr);
|
|
|
+ // console.log("treeData", treeData.value);
|
|
|
+ });
|
|
|
+ }
|
|
|
function changeFile(row, num) {
|
|
|
const labelItem = {
|
|
|
name:row.dirName,
|
|
@@ -935,7 +990,18 @@ export default {
|
|
|
menuList.value.push(newItem);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ function folderBlur() {
|
|
|
+ console.log('searchFolderTree',searchFolderTree.value);
|
|
|
+ // if (searchFire.value == '') {
|
|
|
+ // getAllTop()
|
|
|
+ // } else {
|
|
|
+ // const searchTerm = searchFire.value.trim().toLowerCase(); // 转换为小写字母并去除首尾空格
|
|
|
+ // fileMenu.value = fileMenu.value.filter(item => {
|
|
|
+ // const dirName = item.dirName.trim();
|
|
|
+ // return dirName.includes(searchTerm);
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ }
|
|
|
// x图标事件
|
|
|
function shotdown(row) {
|
|
|
menuList.value = menuList.value.filter(item => item.name !== row.name)
|
|
@@ -969,6 +1035,18 @@ export default {
|
|
|
cliCC.value = true
|
|
|
}
|
|
|
}
|
|
|
+ // 树节点右键事件
|
|
|
+ function treeRClick(row, col, e) {
|
|
|
+ console.log('row', row);
|
|
|
+ // isFolder.value = "N"
|
|
|
+ clickRow.value = row
|
|
|
+ e.preventDefault();
|
|
|
+ e.stopPropagation();
|
|
|
+ xz.value = e.pageX
|
|
|
+ yz.value = e.pageY
|
|
|
+ showTreeMenu.value = true
|
|
|
+
|
|
|
+ }
|
|
|
// 申请扩容
|
|
|
async function askApply() {
|
|
|
const res = await fileSpace.querySpace(impSpaceId.value)
|
|
@@ -1216,6 +1294,7 @@ export default {
|
|
|
const closeUpload =() =>{
|
|
|
uploadModal.value = false;
|
|
|
fileArr.value = [];
|
|
|
+ fileBig.value = 0
|
|
|
loadingUpload.value = false
|
|
|
}
|
|
|
// 移除上传的某些文件
|
|
@@ -1317,16 +1396,24 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
function delName(row, num) {
|
|
|
+ row = row ? row : clickRow.value
|
|
|
documents.delDocument(row.dirId).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
getAllTop()
|
|
|
+ getSpaceList()
|
|
|
ElMessage({
|
|
|
message: "删除成功",
|
|
|
type: "success"
|
|
|
})
|
|
|
+ delFolder()
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+ const delFolder = ()=>{
|
|
|
+ const arrJson = sessionStorage.getItem('tabData')
|
|
|
+ const tableData = JSON.parse(arrJson)
|
|
|
+ console.log('tableData',tableData);
|
|
|
+ }
|
|
|
// 计算百分比
|
|
|
function percent() {
|
|
|
let numP = 0;
|
|
@@ -1338,7 +1425,7 @@ export default {
|
|
|
|
|
|
// 文件夹每行点击事件
|
|
|
function folderClick(row, list,e,jump) {
|
|
|
- if(!pathLabelData.value[0]){
|
|
|
+ if(!pathLabelData.value[0]&& leftShowList.value == 1){
|
|
|
// 创建标签
|
|
|
const addData = {
|
|
|
path: '/department' + row.dirId,
|
|
@@ -1428,6 +1515,58 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+ // 左边树节点每行点击事件
|
|
|
+ function listfolderClick(row,firstData) {
|
|
|
+ if(row){
|
|
|
+ thisFolder.value = row
|
|
|
+ }
|
|
|
+ row = row?row:thisFolder.value
|
|
|
+
|
|
|
+ if (row.isEncrypt === "Y") {
|
|
|
+ getLeveldetailFn(row.encryptLevel)
|
|
|
+ } else {
|
|
|
+ thisFolderRole.value = null
|
|
|
+ }
|
|
|
+ console.log('row',row);
|
|
|
+ console.log('rowthisFolderRole',thisFolderRole.value);
|
|
|
+ newDirId.value = row.dirId
|
|
|
+ newSpaceId.value = row.spaceId
|
|
|
+ const query = `${newDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=9999&pageNum=1`
|
|
|
+ documents.getALLdocumentByType({
|
|
|
+ parentId: newDirId.value - 0,
|
|
|
+ spaceId: newSpaceId.value - 0,
|
|
|
+ isAsc: isAsc.value,
|
|
|
+ orderByColumn: "createTime"
|
|
|
+ }, 2).then(res => {
|
|
|
+ folderList.value = res.rows
|
|
|
+ if (res.rows.length === 0) {
|
|
|
+ myfile.getById(query).then(res => {
|
|
|
+ // console.log('res = ',res);
|
|
|
+ if (res.code === 200) {
|
|
|
+ tableTotal.value = res.total
|
|
|
+ if (res.rows.length < res.total) {
|
|
|
+ //第一次拿到的数据少于总数开启下拉事件
|
|
|
+ tableBeEnd.value = false
|
|
|
+ }
|
|
|
+ fileList.value = JSON.parse(JSON.stringify(res.rows))
|
|
|
+ }
|
|
|
+ // console.log('folderClickshijian1',tableTotal.value,tableBeEnd.value);
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ myfile.getById(query).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ tableTotal.value = res.total
|
|
|
+ if (res.rows.length < res.total) {
|
|
|
+ //第一次拿到的数据少于总数开启下拉事件
|
|
|
+ tableBeEnd.value = false
|
|
|
+ }
|
|
|
+ fileList.value = JSON.parse(JSON.stringify(res.rows))
|
|
|
+ }
|
|
|
+ // console.log('fileList',fileList.value);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
// 确认文件重命名
|
|
|
function sureChangeName() {
|
|
|
myfile.editNewMenu({
|
|
@@ -1548,7 +1687,7 @@ export default {
|
|
|
arr = arr.filter(item => item.name !== "文字识别")
|
|
|
}
|
|
|
// console.log('thisFolderRole',thisFolderRole.value);
|
|
|
- if(thisFolderRole.value.roles){
|
|
|
+ if(thisFolderRole.value?.roles){
|
|
|
// 加密登记
|
|
|
// console.log('thisFolderRole',thisFolderRole.value);
|
|
|
arr = rightMenuRole(toRaw(thisFolderRole.value),arr)
|
|
@@ -1597,6 +1736,11 @@ export default {
|
|
|
// console.log("close");
|
|
|
folderVisible.value = false;
|
|
|
};
|
|
|
+ // 关闭tree右键菜单
|
|
|
+ const closeTreeRMenu = () => {
|
|
|
+ // console.log("close");
|
|
|
+ showTreeMenu.value = false;
|
|
|
+ };
|
|
|
// 文件夹收藏事件
|
|
|
const collectFolder = () => {
|
|
|
if(clickRow.value.isFavorite === "Y"){
|
|
@@ -1691,11 +1835,11 @@ export default {
|
|
|
if(edit){
|
|
|
getFirstFolder()
|
|
|
}
|
|
|
- if(toRaw(thisFolder.value).dirId && !leftNewFile.value){//如果点开了文件夹
|
|
|
- // console.log(111);
|
|
|
- folderClick()
|
|
|
- }else{
|
|
|
- // console.log(222);
|
|
|
+ if (toRaw(thisFolder.value)?.dirId && !leftNewFile.value && leftShowList.value == 1 ) {//如果点开了文件夹
|
|
|
+ folderClick()
|
|
|
+ } else if(toRaw(thisFolder.value)?.dirId && !leftNewFile.value && leftShowList.value == 0){
|
|
|
+ listfolderClick()
|
|
|
+ }else {
|
|
|
getAllTop()
|
|
|
}
|
|
|
getSpaceList()
|
|
@@ -2002,6 +2146,20 @@ export default {
|
|
|
openScanMove.value = false
|
|
|
refreshFile()
|
|
|
}
|
|
|
+ const changeLeftShow = ()=>{
|
|
|
+ leftShowList.value = leftShowList.value == 1?0:1
|
|
|
+ thisFolder.value = {}
|
|
|
+ localStorage.setItem('leftShowList',leftShowList.value)
|
|
|
+ if(!leftShowList.value){
|
|
|
+ console.log('toList');
|
|
|
+ // 创建标签
|
|
|
+ const addData = {
|
|
|
+ path: '/department',
|
|
|
+ label: '部门文件'
|
|
|
+ }
|
|
|
+ clickPath(null,addData)
|
|
|
+ }
|
|
|
+ }
|
|
|
watch(() => folder.value, async(newValue, oldValue) => {
|
|
|
// console.log('iFrameData 发生改变了', newValue, oldValue);
|
|
|
console.log('files',newValue);
|
|
@@ -2055,6 +2213,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
onMounted(() => {
|
|
|
+ leftShowList.value = localStorage.getItem('leftShowList') ||0
|
|
|
getAllTop()
|
|
|
getSpaceList()
|
|
|
getUserInfo()
|
|
@@ -2067,6 +2226,7 @@ export default {
|
|
|
window.addEventListener("click", closeRMenu, true);
|
|
|
window.addEventListener("mousewheel", mouseClick, true);
|
|
|
window.addEventListener("click", mouseClick, true);
|
|
|
+ window.addEventListener("click", closeTreeRMenu, true);
|
|
|
})
|
|
|
onActivated(()=>{
|
|
|
// console.log('onActivated.query',route.query);
|
|
@@ -2097,6 +2257,7 @@ export default {
|
|
|
refreshFile()
|
|
|
})
|
|
|
}
|
|
|
+ leftShowList.value = localStorage.getItem('leftShowList') ||0
|
|
|
loadingPreview.value = false
|
|
|
},500)
|
|
|
|
|
@@ -2346,7 +2507,19 @@ export default {
|
|
|
fileBig,
|
|
|
isAsc,
|
|
|
changeSort,
|
|
|
- clickPath
|
|
|
+ clickPath,
|
|
|
+ leftShowList,
|
|
|
+ changeLeftShow,
|
|
|
+ listfolderClick,
|
|
|
+ ListtreeData,
|
|
|
+ getFileTree,
|
|
|
+ searchFolderTree,
|
|
|
+ treeRClick,
|
|
|
+ showTreeMenu,
|
|
|
+ closeTreeRMenu,
|
|
|
+ delFolder,
|
|
|
+ changeListSort,
|
|
|
+ folderBlur
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -2367,7 +2540,10 @@ export default {
|
|
|
inputPassword,
|
|
|
PathLabel,
|
|
|
ScanFile,
|
|
|
- MoveTo
|
|
|
+ MoveTo,
|
|
|
+ LeftList,
|
|
|
+ ListShow,
|
|
|
+ TreeMenu
|
|
|
},
|
|
|
}
|
|
|
|
|
@@ -2425,15 +2601,25 @@ p {
|
|
|
.searchBox{
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
position: relative;
|
|
|
padding: 8px 16px;
|
|
|
- .SearchIcon{
|
|
|
+ .SearchIcon {
|
|
|
color: gray;
|
|
|
position: absolute;
|
|
|
- right: 5%;
|
|
|
+ right: calc(5% + 34px);
|
|
|
top: 35%;
|
|
|
|
|
|
}
|
|
|
+ .left_changeShow{
|
|
|
+ margin-left: 10px;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ img{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.setBox {
|
|
|
width: 88px;
|