Browse Source

update

dev
zhengzhou 4 years ago
parent
commit
4a542f1d99
6 changed files with 2913 additions and 267 deletions
  1. +4
    -0
      src/components/search-bar/search-bar.vue
  2. +2372
    -0
      src/views/main_web/workspace/components/file-explorer/index.vue
  3. +63
    -0
      src/views/main_web/workspace/components/file-explorer/search-result.vue
  4. +196
    -0
      src/views/main_web/workspace/components/work-flow.vue
  5. +276
    -249
      src/views/main_web/workspace/index.vue
  6. +2
    -18
      src/views/main_web/workspace/workspace.new.vue

+ 4
- 0
src/components/search-bar/search-bar.vue View File

@@ -36,6 +36,10 @@
isShowSearchBar: false,
}
},
model: {
prop: 'value',
event: 'input'
},
props: {
placeholder: {
type: String,


+ 2372
- 0
src/views/main_web/workspace/components/file-explorer/index.vue
File diff suppressed because it is too large
View File


+ 63
- 0
src/views/main_web/workspace/components/file-explorer/search-result.vue View File

@@ -0,0 +1,63 @@
<!--
本文件暂时不用,后面继续拆分file-explorer组件时,替换搜索页部分的内容
-->
<template>
<div class="search-result">
<change-btn :titleList="['工作文件', '协作文件']" class="operate-bar" @changeContentBtnClick="changeContentBtnClick"/>
<div class="out-wrap">
<div class="search-res-page-wrap">
<div class="list-group" v-if="currentBtnIndex == 0">
<!-- 工作文件 -->
<FileItem
class="lisy-group-item"
v-for="file in searchWorkFileList"
:key="file.id"
:file="file"
:clientDownLoad="clientDownLoad"
:showFileMilestone="showFileMilestone"
:nodeFolder="currentNodeFolder"
:currentFolder="currentFolder"
@commitFile="showCommitWindow"
@dblclickFile="fileClick(file)"
@filePreview="filePreview"
@openFileWith="openFileWith(file)"
@openfileBtnClick="fileClick(file)"
@copyFileBtnClick="copyWorkFileBtnClick(file)"
@oneFileRightBtnClick="oneFileRightBtnClick"
@deleteFileClick="deleteFileClick"
@checkMilestoneClick="checkMilestoneClick"
:tempRightFileId="tempRightFileId"
:localFileHashMap="localFileHashMap"
:loadingState="localFileLoadStateMap[file.id]"
@dragstart.native="onfileDragStart(file, $event)"
draggable
/>
<div class="no-file-tips" v-if="searchWorkFileList && searchWorkFileList.length == 0">搜索不到与“{{searchContent}}”相关的工作文件</div>
</div>
<div class="list-group" v-else-if="currentBtnIndex == 1">
<!-- 协作文件 -->
<FileItem
v-for="file in searchCoopFileList"
:key="file.id"
:file="file"
:tempRightFileId="tempRightFileId"
:clientDownLoad="clientDownLoad"
:showFileMilestone="showFileMilestone"
:nodeFolder="currentNodeFolder"
:currentFolder="currentFolder"
@dblclickFile="fileClick(file)"
@filePreview="filePreview"
@openFileWith="openFileWith(file)"
@openfileBtnClick="fileClick(file)"
@oneFileRightBtnClick="oneFileRightBtnClick"
:localFileHashMap="localFileHashMap"
:loadingState="localFileLoadStateMap[file.id]"
@dragstart.native="onfileDragStart(file, $event)"
draggable
/>
<div class="no-file-tips" v-if="searchCoopFileList && searchCoopFileList.length == 0">搜索不到与“{{searchContent}}”相关的协作文件</div>
</div>
</div>
</div>
</div>
</template>

+ 196
- 0
src/views/main_web/workspace/components/work-flow.vue View File

@@ -0,0 +1,196 @@
<template>
<div class="work-flow">
<div class="flow-container">
<div class="flow-container-inner">
<div
class="yuandian"
v-for="(myfolder, index) in folderList"
:key="myfolder.id"
>
<!-- 移入按钮 -->
<div class="upList">
<div class="enterPoint">
<div
type="button"
class="linkBtn2 leftlinebox"
:key="indexfrom"
v-for="(from, indexfrom) in myfolder.listsShareFrom[1]"
>
<i class="leftline"></i>
<span
class="worllistt2"
:title="from"
>{{from.nodeName }}</span>
</div>
</div>
<div
class="enterLine"
v-if="myfolder.listsShareFrom[1].length > 0"
>
<i class="el-icon-caret-bottom bottomenter"></i>
</div>
</div>
<div class="conterpoint">
<button
type="button"
:class="{
currworkbutton: myfolder == currentNodeFolder,
workbutton: myfolder !== currentNodeFolder,
}"
@click="selectFolder(myfolder)"
:title="myfolder.folderName"
>
{{ myfolder.folderName }}
</button>
<i
class="linkline workend"
v-if="index < folderList.length - 1"
></i>
</div>
<!-- 移出按钮 -->
<div
class="bottomlist"
v-if="myfolder.listsShareFrom[0].length > 0"
>
<div class="leftlin2"></div>
<div class="outPoint">
<div
type="button"
class="linkBtn2 leftlinebox"
:key="indexShare"
v-for="(share, indexShare) in myfolder.listsShareFrom[0]"
>
<i class="leftline"></i>
<span
class="worllistt2"
:title="share"
>{{share.nodeName}}</span>
</div>
<div class="outLine">
<i class="el-icon-caret-bottom bottomenter"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>


<script>
import { queryFileExchange, queryNestTemplateByProjectId } from '@/services/template';
export default {
props: {
projectId: String,
currentNodeFolder: Object,
folderList: Array,
},
mounted() {
this.fetchFileExchange();
},
watch: {
folderList() {
this.fetchFileExchange();
}
},
methods: {
selectFolder(folder) {
this.$emit('select', folder);
},
async fetchFileExchange() {
if(!this.folderList || !this.folderList.length) { return; }
const mainTemplateId = this.folderList[0]?.templateId;
const [res, data/* , data2 */] = await Promise.all([
queryNestTemplateByProjectId(this.projectId),
this.$fetchApi('folder/queryAllNodeFolderListByProjectId', { projectId: this.projectId }),
// this.$fetchApi('template/queryTemplateNodeByTemplateId',{ templateId: mainTemplateId})
]);
const temp = (data.Data.folder || []).reduce((h, folder)=>{
if(folder.NodeId === mainTemplateId) { return h; }
if(folder.FolderName === '公共文件夹') { return h; }
h[folder.NodeId] = {};
h[folder.NodeId].nodeName = folder.FolderName;
h[folder.NodeId].id = folder.Id;
//h[folder.NodeId]=folder.FolderName;
return h;
},{});

// const nodeLists = data2.Data ? data2.Data.children : [];
// const nestNodeIdLists=[];
// const parentNodeId;
// this.getNestItem(nodeLists,nestNodeIdLists, parentNodeId);
// var headNode={nodeId:null, parentNodeId: mainTemplateId };
// nestNodeIdLists.unshift(headNode);
// listsShareFrom[0] 存储的是给别人的 -》
// listsShareFrom[1] 存储的是别人给的 《-
// this.folderNodeIdMap = temp;

// 第一遍时顶级的模板的templateId
this.nestNodeFileExchangeOperate(mainTemplateId, temp);
// 嵌套模板的文件关系查询
(res.Data || []).forEach(({ NestTemplateId }) => {
this.nestNodeFileExchangeOperate(NestTemplateId, temp);
});
},
// 这里的temp是键值为nodeId 值是包含folder名字和folderId的一个对象
async nestNodeFileExchangeOperate(templateId, temp) {
const nestRes = await queryFileExchange(templateId, templateId);
if(nestRes.Code !== 0) return;

let nestData = nestRes.Data;
if(!nestData) return;
this.folderList.forEach(item => {
nestData.forEach(item2 => {
if(item.nodeId == item2.PermCode && item2.Permission == 1 && item.nodeId !== item2.SysCode) {
const isExistsFrom = item.listsShareFrom[1].find(obj1 => obj1.nodeId == item2.SysCode);
if(!isExistsFrom && temp[item2.SysCode]) {
item.listsShareFrom[1].push(temp[item2.SysCode]);
}
} else if(item.nodeId == item2.SysCode && item2.Permission == 1 && item.nodeId !== item2.PermCode) {
const isExistsTo = item.listsShareFrom[0].find(obj0=> obj0.nodeId == item2.PermCode);
if(!isExistsTo && temp[item2.PermCode]) {
item.listsShareFrom[0].push(temp[item2.PermCode]);
}
}
})
})
},
/**
* 获取嵌套节点
*/
getNestItem(nodeLists, nestNodeIdLists, parentNodeId){
nodeLists.forEach(item => {
if(item.children && item.children.length > 0){
parentNodeId = item.id;
this.getNestItem(item.children, nestNodeIdLists, parentNodeId)
}
// if(item.isNest){
// nestNodeIdLists.push({nodeId:item.id,parentNodeId:parentNodeId});
// }
})
},
}
};
</script>

<style lang="less" scoped>
.work-flow {
height: 100%;
background-color: #f0f0f0;
.flow-container {
height: calc(100% - 64px);
margin-left: 32px;
width: calc(100% - 114px);
display: flex;
margin: auto;
// justify-content: center;
overflow-y: auto;
&-inner {
display: flex;
margin: 0 auto;
align-items: center;
}
}
}
</style>

+ 276
- 249
src/views/main_web/workspace/index.vue View File

@@ -1,68 +1,84 @@
<template>
<div v-cloak>
<div
class="workspace calc-height mt-64"
v-cloak
>
<app-header
backBtnTitle="退出"
:backBtnTitle="workFlowVisible ? '回到协作空间' : '退出'"
:isWorkspaceTopBar="true"
:showUserCenter="true"
class="app-header-style workspace-header"
showRecycleBin
:showRecycleBin="!workFlowVisible"
:onBackBtnClick="workFlowVisible ? closeWorkFlow : undefined"
>
<template #center>
<!-- 工作链 -->
<header-flow-tabs
v-if="currentNodeFolder"
v-show="!workFlowVisible"
:folderList="nodeFolders"
:currentNodeFolder="currentNodeFolder"
@changeFolder="nowFolderClick"
@showWorkFlow="workFlowVisible = true"
/>
<!-- <WorkLine
class="my-workline"
:class="{'adjust-workline-pos-client': isClient, 'adjust-workline-pos-web': !isClient}"
:isShowlink="showWorkline"
:listUserFolders="nodeFolders"
:nowFolderIndex="nowFolderIndex"
:nowFolderName="nowFolderName"
:nestTemplateLists="nestTemplateLists"
@goFolderAndBack="goFolderAndBack"
@previousFolder="previousFolder"
@showWorklinkPage="showWorklinkPage"
@nowFolderClick="nowFolderClick"
@hideWorklinkPage="hideWorklinkPage"
@finishGetExchangeNodes="finishGetExchangeNodes"
/> -->
<span v-show="workFlowVisible">{{projectName}}</span>
</template>
<template #right>
<search-bar
v-show="!workFlowVisible"
class="proj-search-bar"
placeholder="请输入要搜索的文件名"
:maxLength="35"
v-model="searchKeywords"
@didHide="offSearch"
/>
</template>
</app-header>
<work-flow
v-show="workFlowVisible"
v-if="currentNodeFolder"
:projectId="projectId"
:folderList="nodeFolders"
:currentNodeFolder="currentNodeFolder"
@select="nowFolderClick"
/>
<template v-show="!workFlowVisible && currentNodeFolder">
<file-explorer
v-if="viewType === 'file-explorer'"
:currentNodeFolder="currentNodeFolder"
:searchContent="searchKeywords"
:nodeFolders="nodeFolders"
/>
</template>

</div>
</template>

<script>
import { propertyOf, uniqBy, throttle, flatten, debounce, cloneDeep } from 'lodash';
import AppHeader from '@/components/app-header'
import AppHeader from "@/components/app-header";
import SearchBar from "@/components/search-bar/search-bar";
import HeaderFlowTabs from './components/header-flow-tabs';
import * as services from './service';
import { getUserListByNode } from '@/services/user.js';
import { firstCharToLowerCase } from '@/utils/tool';
import HeaderFlowTabs from "./components/header-flow-tabs";
import FileExplorer from "./components/file-explorer";
import * as services from "./service";
import { getUserListByNode } from "@/services/user.js";
import { firstCharToLowerCase } from "@/utils/tool";
import WorkFlow from "./components/work-flow.vue";

export default {
components: { AppHeader, HeaderFlowTabs, SearchBar },
components: { AppHeader, HeaderFlowTabs, SearchBar, WorkFlow, FileExplorer },
data() {
return {
userId: sessionStorage.userId, // 当前用户id
projectId: sessionStorage.projId, // 当前项目id
projectName: sessionStorage.projName, // 当前项目名称
nodeFolders: [], // 节点文件夹
currentNodeFolder: {}, // 当前节点文件夹
currentFolder: {}, // 当前文件夹,可以是节点文件夹,可以是子文件夹
currentNodeFolder: null, // 当前节点文件夹
// currentFolder: {}, // 当前文件夹,可以是节点文件夹,可以是子文件夹
workFlowVisible: false, // 工作链页面显示开关
}
viewType: "file-explorer", // file-explorer || archive-view
// 搜索关键字
searchKeywords: "",
};
},
mounted() {
// 获取含有节点人员分配信息的节点列表 listNewFolder
@@ -71,54 +87,83 @@ export default {
this.fetchNodeFolders();
},
methods: {
closeWorkFlow() {
this.workFlowVisible = false;
},
offSearch() {
this.searchKeywords = "";
},
/* 获取节点文件夹列表 */
async fetchNodeFolders() {
const workList = await services.fetchWorkFlow(this.projectId, this.userId);
const folderList = workList.filter(folder => folder.nodeId !== folder.templateId && folder.folderName !== '公共文件夹');
const workList = await services.fetchWorkFlow(
this.projectId,
this.userId
);
const folderList = workList.filter(
(folder) =>
folder.nodeId !== folder.templateId &&
folder.folderName !== "公共文件夹"
);

this.nodeFolders = folderList;
this.folderMap = folderList.reduce((h, f) => (h[f.id] = f, h), {});
if(!folderList.length) return;
this.folderMap = folderList.reduce((h, f) => ((h[f.id] = f), h), {});
if (!folderList.length) return;
const paramsFolderId = this.$route.params.folderId;
// 匹配存在
if (paramsFolderId) {
this.currentNodeFolder = folderList.find(folder => folder.id === paramsFolderId) || folderList[0];
} else if(sessionStorage.nowFolderIndex) {
this.currentNodeFolder = folderList[sessionStorage.nowFolderIndex] || folderList[0];
this.currentNodeFolder =
folderList.find((folder) => folder.id === paramsFolderId) ||
folderList[0];
} else if (sessionStorage.nowFolderIndex) {
this.currentNodeFolder =
folderList[sessionStorage.nowFolderIndex] || folderList[0];
} else {
this.currentNodeFolder = folderList[0];
}
this.currentFolder = this.currentNodeFolder;
// this.currentFolder = this.currentNodeFolder;
// this.currentFolderInCoop = this.currentNodeFolder;
// this.fetchFolderFiles();
},
async getUserList(){
const { list: userList } = await getUserListByNode({ id: this.$store.state.currentCompanyId, nodeType: 'company' }, 1, 10000);
this.userList = userList;
return userList;
},
// 获得所有工作链节点的 协同节点的人员指派信息
async getAllNodePeopleInfo() {
// 获取所有的节点信息 以及 人员列表信息
const [userList, projectDataRes] = await Promise.all([
this.getUserList(),
this.$fetchApi('folder/queryAllNodeFolderListByProjectId', { projectId: this.projectId }),
const [{ list: userList }, projectDataRes] = await Promise.all([
getUserListByNode(
{ id: this.$store.state.currentCompanyId, nodeType: "company" },
1,
10000
),
this.$fetchApi("folder/queryAllNodeFolderListByProjectId", {
projectId: this.projectId,
}),
]);

const userHash = userList.reduce((h, user) => (h[user.id] = user, h), {})
const userHash = userList.reduce(
(h, user) => ((h[user.id] = user), h),
{}
);
const folderMap = {};
const { folder, manager } = (projectDataRes.Data || {});
const allNodefolderList = folder.reduce((iList,upperFolder) => {
if(upperFolder.FolderName === '公共文件夹') { return iList; }
if(upperFolder.NodeId === upperFolder.TemplateId) { return iList; }
const { folder, manager } = projectDataRes.Data || {};
const allNodefolderList = folder.reduce((iList, upperFolder) => {
if (upperFolder.FolderName === "公共文件夹") {
return iList;
}
if (upperFolder.NodeId === upperFolder.TemplateId) {
return iList;
}
const folder = firstCharToLowerCase(upperFolder);
folder.listChildren = [];
folder.listUser = folder.oldGeneralId.split(',').filter(a => a).map(id => ({...userHash[id]}));
folder.manageUser = (folder.oldManager === '0' ? '' : folder.oldManager).split(',').filter(a => a).map(id => ({...userHash[id]}));
folder.listUser = folder.oldGeneralId
.split(",")
.filter((a) => a)
.map((id) => ({ ...userHash[id] }));
folder.manageUser = (folder.oldManager === "0" ? "" : folder.oldManager)
.split(",")
.filter((a) => a)
.map((id) => ({ ...userHash[id] }));
folderMap[folder.id] = folder;
const parentFolder = folderMap[folder.superId];
if(!parentFolder) return iList;
if (!parentFolder) return iList;
parentFolder.listChildren.push(folder);
iList.push(folder);
return iList;
@@ -133,6 +178,7 @@ export default {
* 切换节点文件夹
*/
nowFolderClick(nextFolder) {
this.workFlowVisible = false; // 关闭工作链面板
this.goFolder(nextFolder);
// this.isShowStartNodeFolders = true;//上面切换点击到另一个工作节点的时候 协作文件先显示总的节点入口
},
@@ -143,24 +189,9 @@ export default {
const nextFolderIndex = this.nodeFolders.indexOf(nextFolder);
sessionStorage.nowFolderIndex = nextFolderIndex; // 用于刷新页面时使用
this.currentNodeFolder = nextFolder;
if(this.currentNodeFolder !== this.currentFolder) {
this.clearCurrentFolderFiles();
}
this.currentFolder = this.currentNodeFolder;
// this.currentFolderInCoop = this.currentNodeFolder;

this.breadcrumbFolderList = [];
this.breadcrumbFolderListInCoop = [];
// this.fetchFolderFiles();
// this.loadListTempFiles();

this.$nextTick(()=> {
// this.listenBottomHeight();
})
},
},
}
};

// function mergeFolderList(folderList, userHash) {
// const [headFolder, hash] = folderList.reduce((h, upperFolder) => {
@@ -192,12 +223,11 @@ export default {
// circulate(folder.listChildren);
// }
// })
// }
// }
// }
// circulate(folderList);
// return plainFolderList;
// }

</script>

<style>
@@ -221,222 +251,219 @@ export default {
background-color: #f0f0f0;
}
.app-header-style .app-header-content-right {
display: flex;
display: flex;
}

</style>
<style lang="scss" scoped>
.titleBox {
position: relative;
}
.app-header-style {
background-color: #f0f0f0;
}
.titleBox {
position: relative;
}
.app-header-style {
background-color: #f0f0f0;
}

.titlebar_head {
flex-direction: column;
}
.titlebar_head {
flex-direction: column;
}

.yiyun_section_top {
overflow: visible;
}
.yiyun_section_top {
overflow: visible;
}

.folder_breadcrumb {
::v-deep .el-breadcrumb__item {
user-select: none;
font-size: 18px;
display: inline-block;
height: 40px;
line-height: 40px;
.el-breadcrumb__separator {
color: #a7a8b7;
}
&:not(:last-child) {
cursor: pointer;
}
.folder_breadcrumb {
::v-deep .el-breadcrumb__item {
user-select: none;
font-size: 18px;
display: inline-block;
height: 40px;
line-height: 40px;
.el-breadcrumb__separator {
color: #a7a8b7;
}
&:not(:last-child) {
cursor: pointer;
}
}
}

::v-deep .readytodownload-icon {
position: relative;
top: 40px;
margin: 0 auto;
}
::v-deep .progress-circle , ::v-deep .readytodownload-icon {
width: 45px;
height: 45px;
background-color: #fff;
border-radius: 50%;
}
::v-deep .progress-circle , ::v-deep .readytodownload-icon img, ::v-deep .progress-circle .bg-pic{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
::v-deep .progress-circle svg {
position:relative !important;
}
::v-deep .readytodownload-icon {
position: relative;
top: 40px;
margin: 0 auto;
}
::v-deep .progress-circle,
::v-deep .readytodownload-icon {
width: 45px;
height: 45px;
background-color: #fff;
border-radius: 50%;
}
::v-deep .progress-circle,
::v-deep .readytodownload-icon img,
::v-deep .progress-circle .bg-pic {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

::v-deep .progress-circle svg .el-progress-circle__track {
stroke: #fff !important;
}
.filePreview{
text-align: center;
video{
width: 820px;
height: 600px;
}
}
::v-deep .progress-circle svg {
position: relative !important;
}

.img-container {
margin: 0 auto;
}
/* 新建样本文件弹框样式 */
.temp-file-dialog {
/* 新建样板文件弹框的提示文件名 */
.guide-template-file-name {
color: rgba(0, 0, 0, 1);
font-size: 14px;
text-align: center;
font-family: PingFangSC-Regular;
padding: 16px;
text-align: center;
}
::v-deep .progress-circle svg .el-progress-circle__track {
stroke: #fff !important;
}
.filePreview {
text-align: center;
video {
width: 820px;
height: 600px;
}
}

.img-container {
margin: 0 auto;
}
/* 新建样本文件弹框样式 */
.temp-file-dialog {
/* 新建样板文件弹框的提示文件名 */
.guide-template-file-name {
color: rgba(0, 0, 0, 1);
font-size: 14px;
text-align: center;
font-family: PingFangSC-Regular;
padding: 16px;
text-align: center;
}
}
</style>
<style lang="scss">
.temp-file-dialog {
.el-dialog {
background-color: #fcfcfc;
.temp-file-dialog {
.el-dialog {
background-color: #fcfcfc;

.el-dialog__header {
.el-dialog__header {
padding: 19px 0;
}
.el-dialog__body {
padding: 0 !important;
.el-form {
padding: 20px 0 0 0;
background-color: #f1f1f1;
.el-form-item {
margin:0 0 0 0;
}
}
}
.el-form-item__content {
padding: 0 16px;
.el-input__inner {
background-color: #ddd;
margin: 0 0 20px 0;
}
.el-dialog__body {
padding: 0 !important;
.el-form {
padding: 20px 0 0 0;
background-color: #f1f1f1;
.el-form-item {
margin: 0 0 0 0;
}
}
.dialog-footer {
display: flex;
justify-content: space-between;
padding: 16px;
}
.el-form-item__content {
padding: 0 16px;
.el-input__inner {
background-color: #ddd;
margin: 0 0 20px 0;
}
.el-dialog__footer {
padding: 0;
.el-button {
border-radius: 8px;
/* &.el-button--primary {
}
.dialog-footer {
display: flex;
justify-content: space-between;
padding: 16px;
}
.el-dialog__footer {
padding: 0;
.el-button {
border-radius: 8px;
/* &.el-button--primary {
background-color: #7850ff;
} */
}
}
}
}

}
</style>
<style scoped lang="scss">
.set-bg {
background-color: #f6f6f6;
}
.operate-bar {
width: 162px;
margin: 28px auto 15px;
}
.set-bg {
background-color: #f6f6f6;
}
.operate-bar {
width: 162px;
margin: 28px auto 15px;
}

.search-res-page-wrap {
margin: 0 64px;
box-sizing: border-box;
}
.out-wrap {
height: calc(100vh - (60px + 28px + 28px + 15px));
overflow: scroll;
}
.out-wrap::-webkit-scrollbar{
width: 8px;
border-radius: 4px;
}
.search-res-page-wrap {
margin: 0 64px;
box-sizing: border-box;
}
.out-wrap {
height: calc(100vh - (60px + 28px + 28px + 15px));
overflow: scroll;
}
.out-wrap::-webkit-scrollbar {
width: 8px;
border-radius: 4px;
}

.out-wrap::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
height: 10px;
background-color: #adadad;
}
.out-wrap::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
height: 10px;
background-color: #adadad;
}

/*当前窗口失去焦点时的滑块样式*/
.out-wrap::-webkit-scrollbar-thumb:window-inactive {
background-color: #adadad;
}
.no-file-tips {
font-size: 22px;
text-align: center;
margin: 100px auto;
}
.my-workline {
text-align: center;
}
/*当前窗口失去焦点时的滑块样式*/
.out-wrap::-webkit-scrollbar-thumb:window-inactive {
background-color: #adadad;
}
.no-file-tips {
font-size: 22px;
text-align: center;
margin: 100px auto;
}
.my-workline {
text-align: center;
}

.adjust-workline-pos-client {
position: relative;
top: -12px;
}
.adjust-workline-pos-web {
position: relative;
top: -2.5px;
}
.ml-4-mt-20 {
margin: 20px 0 0 4px;
}
.height-0 {
height: 0;
}
.adjust-workline-pos-client {
position: relative;
top: -12px;
}
.adjust-workline-pos-web {
position: relative;
top: -2.5px;
}
.ml-4-mt-20 {
margin: 20px 0 0 4px;
}
.height-0 {
height: 0;
}

.layout_content2 {
height: calc(100vh - 64px);
}
.layout_content2 {
height: calc(100vh - 64px);
}
// 调整协作文件显示区域的高度
.coopBox-max-height {
height: 300px;
}

.coopBox-max-height {
height: 300px;
}
</style>

<style scoped>
.workspace-header .app-header-center {
-webkit-app-region: no-drag;
}
.workspace-header .app-header-center {
-webkit-app-region: no-drag;
}

.set-workarea-height {
height: calc(100vh - 64px - 300px) !important;
}
.set-workarea-height {
height: calc(100vh - 64px - 300px) !important;
}

#workspace .yiyun_section_warp {
margin: 0 0 0 64px;
overflow: visible !important;
/* 防止只有一行文件的时候 工作区域的右键菜单会被遮挡 */
}
#workspace .yiyun_section_warp {
margin: 0 0 0 64px;
overflow: visible !important;
/* 防止只有一行文件的时候 工作区域的右键菜单会被遮挡 */
}
</style>

<style>
.conflit-message-box .el-icon-close:before {
content: '\e6db' !important;
}
.conflit-message-box .el-icon-close:before {
content: "\e6db" !important;
}
</style>

+ 2
- 18
src/views/main_web/workspace/workspace.new.vue View File

@@ -161,7 +161,7 @@
<AddFileButton
v-if="isClient"
@fileTempClick="fileTempClick"
:listTempFiles="listTempFiles"
:currentNodeFolder="currentNodeFolder"
:selectSystemFiles="selectSystemFiles"
:selectSystemFolders="selectSystemFolders"
/>
@@ -492,7 +492,7 @@
@openFile="fileClick"
:localWorkspacePrefix="localWorkspacePrefix"
:fileHistoryList ="fileHistoryList"
:file = "currentFile"
:file="currentFile"
>

</file-milestone>
@@ -627,7 +627,6 @@ export default {
uploadFileList: [], // 上传文件的队列
workFileList: [], // 工作文件队列

listTempFiles: [],//样板文件列表
currentSelectTempFile: null,//选择创建的样本文件
isShowNewTemplateFileDialog: false,//显示新建样本文件弹框

@@ -993,19 +992,6 @@ export default {
this.isShowNewTemplateFileDialog = true;
this.currentSelectTempFile = {...item};
},
// 加载样本文件列表
async loadListTempFiles() {
if(this.nodeFolders && this.nodeFolders[this.nowFolderIndex]) {
const nodeId = this.nodeFolders[this.nowFolderIndex].nodeId;
const res = await queryAllTemplateNodeModelFile(nodeId);
if (res.Code !== 0) return;
if(res.Data.length > 0) {
this.listTempFiles = res.Data.map(f => firstCharToLowerCase(f));
} else {
this.listTempFiles = [];
}
}
},
//预览文件
async filePreview(file,type){
const url = await services.filePreview(sessionStorage.companyId);
@@ -1450,7 +1436,6 @@ export default {
this.breadcrumbFolderList = [];
this.breadcrumbFolderListInCoop = [];
this.fetchFolderFiles();
this.loadListTempFiles();

this.$nextTick(()=> {
this.listenBottomHeight();
@@ -1505,7 +1490,6 @@ export default {
this.currentFolder = this.currentNodeFolder;
this.currentFolderInCoop = this.currentNodeFolder;
this.fetchFolderFiles();
this.loadListTempFiles();
},
/**
* 查询当前文件夹内容


Loading…
Cancel
Save