@@ -6,6 +6,11 @@ body { | |||
-webkit-font-smoothing: antialiased; | |||
} | |||
/* 导航栏设置 */ | |||
.no-drag { | |||
-webkit-app-region: no-drag; | |||
} | |||
/*登录注册*/ | |||
.loginbox { | |||
@@ -459,6 +464,7 @@ ul { | |||
margin: 0 auto; | |||
height: calc(100vh - 136px); | |||
} | |||
.yiyun_section_warp{ | |||
position: relative; | |||
display: block; | |||
@@ -9012,15 +9018,15 @@ h5.dulilabel{ | |||
/* .hide-scrollbar-thumb { | |||
background-color: #fcfcfc !important; | |||
} */ | |||
/*当前窗口失去焦点时的滑块样式*/ | |||
/*当前窗口失去焦点时的滑块样式 */ | |||
.personnel-list .content-wrap::-webkit-scrollbar-thumb:window-inactive, | |||
.right-part .part-wrap::-webkit-scrollbar-thumb:window-inactive, | |||
.proj-detail .proj-desc-wrap::-webkit-scrollbar-thumb:window-inactive, | |||
.proj-detail .summary-wrap::-webkit-scrollbar-thumb:window-inactive, | |||
.template_improve .summary-wrap::-webkit-scrollbar-thumb:window-inactive, | |||
.new-proj .template_select_content::-webkit-scrollbar-thumb:window-inactive { | |||
background-color: #adadad; | |||
/* background-color: transparent; */ | |||
/* background-color: #adadad; */ | |||
background-color: transparent; | |||
} | |||
/* 当前选中的工作负责人的框 */ | |||
@@ -37,6 +37,7 @@ | |||
'workspace-bigbody': $route.path.indexOf('/workspace') >=0, | |||
'mt-76': $route.name == 'newproject' || $route.name == 'projdetail'}" | |||
></router-view> | |||
</div> | |||
</template> | |||
<script> | |||
@@ -59,6 +60,7 @@ export default { | |||
outWorkSpace: false, | |||
isClient: system.isClient, | |||
onlineStatus: false,//网关状态 | |||
state: this.$store.state, | |||
}; | |||
}, | |||
created: function () { | |||
@@ -76,6 +78,8 @@ export default { | |||
system.keepLiveTest((status)=> { | |||
this.onlineStatus = status; | |||
sessionStorage.setItem('isOnLine', String(status && navigator.onLine)); | |||
}, (isMaxWindowSize) => { | |||
this.$store.state.isMaxWindowSize = isMaxWindowSize; | |||
}); | |||
} | |||
}, | |||
@@ -103,6 +107,8 @@ export default { | |||
// } else { | |||
// scrollnav.classList.remove("scorllbaron"); | |||
// } | |||
// 项目列表首页 | |||
}, | |||
/** | |||
* @description: 打开意见反馈弹框 | |||
@@ -33,14 +33,15 @@ | |||
</div> | |||
</div> | |||
<div v-if="(isWorkspaceTopBar && !isClient) || (isShowTopBar && !isClient)" class="app-header-top"></div> | |||
<div class="app-header-content" :class="{'adjust-content-pos': isWorkspaceTopBar && !isClient}"> | |||
<div class="app-header-content" | |||
:class="{'adjust-content-pos': isWorkspaceTopBar && !isClient}"> | |||
<div class="app-header-content-left"> | |||
<slot name="left"> | |||
<i class="yiyun_icon app-header-back-btn no-drag" :class="{ icon_topback_left: theme === 'white' || theme === 'basis', icon_topback_left_baise: theme === 'black' }" @click="navBack()" v-show="showBackBtn" /> | |||
<span class="back_title no-drag" @click="navBack()" v-show="backBtnTitle">{{backBtnTitle}}</span> | |||
</slot> | |||
</div> | |||
<div class="app-header-center"> | |||
<div class="app-header-center" ref="header-center"> | |||
<slot name="center">{{title}}</slot> | |||
</div> | |||
<div class="app-header-content-right no-drag"> | |||
@@ -91,6 +92,8 @@ export default { | |||
}, | |||
data() { | |||
return { | |||
headerCenterEl: null,//对应 app-header-center dom元素 | |||
isWindowScrollIng: false, | |||
isClient: system.isClient, | |||
isMaxWindowNow: false, | |||
@@ -98,13 +101,24 @@ export default { | |||
isOnLine: sessionStorage.getItem('isOnLine') === "true", | |||
}; | |||
}, | |||
computed: { | |||
// 响应双击导航栏改变窗口大小 | |||
isMaxWindowSize() { | |||
return this.$store.state.isMaxWindowSize; | |||
}, | |||
}, | |||
watch: { | |||
isMaxWindowSize(val) { | |||
this.isMaxWindowNow = val; | |||
}, | |||
}, | |||
created() { | |||
this.isMaxWindowNow = this.$cookie.get('isMaxWindowNow') === 'true' ? Boolean(this.$cookie.get('isMaxWindowNow')) : false; | |||
this.isMaxWindowNow = sessionStorage.getItem('isMaxWindowNow') === 'true' ? Boolean(sessionStorage.getItem('isMaxWindowNow')) : false; | |||
}, | |||
mounted() { | |||
// 监听滚动事件 视情况判断是否要增加可以不监听滚动的入参 | |||
window.addEventListener("scroll", this.handleScroll.bind(this), true); | |||
this.headerCenterEl = this.$refs['header-center']; | |||
}, | |||
methods: { | |||
shrinkBrowserWindow() { | |||
@@ -119,12 +133,12 @@ export default { | |||
}, | |||
enlargeBrowserWindow() { | |||
this.isMaxWindowNow = !this.isMaxWindowNow; | |||
this.$cookie.set('isMaxWindowNow', this.isMaxWindowNow);//这里也需要存储 因为影响到别的地方组件isMaxWindowNow的初始化 | |||
sessionStorage.setItem('isMaxWindowNow', this.isMaxWindowNow);//这里也需要存储 因为影响到别的地方组件isMaxWindowNow的初始化 | |||
system.enlargeBrowserWindow(); | |||
}, | |||
unmaxBrowserWindow() { | |||
this.isMaxWindowNow = !this.isMaxWindowNow; | |||
this.$cookie.set('isMaxWindowNow', this.isMaxWindowNow); | |||
sessionStorage.setItem('isMaxWindowNow', this.isMaxWindowNow); | |||
system.unmaxBrowserWindow(); | |||
}, | |||
closeBrowserWindow() { | |||
@@ -186,7 +200,7 @@ export default { | |||
position: fixed; | |||
top: 0; | |||
width: 100%; | |||
z-index: 2; | |||
z-index: 9; | |||
/* @include setOnelineHeight($app-header-height); */ | |||
&-top { | |||
position: relative; | |||
@@ -295,7 +309,4 @@ export default { | |||
top: -10px; | |||
} | |||
.no-drag { | |||
-webkit-app-region: no-drag; | |||
} | |||
</style> |
@@ -46,7 +46,4 @@ export default { | |||
} | |||
} | |||
.no-drag { | |||
-webkit-app-region: no-drag; | |||
} | |||
</style> |
@@ -1170,7 +1170,8 @@ export default { | |||
watch: { | |||
yiyunAnimated(val) { | |||
if(val) { | |||
document.body.addEventListener('click', this.closeSetPain); | |||
let mask = document.querySelector('.notify-mask') | |||
mask && mask.addEventListener('click', this.closeSetPain); | |||
} | |||
} | |||
}, | |||
@@ -1201,6 +1202,16 @@ export default { | |||
this.isShowBackPane(); | |||
this.yiyunAnimated = "AnimatedRightIn"; | |||
// this.$emit("closeWorkSet"); | |||
const oriMask = document.querySelector('.notify-mask'); | |||
if(!oriMask) { | |||
const mask = document.createElement('div'); | |||
mask.className = 'notify-mask'; | |||
document.body.appendChild(mask); | |||
} | |||
}, | |||
/** | |||
* 关闭 | |||
@@ -1209,7 +1220,9 @@ export default { | |||
this.yiyunAnimated = ""; | |||
this.userManagerBoxPain = 1; | |||
this.cloudManagerBoxPain = false; | |||
document.body.removeEventListener('click', this.closeSetPain) | |||
const mask = document.querySelector('.notify-mask'); | |||
document.body.removeChild(mask); | |||
// this.$emit("closeShowOption", false); | |||
}, | |||
/** | |||
@@ -91,7 +91,7 @@ export default { | |||
document.body.appendChild(mask); | |||
// 点击空白的地方 关闭弹窗 | |||
document.body.addEventListener('click', this.destroyElement); | |||
mask.addEventListener('click', this.destroyElement); | |||
} else { | |||
setTimeout(()=>{ | |||
this.destroyElement(); | |||
@@ -103,7 +103,10 @@ export default { | |||
destroyElement() { | |||
// 移除transitionend事件 | |||
//this.$el.removeEventListener('transitionend', this.destroyElement); | |||
document.body.removeEventListener('click', this.destroyElement); | |||
// 点击空白处 关闭右侧弹窗 | |||
const mask = document.querySelector('.notify-mask'); | |||
mask && mask.removeEventListener('click', this.destroyElement); | |||
this.$destroy(true); | |||
this.$el && this.$el.parentNode && this.$el.parentNode.removeChild(this.$el); | |||
@@ -238,6 +241,6 @@ export default { | |||
bottom: 0; | |||
background-color: transparent; | |||
z-index: 9; | |||
z-index: 8; | |||
} | |||
</style> |
@@ -54,10 +54,10 @@ const system = { | |||
const test = io('keeplive'); | |||
const testInfo = 1; | |||
let timer = null; | |||
// const { ipcRenderer } = global.electron; | |||
// ipcRenderer.on('detectWindowSize',(...args)=> { | |||
// isMaxWindowSize(args[1]); | |||
// }) | |||
const { ipcRenderer } = global.electron; | |||
ipcRenderer.on('detectWindowSize',(...args)=> { | |||
isMaxWindowSize(args[1] || false); | |||
}) | |||
function sendMessage() { | |||
test.send(testInfo); | |||
} | |||
@@ -57,7 +57,6 @@ export default { | |||
fetchApi('operation/record', params); | |||
}, | |||
setIsMaxWindowSize(val) { | |||
debugger; | |||
this.state.isMaxWindowSize = val; | |||
}, | |||
async login(UserName, PassWord) { | |||
@@ -137,7 +137,8 @@ | |||
} | |||
} | |||
.content-wrap { | |||
padding: 0 8px; | |||
// 右侧滚动条有8px的宽度 | |||
padding: 0 0 0 8px; | |||
overflow-y: scroll; | |||
height: calc(100vh - 177px); | |||
/* 我的企业文字样式 */ | |||
@@ -210,8 +211,7 @@ | |||
} | |||
.personnel-list .el-collapse-item__arrow { | |||
position: relative; | |||
left: 4px; | |||
margin: 0 0 0 auto; | |||
left: 2px; | |||
} | |||
.el-checkbox.dept-select-all-btn { | |||
/* //margin: 0 0 0 auto; */ | |||
@@ -219,10 +219,6 @@ | |||
right: 15px; | |||
} | |||
.dept-select-all-btn+.el-collapse-item__arrow { | |||
/* // margin: 0 !important; | |||
// margin: 0 8px 0 0; */ | |||
} | |||
.personnel-list .el-collapse-item__header { | |||
height: 44px !important; | |||
line-height: 44px !important; | |||
@@ -277,7 +277,7 @@ export default { | |||
sessionStorage.login = ""; | |||
system.init(); | |||
}, | |||
mounted: function () { | |||
async mounted() { | |||
// this.$cookie.remove('isCompanyConsole'); | |||
// this.$cookie.remove("platformInfo"); | |||
// this.$cookie.remove('isAutoLogin'); | |||
@@ -294,6 +294,11 @@ export default { | |||
window["tipMsg"] = (msg) => { | |||
this.tipMsg(msg); | |||
}; | |||
// 如果是客户端的话 要判断一下当前的窗口是否是最大化状态 | |||
if(system.isClient) { | |||
const isMaxWindowNow = await system.isMaxWindowNow(); | |||
sessionStorage.setItem('isMaxWindowNow', isMaxWindowNow); | |||
} | |||
}, | |||
methods: { | |||
@@ -36,10 +36,6 @@ | |||
@goToSearch="searchForProj" | |||
@maxTextLengthArrived="maxTextLengthArrived" | |||
/> | |||
<!-- <div class="search-entry" @click.stop="isShowSearchBar = true" v-if="!isShowSearchBar"> | |||
<img src="/static/img/搜索.svg" alt=""> | |||
<img src="/static/img/搜索激活.svg" alt=""> | |||
</div> --> | |||
</template> | |||
<!-- <template #right> | |||
<span v-on:click="toRecycle"> | |||
@@ -50,6 +46,7 @@ | |||
</span> | |||
</template> --> | |||
</app-header> | |||
<!-- 首页 项目列表页内容 --> | |||
<div class="layout_content"> | |||
<section class="yiyun_warpContent"> | |||
<div class="yiyun-rows mt-20" id="new"> | |||
@@ -91,7 +88,7 @@ | |||
v-if="isUserPerm" | |||
>新建项目</button> | |||
<!-- 项目列表 --> | |||
<proj-list | |||
<proj-list id="proj-list" | |||
:projList="showProjList" | |||
:openPrjInfo="openPrjInfo" | |||
:addNewFolders="addNewFolders" | |||
@@ -273,6 +270,9 @@ export default { | |||
searchProjList: [],//搜索出来的项目列表 | |||
isShowSearchBar: false,//控制搜索栏显隐 | |||
isSearching: false,//是否搜寻结果 | |||
homeScrollTop: 0, | |||
contentBodyEl: null,//bigbody dom元素 | |||
}; | |||
}, | |||
computed: { | |||
@@ -281,7 +281,7 @@ export default { | |||
}, | |||
showCenterTitle() { | |||
return this.isShowSearchBar && this.searchContent ? `“${this.searchContent}”搜索结果` : '我的项目'; | |||
} | |||
}, | |||
}, | |||
watch: { | |||
searchContent() { | |||
@@ -294,6 +294,8 @@ export default { | |||
//setInterval(this.setDateTime, 1000); | |||
this.listProjects(true); | |||
// setInterval(this.listProjects, 1000 * 60); | |||
this.contentBodyEl = document.getElementById('bigbody'); | |||
this.contentBodyEl && this.contentBodyEl.addEventListener('scroll', this.recordContentScrollTop); | |||
}, | |||
beforeDestroy() { | |||
sessionStorage.dotIndex = this.ind; | |||
@@ -301,8 +303,15 @@ export default { | |||
clearTimeout(this.fetchTickIns); | |||
this.fetchTickIns = null; | |||
} | |||
this.contentBodyEl && this.contentBodyEl.removeEventListener('scroll', this.recordContentScrollTop); | |||
}, | |||
methods: { | |||
// 记录页面的滚动位置 | |||
recordContentScrollTop() { | |||
this.homeScrollTop = this.contentBodyEl.scrollTop; | |||
sessionStorage.setItem('homeScrollTop', this.homeScrollTop); | |||
}, | |||
// 搜索框字数超出35个字 | |||
maxTextLengthArrived() { | |||
this.$notify({ | |||
@@ -484,8 +493,13 @@ export default { | |||
// }, | |||
async listProjects(runTick){ | |||
const projectListRes = await prjService.queryProjectsByUserId(this.$store.state.accountId); | |||
this.projList=projectListRes.Data; | |||
// this.projectsWithPage(); | |||
this.projList = projectListRes.Data; | |||
this.$nextTick(()=> { | |||
const bigbody = document.getElementById('bigbody'); | |||
this.homeScrollTop = parseInt(sessionStorage.getItem('homeScrollTop') || 0); | |||
bigbody && bigbody.scrollTo(0, this.homeScrollTop); | |||
}) | |||
if(runTick) { | |||
this.fetchTickIns = setTimeout(() => this.listProjects(true), 1000 * 60); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
<template> | |||
<div> | |||
<section class="yiyun_warpContent" style="height:100%; overflow:auto"> | |||
<div class="yiyun-rows" id="alone" style="height: 100%"> | |||
<section class="yiyun_warpContent"> | |||
<div class="yiyun-rows" id="alone"> | |||
<div v-show="isEmpty" class="nullproduct"> | |||
<img src="static\img\nopro.png" alt /> | |||
<span class="noprotext">暂无项目</span> | |||
@@ -217,8 +217,8 @@ | |||
</div> | |||
</div> --> | |||
<div class="worklinkBtngroup use-flex2 set-transition" :style="setTranslate" :class="{'height-0': isHideWorkFolders}"> | |||
<div class="has-prev-node" v-if="nowFolderIndex > 2 && isCalcuteExchangeNode" | |||
<div class="worklinkBtngroup use-flex2 no-drag set-transition" :style="setTranslate" :class="{'height-0': isHideWorkFolders}"> | |||
<div class="has-prev-node no-drag" v-if="nowFolderIndex > 2 && isCalcuteExchangeNode" | |||
@click.stop="nowFolderClick(nowFolderIndex - 1)"> | |||
<img class="prev-icon no-drag" | |||
src="/static/img/下拉箭头.svg"/> | |||
@@ -246,7 +246,7 @@ | |||
</div> | |||
</button> | |||
</template> | |||
<div class="has-next-node" v-if="totalNodeNum - nowFolderIndex > 2 && isCalcuteExchangeNode && totalNodeNum > 5 " | |||
<div class="has-next-node no-drag" v-if="totalNodeNum - nowFolderIndex > 2 && isCalcuteExchangeNode && totalNodeNum > 5 " | |||
@click.stop="nowFolderClick(nowFolderIndex + 1)"> | |||
<img class="next-icon no-drag" | |||
src="/static/img/下拉箭头.svg"/> | |||
@@ -502,9 +502,11 @@ export default { | |||
return this.listUserFolders[this.nowFolderIndex] ? this.listUserFolders[this.nowFolderIndex].listsShareFrom[1].length : 0; | |||
}, | |||
setTranslate() { | |||
return { | |||
const translate = { | |||
transform: `translate(${-this.moveX}px, 0)` | |||
} | |||
return translate; | |||
}, | |||
// 总共的工作节点数目 即listUserFolders的长度 | |||
totalNodeNum() { | |||
@@ -512,6 +514,9 @@ export default { | |||
} | |||
}, | |||
watch: { | |||
moveX(val) { | |||
this.$emit('setTranslate', -this.moveX); | |||
}, | |||
nowFolderIndex(val) { | |||
if(val > -1) { | |||
this.nowFolderEl = this.$refs.nowFolderEl ? this.$refs.nowFolderEl[val] : this.nowFolderEl; | |||
@@ -562,6 +567,7 @@ export default { | |||
align-items: center; | |||
height: 44px; | |||
line-height: 44px; | |||
cursor: pointer; | |||
.jump-icon-wrap { | |||
width: 20px; | |||
height: 20px; | |||
@@ -578,9 +584,7 @@ export default { | |||
} | |||
} | |||
.set-transition { | |||
transition: transform .5s ease; | |||
} | |||
.workline-wrap { | |||
background-color: #F0F0F0; | |||
} | |||
@@ -632,8 +636,7 @@ export default { | |||
.height-0 { | |||
height: 0; | |||
} | |||
.no-drag { | |||
-webkit-app-region: no-drag; | |||
.set-transition { | |||
transition: transform .5s ease; | |||
} | |||
</style> | |||
</style> |
@@ -153,7 +153,7 @@ | |||
<!-- 工作列表主体 --> | |||
<div | |||
class="yiyun_row scollbarBox nobianju py-x-22" | |||
class="yiyun_row scollbarBox nobianju" | |||
> | |||
<AddFileButton | |||
v-if="isClient" | |||
@@ -281,7 +281,7 @@ | |||
<!-- 协作文件 --> | |||
<div v-if="!isShowStartNodeFolders"> | |||
<div | |||
class="py-x-22 mt-12" | |||
class="mt-12" | |||
> | |||
<FileItem | |||
v-for="file in filterFilesInCoop(cooperationFileList)" | |||
@@ -647,8 +647,6 @@ export default { | |||
this.$nextTick(()=> { | |||
this.listenBottomHeight(); | |||
}) | |||
// window.addEventListener("resize", this.listenBottomHeight, true); | |||
if(this.isClient) { | |||
this.initWorkspaceDropEvent(); | |||
@@ -2088,6 +2086,7 @@ export default { | |||
.coopBox-max-height { | |||
height: 300px; | |||
} | |||
</style> | |||
<style scoped> | |||
@@ -118,12 +118,6 @@ export default { | |||
}) | |||
return; | |||
} | |||
// 如果是客户端的话 要判断一下当前的窗口是否是最大化状态 | |||
if(system.isClient) { | |||
const isMaxWindowNow = await system.isMaxWindowNow(); | |||
this.$cookie.set('isMaxWindowNow', isMaxWindowNow); | |||
} | |||
} | |||
this.$store.setCurrentPlatform(platformInfo); | |||
@@ -45,7 +45,7 @@ module.exports = { | |||
// secure: false, | |||
// }, | |||
'/api': { | |||
target: 'http://www.lockingos.org:9000', | |||
target: 'http://www.lockingos.org:9003', | |||
//target: 'http://192.168.8.114:8082', | |||
changeOrigin: true, | |||
secure: false, | |||