|
@@ -1,7 +1,7 @@
|
|
<template>
|
|
<template>
|
|
<div class="left">
|
|
<div class="left">
|
|
<!-- <div > -->
|
|
<!-- <div > -->
|
|
- <div class="logo2">
|
|
|
|
|
|
+ <div class="logo2" @click="gotoKanban">
|
|
<img :src="fromL.basics.logo ? fromL.basics.logo : require('../assets/img/moren.png')" alt="">
|
|
<img :src="fromL.basics.logo ? fromL.basics.logo : require('../assets/img/moren.png')" alt="">
|
|
</div>
|
|
</div>
|
|
<!-- <div class="ulT"> -->
|
|
<!-- <div class="ulT"> -->
|
|
@@ -9,22 +9,18 @@
|
|
<!-- 默认首页 -->
|
|
<!-- 默认首页 -->
|
|
<div class="ulTOne" @click.stop="goto(0)">
|
|
<div class="ulTOne" @click.stop="goto(0)">
|
|
<div class="menu_left">
|
|
<div class="menu_left">
|
|
- <div class="iconW">
|
|
|
|
- <img class="logo" :src="activeL === 0 ? require('../assets/img/sy.svg') : require('../assets/img/sy1.svg')" alt="">
|
|
|
|
- </div>
|
|
|
|
|
|
+ <img class="logo" :src="activeL === 0 ? require('../assets/img/sy.svg') : require('../assets/img/sy1.svg')" alt="">
|
|
<span class="barT" :style="{color : activeL === 0 ? '#0051D7' :''}">首页</span>
|
|
<span class="barT" :style="{color : activeL === 0 ? '#0051D7' :''}">首页</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 权限 -->
|
|
<!-- 权限 -->
|
|
- <div v-for="(item,index) in appSignL(fromL.admin.sidebar.list)"
|
|
|
|
|
|
+ <div style="width: 100%;" v-for="(item,index) in appSignL(fromL.admin.sidebar.list)"
|
|
:key="index+1">
|
|
:key="index+1">
|
|
-
|
|
|
|
<!-- 渲染菜单类型 -->
|
|
<!-- 渲染菜单类型 -->
|
|
- <div class="ulTOne TwoBar" v-if="item.menuName">
|
|
|
|
|
|
+ <div class="ulTOne" v-if="item.menuName">
|
|
<!-- 二级导航 -->
|
|
<!-- 二级导航 -->
|
|
- <transition name="slide">
|
|
|
|
- <div class="ulTCopy2">
|
|
|
|
|
|
+ <div class="ulTCopy">
|
|
<div class="ulTCopyTit">
|
|
<div class="ulTCopyTit">
|
|
<span>{{ item.menuName }}</span>
|
|
<span>{{ item.menuName }}</span>
|
|
</div>
|
|
</div>
|
|
@@ -35,17 +31,13 @@
|
|
<div class="ulTCopyTxt"
|
|
<div class="ulTCopyTxt"
|
|
:style="{background : (activeLTwo === index+1 +'+' + ind)? '#0663FE' : '',color: (activeLTwo === index+1 +'+' + ind)? '#fff' :''}"
|
|
:style="{background : (activeLTwo === index+1 +'+' + ind)? '#0663FE' : '',color: (activeLTwo === index+1 +'+' + ind)? '#fff' :''}"
|
|
v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
|
|
v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
|
|
-
|
|
|
|
<div class="ulTCopyConT">{{ p.name }}</div>
|
|
<div class="ulTCopyConT">{{ p.name }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </transition>
|
|
|
|
<div class="menu_left">
|
|
<div class="menu_left">
|
|
- <div class="iconW">
|
|
|
|
- <img :src="activeL === (index +1) ? item.menuActiveIcon : item.menuIcon" class="logo" alt="">
|
|
|
|
- </div>
|
|
|
|
|
|
+ <img :src="activeL === (index +1) ? item.menuActiveIcon : item.menuIcon" class="logo" alt="">
|
|
<span class="barT">{{ item.menuName }}</span>
|
|
<span class="barT">{{ item.menuName }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -53,45 +45,40 @@
|
|
|
|
|
|
|
|
|
|
<!-- 渲染平台工具类型 -->
|
|
<!-- 渲染平台工具类型 -->
|
|
- <div @click.stop="goto(index,item)"
|
|
|
|
|
|
+ <div style="width: 100%;" @click.stop="goto(index,item)"
|
|
v-else>
|
|
v-else>
|
|
- <div class="ulTOne TwoBar"
|
|
|
|
- @mouseenter="mouGet(item.toolId)"
|
|
|
|
|
|
+ <div class="ulTOne"
|
|
v-for="(p,pin) in AppCon(item.url)" :key="pin+'p'">
|
|
v-for="(p,pin) in AppCon(item.url)" :key="pin+'p'">
|
|
- <!-- 二级导航 -->
|
|
|
|
- <transition name="slide">
|
|
|
|
- <div class="ulTCopy2" v-if="item.toolId == 'appStore'">
|
|
|
|
- <div class="ulTCopyTit">
|
|
|
|
- <span>CocoFlow</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="ulTCopyHei" >
|
|
|
|
- <span v-if="cocoFlowList[0].length" style="color: #00000066;">最近使用</span>
|
|
|
|
- <div class="ulTCopyTxt"
|
|
|
|
- v-for="(i,ind) in cocoFlowList[0]"
|
|
|
|
- @click="openNewWindow(i.url)" :key="ind+'ab'">
|
|
|
|
- <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
|
- </div>
|
|
|
|
- <span v-if="cocoFlowList[1].length" style="color: #00000066;">我的收藏</span>
|
|
|
|
-
|
|
|
|
- <div class="ulTCopyTxt"
|
|
|
|
- v-for="(i,ind) in cocoFlowList[1]" @click="openNewWindow(i.url)" :key="ind+'a'">
|
|
|
|
- <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </transition>
|
|
|
|
- <div class="menu_left" >
|
|
|
|
- <div class="iconW">
|
|
|
|
- <img class="logo"
|
|
|
|
- :src="activeL === (index +1) ? p.activeIcon : p.defaultIcon"
|
|
|
|
- alt="">
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="menu_left" @mouseenter="mouGet(item.toolId)" >
|
|
|
|
+ <img class="logo"
|
|
|
|
+ :src="activeL === (index +1) ? p.activeIcon : p.defaultIcon"
|
|
|
|
+ alt="">
|
|
<span class="barT" :style="{color : activeL === (index +1) ? '#0051D7' :''}">
|
|
<span class="barT" :style="{color : activeL === (index +1) ? '#0051D7' :''}">
|
|
{{ p.name }}
|
|
{{ p.name }}
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 二级导航 -->
|
|
|
|
+ <div class="ulTCopy" v-if="item.toolId == 'appStore'">
|
|
|
|
+ <div class="ulTCopyTit">
|
|
|
|
+ <span>CocoFlow</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="ulTCopyHei" >
|
|
|
|
+ <span v-if="cocoFlowList[0] && cocoFlowList[0].length" style="color: #00000066;">最近使用</span>
|
|
|
|
+ <div class="ulTCopyTxt"
|
|
|
|
+ v-for="(i,ind) in cocoFlowList[0]"
|
|
|
|
+ @click="openNewWindow(i.url)" :key="ind+'ab'">
|
|
|
|
+ <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <span v-if="cocoFlowList[0] && cocoFlowList[1].length" style="color: #00000066;">我的收藏</span>
|
|
|
|
|
|
|
|
+ <div class="ulTCopyTxt"
|
|
|
|
+ v-for="(i,ind) in cocoFlowList[1]" @click="openNewWindow(i.url)" :key="ind+'a'">
|
|
|
|
+ <div class="ulTCopyConT">{{ i.name }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -107,13 +94,13 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
export default {
|
|
export default {
|
|
props:['urlAddress'],
|
|
props:['urlAddress'],
|
|
computed: {
|
|
computed: {
|
|
- ...mapGetters(['userinfo','fromL','appSign']),
|
|
|
|
|
|
+ ...mapGetters(['userinfo','userinfo2','fromL','appSign']),
|
|
// 如果hk,com没有图标,默认使用cn的
|
|
// 如果hk,com没有图标,默认使用cn的
|
|
AppCon(){
|
|
AppCon(){
|
|
return function(c) {
|
|
return function(c) {
|
|
let k = JSON.parse(JSON.stringify(c))
|
|
let k = JSON.parse(JSON.stringify(c))
|
|
let data = k.filter(e=>{
|
|
let data = k.filter(e=>{
|
|
- return e.region == this.userinfo.schoolArea || e.region == this.userinfo.orgArea
|
|
|
|
|
|
+ return e.region == this.roleUser.schoolArea || e.region == this.roleUser.orgArea
|
|
})
|
|
})
|
|
|
|
|
|
let data2 = k.filter(e=>{
|
|
let data2 = k.filter(e=>{
|
|
@@ -134,7 +121,7 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
// console.log('appSignL',val);
|
|
// console.log('appSignL',val);
|
|
|
|
|
|
let data = []
|
|
let data = []
|
|
- if (this.userinfo.type == 1 && this.userinfo.role == 1) {
|
|
|
|
|
|
+ if (this.roleUser.type == 1 && this.roleUser.role == 1) {
|
|
val.forEach( e =>{
|
|
val.forEach( e =>{
|
|
if (e.menuName || e.status == 0) {
|
|
if (e.menuName || e.status == 0) {
|
|
data.push(e)
|
|
data.push(e)
|
|
@@ -149,6 +136,9 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
}
|
|
}
|
|
return data
|
|
return data
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ roleUser(){
|
|
|
|
+ return this.userinfo.role == 1 && this.userinfo.rrole == 1 && this.userinfo.type == 1&& this.userinfo2 !== "" ? this.userinfo2 : this.userinfo
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
@@ -166,7 +156,16 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
...mapActions({
|
|
...mapActions({
|
|
logout: 'user/logout'
|
|
logout: 'user/logout'
|
|
}),
|
|
}),
|
|
-
|
|
|
|
|
|
+ // 跳转到看板
|
|
|
|
+ gotoKanban(){
|
|
|
|
+ let num = this.userinfo.type == 1 && this.userinfo.role == 1 && this.userinfo.rrole == 1 ? 1 : 2
|
|
|
|
+ this.$router.push({
|
|
|
|
+ path: '/KanBan',
|
|
|
|
+ query: {
|
|
|
|
+ index: num,
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
mouGet(val){
|
|
mouGet(val){
|
|
if(val != 'appStore') return
|
|
if(val != 'appStore') return
|
|
console.log('666')
|
|
console.log('666')
|
|
@@ -203,12 +202,12 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
let url = ''
|
|
let url = ''
|
|
// 查出对应账号的应用区域地址
|
|
// 查出对应账号的应用区域地址
|
|
val.url.forEach(e => {
|
|
val.url.forEach(e => {
|
|
- // if (e.region == this.userinfo.schoolArea || e.region == this.userinfo.orgArea) {
|
|
|
|
|
|
+ // if (e.region == this.roleUser.schoolArea || e.region == this.roleUser.orgArea) {
|
|
if (e.region == this.$region) {
|
|
if (e.region == this.$region) {
|
|
url = e.url
|
|
url = e.url
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- let _userinfo = this.userinfo, //登录用户信息
|
|
|
|
|
|
+ let _userinfo = this.roleUser, //登录用户信息
|
|
{ userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
|
|
{ userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
|
|
const _TscreenType = 1, _SscreenType = 3; // 常量定义
|
|
const _TscreenType = 1, _SscreenType = 3; // 常量定义
|
|
let queryString = ''
|
|
let queryString = ''
|
|
@@ -232,9 +231,10 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
}
|
|
}
|
|
|
|
|
|
let _url = url + queryString
|
|
let _url = url + queryString
|
|
|
|
+ console.log('_url',_url);
|
|
|
|
+
|
|
|
|
|
|
let kpl = ` <iframe
|
|
let kpl = ` <iframe
|
|
- v-if="appSign && urlAddress"
|
|
|
|
allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
|
|
allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
|
|
frameborder="no"
|
|
frameborder="no"
|
|
border="0"
|
|
border="0"
|
|
@@ -252,10 +252,11 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
// 获取cocoFlow收藏与历史使用记录
|
|
// 获取cocoFlow收藏与历史使用记录
|
|
getData(){
|
|
getData(){
|
|
|
|
+ this.cocoFlowList = []
|
|
let params = [
|
|
let params = [
|
|
{
|
|
{
|
|
functionName: API_CONFIG.ajax_appStoreSave.functionName,
|
|
functionName: API_CONFIG.ajax_appStoreSave.functionName,
|
|
- uid: this.userinfo.userid,
|
|
|
|
|
|
+ uid: this.roleUser.userid,
|
|
},
|
|
},
|
|
];
|
|
];
|
|
|
|
|
|
@@ -267,7 +268,7 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
})
|
|
})
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
console.log(err);
|
|
console.log(err);
|
|
- this.$message.error("获取常见应用失败");
|
|
|
|
|
|
+ this.$message.error("获取cocoFlow收藏与历史失败");
|
|
});
|
|
});
|
|
},
|
|
},
|
|
// 点击二级导航
|
|
// 点击二级导航
|
|
@@ -285,13 +286,13 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
let url = ''
|
|
let url = ''
|
|
val.url.forEach(e => {
|
|
val.url.forEach(e => {
|
|
- // if (e.region == this.userinfo.schoolArea || e.region == this.userinfo.orgArea) {
|
|
|
|
|
|
+ // if (e.region == this.roleUser.schoolArea || e.region == this.roleUser.orgArea) {
|
|
if (e.region == this.$region) {
|
|
if (e.region == this.$region) {
|
|
url = e.url
|
|
url = e.url
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- let _userinfo = this.userinfo, //登录用户信息
|
|
|
|
|
|
+ let _userinfo = this.roleUser, //登录用户信息
|
|
{ userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
|
|
{ userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
|
|
const _TscreenType = 1, _SscreenType = 3; // 常量定义
|
|
const _TscreenType = 1, _SscreenType = 3; // 常量定义
|
|
let queryString = ''
|
|
let queryString = ''
|
|
@@ -311,13 +312,13 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
.filter(param => paramsMap[param] !== undefined || param === 'type')
|
|
.filter(param => paramsMap[param] !== undefined || param === 'type')
|
|
.map(param => param === 'type' ? `tType=${paramsMap['tType']}` : `${param}=${paramsMap[param]}`);
|
|
.map(param => param === 'type' ? `tType=${paramsMap['tType']}` : `${param}=${paramsMap[param]}`);
|
|
|
|
|
|
-
|
|
|
|
queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
|
|
queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
|
|
}
|
|
}
|
|
|
|
|
|
let _url = url + queryString
|
|
let _url = url + queryString
|
|
|
|
+ console.log('_url',_url);
|
|
|
|
+
|
|
let kpl = ` <iframe
|
|
let kpl = ` <iframe
|
|
- v-if="appSign && urlAddress"
|
|
|
|
allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
|
|
allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
|
|
frameborder="no"
|
|
frameborder="no"
|
|
border="0"
|
|
border="0"
|
|
@@ -345,10 +346,6 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|
|
.ulTCopy{
|
|
.ulTCopy{
|
|
- overflow: auto;
|
|
|
|
- height: 100%;
|
|
|
|
-}
|
|
|
|
-.ulTCopy2 {
|
|
|
|
height: 90%;
|
|
height: 90%;
|
|
width: 154px;
|
|
width: 154px;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -359,21 +356,21 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
top: 70px;
|
|
top: 70px;
|
|
z-index: -100;
|
|
z-index: -100;
|
|
transition: transform .5s ease;
|
|
transition: transform .5s ease;
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-.TwoBar:hover .ulTCopy2{
|
|
|
|
|
|
+
|
|
|
|
+.ulTOne:hover .ulTCopy{
|
|
display: block !important;
|
|
display: block !important;
|
|
transform: translateX(164px) !important; /* 初始位置在视图之外 */
|
|
transform: translateX(164px) !important; /* 初始位置在视图之外 */
|
|
z-index: -100;
|
|
z-index: -100;
|
|
box-shadow: 0px 6px 30px 5px #0000000D;
|
|
box-shadow: 0px 6px 30px 5px #0000000D;
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
.logo{
|
|
.logo{
|
|
margin: auto;
|
|
margin: auto;
|
|
- width: 21px;
|
|
|
|
- max-height: 24px;
|
|
|
|
|
|
+ width: 24px;
|
|
|
|
+ height: 24px;
|
|
}
|
|
}
|
|
|
|
|
|
.iconW{
|
|
.iconW{
|
|
@@ -386,16 +383,15 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
}
|
|
}
|
|
.logo2 {
|
|
.logo2 {
|
|
- padding: 8px;
|
|
|
|
|
|
+ cursor: pointer;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
- height: 48px;
|
|
|
|
width: 100%;
|
|
width: 100%;
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
.logo2 img{
|
|
.logo2 img{
|
|
- width: 30px;
|
|
|
|
- height: 30px;
|
|
|
|
|
|
+ width: 60px;
|
|
|
|
+ height: 60px;
|
|
}
|
|
}
|
|
|
|
|
|
.userInfo{
|
|
.userInfo{
|
|
@@ -430,7 +426,6 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
border-radius: 10px;
|
|
border-radius: 10px;
|
|
display: flex;
|
|
display: flex;
|
|
height: 48px;
|
|
height: 48px;
|
|
- width: 48px;
|
|
|
|
flex-wrap:nowrap;
|
|
flex-wrap:nowrap;
|
|
align-content: center;
|
|
align-content: center;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
@@ -460,19 +455,6 @@ import { API_CONFIG } from "@/common/apiConfig";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-.slide-enter-active, .slide-leave-active {
|
|
|
|
- transition: transform 0.5s ease;
|
|
|
|
- z-index: -1000 !important;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-.slide-enter{
|
|
|
|
- z-index: -1000 !important;
|
|
|
|
- transform: translateX(0); /* 进入时移动到正常位置 */
|
|
|
|
-}
|
|
|
|
-.slide-leave-to /* .slide-leave-active in <2.1.8 */ {
|
|
|
|
- z-index: -1000 !important;
|
|
|
|
- transform: translateX(0); /* 进入时移动到正常位置 */
|
|
|
|
-}
|
|
|
|
|
|
|
|
.ulTCopyTit{
|
|
.ulTCopyTit{
|
|
font-family: PingFang SC;
|
|
font-family: PingFang SC;
|