266 lines
9.9 KiB
Vue
266 lines
9.9 KiB
Vue
|
|
<template>
|
|||
|
|
<div id="main" @click="clickDomEvent">
|
|||
|
|
<el-container>
|
|||
|
|
<!-- 导航区域 -->
|
|||
|
|
<el-header id="header" height="56px" style="padding: 0px;">
|
|||
|
|
<Navigation ref="navigation"></Navigation>
|
|||
|
|
</el-header>
|
|||
|
|
<el-main :style="{padding:0,height:bodyHeight}" style="position: relative;">
|
|||
|
|
<!--展开应用中心-->
|
|||
|
|
<div class="main">
|
|||
|
|
<awsui-sidebar
|
|||
|
|
:visible.sync="drawer"
|
|||
|
|
:direction="direction"
|
|||
|
|
size="100%"
|
|||
|
|
:append-to-body=false
|
|||
|
|
:show-close=false
|
|||
|
|
:withHeader=false
|
|||
|
|
:wrapper-closable=false
|
|||
|
|
:modal=false
|
|||
|
|
@opened="openAppIframe">
|
|||
|
|
<div style="position: relative;width: 100%;height: 100%;">
|
|||
|
|
<!-- <div style="cursor:pointer;height: 20px;width: 15px;background-color: #F5F7FA;position: absolute;top: 10px;line-height: 20px;vertical-align: middle;" @click="closeAppDrawer">-->
|
|||
|
|
<!-- <i class="iconfont"></i>-->
|
|||
|
|
<!-- </div>-->
|
|||
|
|
<div id="appContent" v-if="nonAppComponent == ''" key="appContent" style="width: 100%;height: 100%;">
|
|||
|
|
</div>
|
|||
|
|
<div id="nonAppComponent" v-if="nonAppComponent != ''" key="nonAppComponent" style="width: 100%;height: 100%;">
|
|||
|
|
<component ref="component" :is="nonAppComponent" :wsId="wsId"></component>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</awsui-sidebar>
|
|||
|
|
</div>
|
|||
|
|
<!--展开PAL小组管理-->
|
|||
|
|
<div class="main">
|
|||
|
|
<awsui-sidebar
|
|||
|
|
:visible.sync="cooperation.drawer"
|
|||
|
|
:direction="direction"
|
|||
|
|
size="100%"
|
|||
|
|
:append-to-body=false
|
|||
|
|
:show-close=false
|
|||
|
|
:withHeader=false
|
|||
|
|
:wrapper-closable=false
|
|||
|
|
:modal=false
|
|||
|
|
@opened="openCooperationIframe">
|
|||
|
|
<div style="position: relative;width: 100%;height: 100%;">
|
|||
|
|
<div style="cursor:pointer;height: 20px;width: 15px;background-color: #F5F7FA;position: absolute;top: 10px;line-height: 20px;vertical-align: middle;" @click="closeCooperationDrawer">
|
|||
|
|
<i class="iconfont"></i>
|
|||
|
|
</div>
|
|||
|
|
<div id="cooperationContent" v-if="nonAppComponent == ''" key="cooperationContent" style="width: 100%;height: 100%;">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</awsui-sidebar>
|
|||
|
|
</div>
|
|||
|
|
<!--修改密码-->
|
|||
|
|
<div>
|
|||
|
|
<PwdChange ref="pwdChange"></PwdChange>
|
|||
|
|
</div>
|
|||
|
|
<router-view :key="key"/>
|
|||
|
|
</el-main>
|
|||
|
|
</el-container>
|
|||
|
|
</div>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import Navigation from "./system/Navigation";
|
|||
|
|
import PwdChange from "./system/PwdChange";
|
|||
|
|
import WorkspaceBackup from "./workspace/WorkspaceBackup";
|
|||
|
|
import Mark from "./repository/RepositorySecurityMark";
|
|||
|
|
import Recycle from "./recycle/Recycle";
|
|||
|
|
import Method from "./method/Method";
|
|||
|
|
import awsuiAxios from "../awsuiAxios";
|
|||
|
|
export default {
|
|||
|
|
name: 'Main',
|
|||
|
|
components: {PwdChange, Navigation, WorkspaceBackup, Recycle, Method,Mark},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
bodyHeight : (document.documentElement.clientHeight - 56) + 'px',
|
|||
|
|
drawer: false,
|
|||
|
|
direction: 'rtl',
|
|||
|
|
nonAppComponent: '',
|
|||
|
|
wsId: '',
|
|||
|
|
cooperation: {
|
|||
|
|
drawer: false,
|
|||
|
|
cooperationContent: '',
|
|||
|
|
},
|
|||
|
|
mainTimer: null, // 主体内容加载定时器,用于判断Navigation是否加载完成,加载完成wsId不为空或者timeNum为0(10秒钟之后未加载成功)时停止执行
|
|||
|
|
mainTimerNum: 200 // 设置定时器执行次数,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
provide: function () {
|
|||
|
|
return {
|
|||
|
|
openAppDrawer: this.openAppDrawer,
|
|||
|
|
closeAppDrawer: this.closeAppDrawer,
|
|||
|
|
openPwdConfig: this.openPwdConfig,
|
|||
|
|
logout: this.logout,
|
|||
|
|
openCooperationDrawer: this.openCooperationDrawer,
|
|||
|
|
closeCooperationDrawer: this.closeCooperationDrawer,
|
|||
|
|
saveAccessOpLog: this.saveAccessOpLog
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
key() {
|
|||
|
|
return new Date() + '';
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
created() {
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
// 是否强制修改密码
|
|||
|
|
if (forceChangePwd) {
|
|||
|
|
this.openPwdConfig();
|
|||
|
|
}
|
|||
|
|
this.$store.commit('setTopMainHeightFn',this.bodyHeight);// 更新主体高度存储
|
|||
|
|
this.resize();
|
|||
|
|
// 火狐浏览器拖拽问题
|
|||
|
|
document.body.ondrop = function (event) {
|
|||
|
|
event.preventDefault();
|
|||
|
|
event.stopPropagation();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
/****应用中心****/
|
|||
|
|
openAppDrawer() {
|
|||
|
|
if (document.getElementById("appContent") != undefined) {
|
|||
|
|
document.getElementById("appContent").innerHTML = '';
|
|||
|
|
}
|
|||
|
|
this.drawer = true;
|
|||
|
|
},
|
|||
|
|
openAppIframe() {
|
|||
|
|
this.wsId = this.$store.getters.getWsIdFn;
|
|||
|
|
const that = this;
|
|||
|
|
let nav = that.$refs.navigation;
|
|||
|
|
if (nav.currApp.clazzName == 'method') {// 建模方法
|
|||
|
|
that.nonAppComponent = '';
|
|||
|
|
that.$nextTick(()=> {
|
|||
|
|
that.nonAppComponent = 'Method'
|
|||
|
|
});
|
|||
|
|
that.saveAccessOpLog('method');
|
|||
|
|
} else if (nav.currApp.clazzName == 'backup'){// 备份
|
|||
|
|
that.nonAppComponent = '';
|
|||
|
|
that.$nextTick(() => {
|
|||
|
|
that.nonAppComponent = 'WorkspaceBackup';
|
|||
|
|
});
|
|||
|
|
that.saveAccessOpLog('backup');
|
|||
|
|
} else if (nav.currApp.clazzName == 'recycle') {// 回收站
|
|||
|
|
that.nonAppComponent = '';
|
|||
|
|
that.$nextTick(()=> {
|
|||
|
|
that.nonAppComponent = 'Recycle'
|
|||
|
|
});
|
|||
|
|
that.saveAccessOpLog('recycle');
|
|||
|
|
} else if (nav.currApp.clazzName == 'mark') {//密级标定
|
|||
|
|
that.nonAppComponent = '';
|
|||
|
|
that.$nextTick(()=> {
|
|||
|
|
that.nonAppComponent = 'Mark'
|
|||
|
|
});
|
|||
|
|
that.saveAccessOpLog('mark');
|
|||
|
|
} else {
|
|||
|
|
that.nonAppComponent = '';
|
|||
|
|
that.$nextTick(() => {
|
|||
|
|
document.getElementById("appContent").innerHTML = '';
|
|||
|
|
let src = wHref + '?' + "sid=" + that.$store.state.sessionId + "&wsId=" + that.$store.getters.getWsIdFn + "&teamId=" + that.$store.getters.getTeamIdFn + "&clazzName=" + nav.currApp.clazzName + "&cmd=com.actionsoft.apps.coe.pal_app_page";
|
|||
|
|
document.getElementById("appContent").innerHTML = '<iframe id="appIframe" width="100%" height="100%" name="appIframe" style="border:0;" src="' + src + '"></iframe>';
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
closeAppDrawer() {
|
|||
|
|
this.nonAppComponent = '';
|
|||
|
|
this.drawer = false;
|
|||
|
|
this.$refs.navigation.showAppDetail = false;
|
|||
|
|
},
|
|||
|
|
/****PAL小组管理中心****/
|
|||
|
|
openCooperationDrawer() {
|
|||
|
|
this.wsId = this.$store.getters.getWsIdFn;
|
|||
|
|
if (document.getElementById("cooperationContent") != undefined) {
|
|||
|
|
document.getElementById("cooperationContent").innerHTML = '';
|
|||
|
|
}
|
|||
|
|
this.cooperation.drawer = true;
|
|||
|
|
},
|
|||
|
|
openCooperationIframe() {
|
|||
|
|
const that = this;
|
|||
|
|
let nav = that.$refs.navigation;
|
|||
|
|
that.wsId = nav.wsValue;
|
|||
|
|
that.cooperation.cooperationContent = '';
|
|||
|
|
that.$nextTick(() => {
|
|||
|
|
document.getElementById("cooperationContent").innerHTML = '';
|
|||
|
|
let src = wHref + '?' + 'sid=' + this.$store.state.sessionId + '&mainPage=manage&cmd=com.actionsoft.apps.coe.pal.cooperation_main';
|
|||
|
|
document.getElementById("cooperationContent").innerHTML = '<iframe id="cooperationIframe" width="100%" height="100%" name="cooperationIframe" style="border:0;" src="' + src + '"></iframe>';
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
closeCooperationDrawer() {
|
|||
|
|
this.cooperation.cooperationContent = '';
|
|||
|
|
this.cooperation.drawer = false;
|
|||
|
|
this.$refs.navigation.cooperationDrawer.showCooperationDetail = false;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
handleClose(done) {
|
|||
|
|
done();
|
|||
|
|
},
|
|||
|
|
/****密码修改****/
|
|||
|
|
openPwdConfig() {
|
|||
|
|
this.$refs.pwdChange.pwdConfig = true;
|
|||
|
|
},
|
|||
|
|
/****退出登录****/
|
|||
|
|
logout() {
|
|||
|
|
const that = this;
|
|||
|
|
that.$confirm('确定离开系统吗?', '提示', {
|
|||
|
|
confirmButtonText: '确定',
|
|||
|
|
confirmButtonClass: 'button-general-color',
|
|||
|
|
cancelButtonText: '取消',
|
|||
|
|
type: 'warning'
|
|||
|
|
}).then(() => {
|
|||
|
|
const src = wHref + "?sid=" + that.$store.state.sessionId + "&cmd=com.actionsoft.apps.coe.pal_user_logout";
|
|||
|
|
window.location.replace(src);
|
|||
|
|
}).catch(() => {
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
resize() {// 窗口监听window.resize
|
|||
|
|
const that = this
|
|||
|
|
let resizeTimer = null;
|
|||
|
|
window.onresize = () => {
|
|||
|
|
return (() => {
|
|||
|
|
if (resizeTimer) clearTimeout(resizeTimer);
|
|||
|
|
resizeTimer = setTimeout(function(){
|
|||
|
|
that.bodyHeight = (document.documentElement.clientHeight - 56) + 'px';
|
|||
|
|
that.$store.commit('setTopMainHeightFn',that.bodyHeight);
|
|||
|
|
} , 400);
|
|||
|
|
})()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
clickDomEvent() {// 点击整个dom的事件,通过vuex进行全局状态管理
|
|||
|
|
this.$store.commit('setNavigationQueryVisibleFn',false);// 导航栏输入框快速搜索结果隐藏
|
|||
|
|
},
|
|||
|
|
saveAccessOpLog(moduleCategory) {// 记录访问各模块的审计日志
|
|||
|
|
const that = this;
|
|||
|
|
const data = {
|
|||
|
|
url:'jd',
|
|||
|
|
data:{
|
|||
|
|
cmd : 'com.actionsoft.apps.coe.pal_access_log_save',
|
|||
|
|
moduleCategory: moduleCategory
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
awsuiAxios.post(data).then(function (ro) {
|
|||
|
|
if (ro.result == 'ok') {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}).catch(error=>{
|
|||
|
|
console.log(error);
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
<style scoped>
|
|||
|
|
#main {
|
|||
|
|
font-family: 'Avenir', Helvetica, Arial, sans-serif;
|
|||
|
|
-webkit-font-smoothing: antialiased;
|
|||
|
|
-moz-osx-font-smoothing: grayscale;
|
|||
|
|
/*text-align: center;*/
|
|||
|
|
color: #2c3e50;
|
|||
|
|
margin-top: 0px;
|
|||
|
|
}
|
|||
|
|
.main >>> .awsui-sidebar__wrapper {
|
|||
|
|
position: static;
|
|||
|
|
}
|
|||
|
|
</style>
|