|
@@ -32,7 +32,25 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 平台应用 -->
|
|
|
- <div class="TabList">
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 荔园 -->
|
|
|
+
|
|
|
+ <div v-if="platform == 'liyuan_'" class="TabListAdmin">
|
|
|
+ <div
|
|
|
+ @mouseenter="setHovered(index, true)"
|
|
|
+ @mouseleave="setHovered(index, false)"
|
|
|
+ class="TabListAll2"
|
|
|
+ @click="openApp2(item)"
|
|
|
+ v-for="(item,index) in liyuanTab"
|
|
|
+ :key="index+'1p'">
|
|
|
+ <img style="position: absolute;top: -40%;left: 50%;transform: translate(-50%,0);" :src="item.icon" alt="">
|
|
|
+ <span class="tabTit">{{ item.name }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 非荔园 -->
|
|
|
+ <div v-else class="TabList" >
|
|
|
<div
|
|
|
@mouseenter="setHovered(index, true)"
|
|
|
@mouseleave="setHovered(index, false)"
|
|
@@ -278,18 +296,21 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ // 判断链接时liyuan还是admin的
|
|
|
+ platform:'',
|
|
|
+ // 判断链接时beta还是cloud的
|
|
|
+ betaL:'beta',
|
|
|
dialogVisible:false,
|
|
|
//常见ai应用列表(添加弹框)
|
|
|
usuallyList:[],
|
|
|
loading:false,
|
|
|
- //选中应用列表
|
|
|
- tab:[],
|
|
|
// 管理平台添加常见cocoFlow应用
|
|
|
admincocoFlow:[],
|
|
|
// 用户ai应用数组
|
|
|
CocoFlowList:[],
|
|
|
// 平台工具
|
|
|
tabList:[],
|
|
|
+ // 后台未设置常用应用后使用默认应用,这些是默认应用的头像
|
|
|
appImgList:[
|
|
|
require('../assets/img/img7.svg'),
|
|
|
require('../assets/img/img8.svg'),
|
|
@@ -300,10 +321,17 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
require('../assets/img/img4.svg'),
|
|
|
require('../assets/img/img3.svg'),
|
|
|
],
|
|
|
- hovList:[],
|
|
|
+ liyuanTab:[
|
|
|
+ {toolId:'CourseCon',name:'课程建设',icon:require('../assets/toppage/classbuild.svg'),hoverIcon:''},
|
|
|
+ {toolId:'teacherDevelop',name:'教师发展',icon:require('../assets/toppage/tealep.svg'),hoverIcon:''},
|
|
|
+ {toolId:'aiOffice',name:'智能教务',icon:require('../assets/toppage/aiwork.svg'),hoverIcon:''},
|
|
|
+ {toolId:'lyStudentEva',name:'学生评价',icon:require('../assets/toppage/stueva.svg'),hoverIcon:''},
|
|
|
+ {toolId:'schoolSafe',name:'平安校园',icon:require('../assets/toppage/safesch.svg'),hoverIcon:''},
|
|
|
+ ]
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 轮播图跳转链接
|
|
|
gotoBanner(val){
|
|
|
if (val == '') return
|
|
|
window.open(val, "_blank");
|
|
@@ -314,10 +342,6 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
},
|
|
|
// 获取cocoFlow2应用
|
|
|
getData(){
|
|
|
-
|
|
|
- // if (this.fromL.admin.cocoFlow2 && this.fromL.admin.cocoFlow2.length > 0) {
|
|
|
- // this.CocoFlowList = this.fromL.admin.cocoFlow2
|
|
|
- // }
|
|
|
let cocoFlowCopy = []
|
|
|
if (this.fromL.admin.cocoFlow2 && this.fromL.admin.cocoFlow2.length) {
|
|
|
cocoFlowCopy = this.fromL.admin.cocoFlow2.map(item => item.id);
|
|
@@ -374,7 +398,6 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
|
|
|
this.tabList = data
|
|
|
// console.log('this.tabList',this.tabList);
|
|
|
-
|
|
|
},
|
|
|
// 获取cocoFlow应用
|
|
|
getAdmincocoFlow(){
|
|
@@ -384,8 +407,6 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
|
|
|
if (this.fromL.admin.cocoFlow.length > 0) {
|
|
|
appList = this.fromL.admin.cocoFlow.map(item => item.id);
|
|
|
-
|
|
|
- // this.admincocoFlow = JSON.parse(JSON.stringify(this.fromL.admin.cocoFlow))
|
|
|
} else {
|
|
|
appList= [
|
|
|
"d1edef14-ef6f-11ef-b508-005056924926",
|
|
@@ -428,7 +449,7 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
|
|
|
// 打开平台应用
|
|
|
async openApp(val){
|
|
|
- // console.log('val',val);
|
|
|
+ console.log('val',val);
|
|
|
|
|
|
// 点击相同应用不刷新
|
|
|
if (this.appSign == val.toolId) return
|
|
@@ -471,30 +492,62 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
let _url = url + queryString
|
|
|
console.log('_url',_url);
|
|
|
|
|
|
-
|
|
|
- // let kpl = ` <iframe
|
|
|
- // allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
|
|
|
- // frameborder="no"
|
|
|
- // border="0"
|
|
|
- // style="border:0;width:100%;height:100%;"
|
|
|
- // src="${_url}"
|
|
|
- // ref="pageCon"
|
|
|
- // >
|
|
|
- // </iframe>`
|
|
|
-
|
|
|
let pl = {json:_url ,stateL :true,toolId :val.toolId}
|
|
|
-
|
|
|
- // this.$emit('AddAppJson',pl)
|
|
|
|
|
|
this.$emit('cutUrl',pl)
|
|
|
|
|
|
this.addOp3('1', "", { type:this.prefixL + val.toolId + "_open" }, "success")
|
|
|
-
|
|
|
- // document.querySelector('#pageCon').innerHTML = '';
|
|
|
|
|
|
+ },
|
|
|
+ async openApp2(val){
|
|
|
+ console.log(val);
|
|
|
+ let url = ''
|
|
|
+ let argumentList = ['userid', 'oid', 'org','role','tType']
|
|
|
+ if (this.betaL == 'beta') {
|
|
|
+ url = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/${val.toolId}`
|
|
|
+ }else{
|
|
|
+ `https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/${val.toolId}`
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // return
|
|
|
+ // 点击相同应用不刷新
|
|
|
+ if (this.appSign == val.toolId) return
|
|
|
+ // 更新标识
|
|
|
+ await store.commit('user/SET_AppSIGN', val.toolId)
|
|
|
+
|
|
|
+
|
|
|
+ let _userinfo = this.roleUser, //登录用户信息
|
|
|
+ { userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
|
|
|
+ const _TscreenType = 1, _SscreenType = 3; // 常量定义
|
|
|
+ let queryString = ''
|
|
|
+ if(argumentList && argumentList.length){
|
|
|
+ const paramsMap = {
|
|
|
+ userid: _userid,
|
|
|
+ org: _org,
|
|
|
+ oid: _oid,
|
|
|
+ tType: _type,
|
|
|
+ role: _role,
|
|
|
+ classId: _classId,
|
|
|
+ TscreenType: _TscreenType,
|
|
|
+ SscreenType: _SscreenType
|
|
|
+ };
|
|
|
+
|
|
|
+ const canshu = argumentList
|
|
|
+ .filter(param => paramsMap[param] !== undefined || param === 'type')
|
|
|
+ .map(param => param === 'type' ? `tType=${paramsMap['tType']}` : `${param}=${paramsMap[param]}`);
|
|
|
+
|
|
|
+ queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
|
|
|
+ }
|
|
|
|
|
|
- // window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom,val.argumentList)
|
|
|
+ let _url = url + queryString
|
|
|
+ console.log('_url',_url);
|
|
|
+
|
|
|
+ let pl = {json:_url ,stateL :true,toolId :val.toolId}
|
|
|
|
|
|
+ this.$emit('cutUrl',pl)
|
|
|
+
|
|
|
+ this.addOp3('1', "", { type:this.prefixL + val.toolId + "_open" }, "success")
|
|
|
},
|
|
|
// 打开CocoFlow应用
|
|
|
openNewWindow(val) {
|
|
@@ -506,11 +559,8 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
},
|
|
|
// 打开常见应用弹框
|
|
|
async lookMore(){
|
|
|
-
|
|
|
- let k = window.location.href.includes("/liyuan") ? "liyuan_" : "admin_"
|
|
|
-
|
|
|
let val = ''
|
|
|
- if (k == 'liyuan_') {
|
|
|
+ if (this.platform == 'liyuan_') {
|
|
|
val = {
|
|
|
id: "746ce524-0bae-11f0-baea-005056924926",
|
|
|
toolId: "appStoreLiYuan",
|
|
@@ -537,7 +587,6 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
status: "0"
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
|
|
|
val.url = JSON.parse(val.url)
|
|
|
val.argumentList = JSON.parse(val.argumentList)
|
|
@@ -550,93 +599,11 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
this.usuallyList= []
|
|
|
this.dialogVisible = false
|
|
|
},
|
|
|
- //#region
|
|
|
-
|
|
|
- // 弹框选择添加应用
|
|
|
- // addApp(val){
|
|
|
- // // let data = this.CocoFlowList.filter(e=>{
|
|
|
- // // return e.id == val
|
|
|
- // // })
|
|
|
- // // if (data.length != 0) return this.$message.info('常用列表已添加')
|
|
|
- // let kpl = [...this.tab,...this.CocoFlowList]
|
|
|
- // // console.log(kpl);
|
|
|
-
|
|
|
-
|
|
|
- // const index = this.tab.indexOf(val);
|
|
|
- // if (index !== -1) {
|
|
|
- // this.tab.splice(index, 1); // 删除第一个匹配项
|
|
|
- // } else {
|
|
|
- // if (kpl.length > 3) return this.$message.info('只能添加四个常用应用哦')
|
|
|
- // this.tab.push(val); // 添加元素到末尾
|
|
|
- // }
|
|
|
- // },
|
|
|
- // // 添加常用确定按钮
|
|
|
- // async addUsuallyApp(){
|
|
|
- // const uploadYn = async files => {
|
|
|
- // for (let index = 0; index < files.length; index++) {
|
|
|
- // await this.XAdd(files[index]);
|
|
|
- // console.log(index);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // await uploadYn(this.tab);
|
|
|
- // console.log('完成了');
|
|
|
- // this.getData()
|
|
|
- // this.handleClose()
|
|
|
- // },
|
|
|
- // // 循环添加用户选择常见应用
|
|
|
- // XAdd(val){
|
|
|
- // return new Promise((resolve) => {
|
|
|
- // let params = [
|
|
|
- // {
|
|
|
- // functionName: API_CONFIG.ajax_add_usuallyApp.functionName,
|
|
|
- // oid:this.roleUser.organizeid,
|
|
|
- // aid: val,
|
|
|
- // uid: this.roleUser.userid,
|
|
|
- // },
|
|
|
- // ];
|
|
|
-
|
|
|
- // this.$ajax
|
|
|
- // .post(API_CONFIG.baseUrl, params)
|
|
|
- // .then(() => {
|
|
|
- // resolve(1)
|
|
|
- // })
|
|
|
- // .catch((err) => {
|
|
|
- // console.log(err);
|
|
|
- // });
|
|
|
- // })
|
|
|
- // },
|
|
|
- // // 删除应用
|
|
|
- // delApp(val){
|
|
|
- // this.$confirm('确定删除吗', '提示', {
|
|
|
- // confirmButtonText: '确定',
|
|
|
- // cancelButtonText: '取消',
|
|
|
- // type: 'warning'
|
|
|
- // }).then(async () => {
|
|
|
- // let params = [
|
|
|
- // {
|
|
|
- // functionName: API_CONFIG.ajax_del_usuallyApp.functionName,
|
|
|
- // aid: val,
|
|
|
- // },
|
|
|
- // ];
|
|
|
-
|
|
|
- // this.$ajax
|
|
|
- // .post(API_CONFIG.baseUrl, params)
|
|
|
- // .then(() => {
|
|
|
- // this.$message.success('删除成功')
|
|
|
- // this.getData()
|
|
|
- // })
|
|
|
- // .catch((err) => {
|
|
|
- // console.log(err);
|
|
|
- // this.$message.error("删除失败");
|
|
|
- // });
|
|
|
-
|
|
|
- // }).catch(() => {
|
|
|
- // // 取消操作
|
|
|
- // });
|
|
|
- // },
|
|
|
-
|
|
|
- //#endregion
|
|
|
},
|
|
|
+ mounted(){
|
|
|
+ this.platform = window.location.href.includes("liyuan") ? "liyuan_" : "admin_"
|
|
|
+ // this.betaL = window.location.href.includes("beta") ? "beta" : "cloud"
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|
|
@@ -685,6 +652,12 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
gap: 20px; /* 网格间距 */
|
|
|
margin: 26px 0 40px;
|
|
|
}
|
|
|
+.TabListAdmin{
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
|
|
+ gap: 20px; /* 网格间距 */
|
|
|
+ margin: 56px 0 40px;
|
|
|
+}
|
|
|
|
|
|
.TabListAll{
|
|
|
position: relative !important;
|
|
@@ -692,6 +665,25 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
height: 140px;
|
|
|
justify-content: flex-end;
|
|
|
}
|
|
|
+.TabListAll2{
|
|
|
+ position: relative !important;
|
|
|
+ display: flex;
|
|
|
+ height: 140px;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: end;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding: 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.tabTit{
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 20px;
|
|
|
+ line-height: 100%;
|
|
|
+}
|
|
|
.imgApp{
|
|
|
width: 120px;
|
|
|
height: 140px;
|
|
@@ -756,10 +748,6 @@ import { myMixin } from "@/mixins/mixin.js"
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/* 常见应用样式 */
|
|
|
.footCon{
|
|
|
display: flex;
|