11wqe1 2 月之前
父节点
当前提交
954dba4dc2
共有 4 个文件被更改,包括 149 次插入47 次删除
  1. 86 29
      src/components/sidebarL.vue
  2. 36 5
      src/components/topPage.vue
  3. 17 10
      src/views/HomeView.vue
  4. 10 3
      src/views/homepageL.vue

+ 86 - 29
src/components/sidebarL.vue

@@ -53,28 +53,28 @@
             </div>
             
             <!-- 二级导航 -->
-            <div class="ulTCopy" v-if="isShow && barCopy.length != 0" >
-                <div class="ulTCopyTit">
-                    <span>教学中心</span>
-                    <span @click="closeCopy" class="cha" style="color: #6B7280;font-size: 23px;cursor: pointer;">⨯</span>
-                </div>
+                <div class="ulTCopy" v-if="isShow && barCopy.length != 0" >
+                    <div class="ulTCopyTit">
+                        <span>{{ barCopyTit }}</span>
+                        <span @click="closeCopy" class="cha" style="color: #6B7280;font-size: 23px;cursor: pointer;">⨯</span>
+                    </div>
 
-                <div style="padding: 16px;box-sizing: border-box;">
-                    <div class="ulTCopyTxt" v-for="(i,ind) in appSignL(barCopy)" @click="levTwo(i)" :key="ind+'a'">
-                        <div>
-                            <div style="display: flex;justify-content: space-between;align-items: center;" v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
-                                <div>  
-                                    <img style="width: 30px;object-fit: contain;margin-right: 5px;"  
-                                    :src="p.icon" 
-                                    alt="">
+                    <div style="padding: 16px;box-sizing: border-box;">
+                        <div class="ulTCopyTxt" v-for="(i,ind) in appSignL(barCopy)" @click="levTwo(i)" :key="ind+'a'">
+                            <div>
+                                <div style="display: flex;justify-content: space-between;align-items: center;" v-for="(p,pin) in AppCon(i.url)" :key="pin+'p'">
+                                    <div>  
+                                        <img style="width: 30px;object-fit: contain;margin-right: 5px;"  
+                                        :src="p.icon" 
+                                        alt="">
+                                    </div>
+                                    <span>{{ p.name }}</span>
                                 </div>
-                                <span>{{ p.name }}</span>
                             </div>
                         </div>
                     </div>
+
                 </div>
-            </div>
-            
             <div v-if="isShow" @click="closeCopy" style="width: 100vw;height: 100vh;position: absolute;left: 0;top: 0;z-index: 1;"></div>
         </div>
 </template>
@@ -85,6 +85,7 @@ import { loginOut } from '@/api/user';
 import store from '../store'
 
     export default {
+        props:['urlAddress'],
         computed: {
             ...mapGetters(['userinfo','fromL','appSign']),
             // 如果hk,com没有图标,默认使用cn的
@@ -110,7 +111,7 @@ import store from '../store'
             // 筛选是否为管理员可见,是否被删除
             appSignL(){
                 return function(val){
-                    console.log(val);
+                    // console.log(val);
                     
                     let data = []
                     if (this.userinfo.type == 1 && this.userinfo.role == 1) {
@@ -138,7 +139,7 @@ import store from '../store'
                 activeL:0,
                 // 二级分类
                 barCopy:[],
-             
+                barCopyTit:''
             }
         },
         methods: {
@@ -173,7 +174,7 @@ import store from '../store'
             },
             // 点击一级导航
             async goto(index,val = null){
-                console.log('goto',val);
+                // console.log('goto',val);
                 
                 // val = null 就是点击了首页
                 if (val) {
@@ -181,7 +182,8 @@ import store from '../store'
                 }else{
                     // 点击首页清空内容,并把标识去除
                     await store.commit('user/SET_AppSIGN', '')
-                    document.querySelector('#pageCon').innerHTML = '';
+                    this.$emit('update:urlAddress','')
+
                     this.$emit('getPer')
 
                     this.isShow = false
@@ -192,11 +194,10 @@ import store from '../store'
 
                 // 有二级导航的显示二级导航.无二级则进行判断
                 if (val.children) {
+                    this.barCopyTit = val.menuName
                     this.barCopy = JSON.parse(JSON.stringify(val.children))
                     this.isShow = true
 
-                    // this.appSign = ''
-                    // document.querySelector('#pageCon').innerHTML = '';
                 }else{
                     this.isShow = false
 
@@ -213,15 +214,42 @@ import store from '../store'
                             url = e.url
                         }
                     });
+                    let _userinfo = this.userinfo, //登录用户信息
+                    { userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
+                    const _TscreenType = 1, _SscreenType = 3; // 常量定义
+                    let queryString = ''
+                    if(val.argumentList && val.argumentList.length){
+                        const paramsMap = {
+                        userid: _userid,
+                        org: _org,
+                        oid: _oid,
+                        type: _type,
+                        role: _role,
+                        classId: _classId,
+                        TscreenType: _TscreenType,
+                        SscreenType: _SscreenType
+                        };
+
+                        const canshu = val.argumentList
+                        .filter(param => paramsMap[param] !== undefined)
+                        .map(param => `${param}=${paramsMap[param]}`);
 
-                    let dom = document.querySelector('#pageCon')
+                        queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
+                    }
+
+                let _url = url + queryString
+                this.$emit('update:urlAddress',_url)
+
+                console.log('_url',_url);
+
+                    // let dom = document.querySelector('#pageCon')
                     
-                    document.querySelector('#pageCon').innerHTML = '';
-                    console.log('val',val);
+                    // document.querySelector('#pageCon').innerHTML = '';
+                    // console.log(val.toolId, url, dom,val.argumentList);
                     
                     
                    
-                    window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom,val.argumentList)
+                    // window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom,val.argumentList)
                    
                     // 应用标识,url,存储dom
                 }
@@ -242,11 +270,39 @@ import store from '../store'
                     }
                 });
 
-                let dom = document.querySelector('#pageCon')
+                let _userinfo = this.userinfo, //登录用户信息
+                { userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
+                const _TscreenType = 1, _SscreenType = 3; // 常量定义
+                let queryString = ''
+                if(val.argumentList && val.argumentList.length){
+                    const paramsMap = {
+                    userid: _userid,
+                    org: _org,
+                    oid: _oid,
+                    type: _type,
+                    role: _role,
+                    classId: _classId,
+                    TscreenType: _TscreenType,
+                    SscreenType: _SscreenType
+                    };
+
+                    const canshu = val.argumentList
+                    .filter(param => paramsMap[param] !== undefined)
+                    .map(param => `${param}=${paramsMap[param]}`);
+
+                    queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
+                }
+
+                let _url = url + queryString
+                this.$emit('update:urlAddress',_url)
+
+                console.log('_url',_url);
+               
+                // let dom = document.querySelector('#pageCon')
         
-                document.querySelector('#pageCon').innerHTML = '';
+                // document.querySelector('#pageCon').innerHTML = '';
                 
-                window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom)
+                // window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom ,val.argumentList)
             }
         },
        
@@ -255,6 +311,7 @@ import store from '../store'
 </script>
 
 <style scoped>
+
 .logo{
   width: 80px;
   height: 68px;

+ 36 - 5
src/components/topPage.vue

@@ -4,7 +4,7 @@
             <div class="topBlock">
                 <div class="topTit" style="display: flex;">
                     <div>欢迎使用</div>
-                    <div style="color: #0354D7;margin: 0 15px;">深圳市荔园教育集团—{{ fromL.basics.title }}</div>
+                    <div style="color: #0354D7;margin: 0 15px;"><span v-if="userinfo.orgName">{{userinfo.orgName}}—</span>{{ fromL.basics.title }}</div>
                     <div>AI平台!</div>
                 </div>
                 <div class="topDetail">
@@ -120,24 +120,55 @@ import store from '../store'
         },
         methods: {
             async openApp(val){
+                
                 // 点击相同应用不刷新
                 if (this.appSign == val.toolId) return
                 // 更新标识
                 await store.commit('user/SET_AppSIGN', val.toolId)
                 
+                
                 let url = ''
                 val.url.forEach(e => {
-                    if (e.region == this.userinfo.schoolArea) {
+                    if (e.region == this.userinfo.schoolArea || e.region == this.userinfo.orgArea) {
                         url = e.url
                     }
                 });
+                console.log('url111111111111',url);
+                
+
+                let _userinfo = this.userinfo, //登录用户信息
+                { userid: _userid, organizeid: _oid, type: _type, org: _org, role: _role, classid: _classId } = _userinfo; // 解构赋值获取用户信息
+                const _TscreenType = 1, _SscreenType = 3; // 常量定义
+                let queryString = ''
+                if(val.argumentList && val.argumentList.length){
+                    const paramsMap = {
+                    userid: _userid,
+                    org: _org,
+                    oid: _oid,
+                    type: _type,
+                    role: _role,
+                    classId: _classId,
+                    TscreenType: _TscreenType,
+                    SscreenType: _SscreenType
+                    };
+
+                    const canshu = val.argumentList
+                    .filter(param => paramsMap[param] !== undefined)
+                    .map(param => `${param}=${paramsMap[param]}`);
 
-                let dom = document.querySelector('#pageCon')
+                    queryString = canshu.length ? (url.includes('?') ? '&' : '?') + canshu.join('&') : ''; // 生成查询字符串
+                }
+
+                let _url = url + queryString
+                console.log('_url',_url);
+                
+                
+                this.$emit('cutUrl',_url)
         
-                document.querySelector('#pageCon').innerHTML = '';
+                // document.querySelector('#pageCon').innerHTML = '';
                 
 
-                window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom,val.argumentList)
+                // window.topU.U.MD.D.I.openApplicationWai(val.toolId, url, dom,val.argumentList)
                 
             },
             openNewWindow(val) {

+ 17 - 10
src/views/HomeView.vue

@@ -9,15 +9,26 @@
     </div> -->
     <div class="container">
       <div class="leftBar" style="height: 100%;">
-        <sidebarL @getPer="getPer" @clearAppSign="clearAppSign" ref="sidebarLRef"></sidebarL>
+        <sidebarL @getPer="getPer" :urlAddress.sync="urlAddress"  ref="sidebarLRef"></sidebarL>
       </div>
       <div class="table-container">
         <!-- <router-view></router-view> -->
          <!-- 首页 -->
-         <homepageL v-show="!appSign" ref="homepageLRef"></homepageL>
+         <homepageL :urlAddress.sync="urlAddress" v-show="!appSign" ref="homepageLRef"></homepageL>
 
          <!-- 应用  -->
-         <div v-show="appSign" style="height: 100%;" id="pageCon"></div>
+         <iframe 
+            v-if="appSign && urlAddress"
+            allow= "camera *; microphone *;display-capture;midi;encrypted-media;"
+            frameborder="no" 
+            border="0" 
+            scrolling="no" 
+            style="border:0;width:100%;height:100%;" 
+            :src="urlAddress" 
+            ref="pageCon"
+            >
+        </iframe>
+         <!-- <div style="height: 100%;" id="pageCon"></div> -->
       </div>
     </div>
   </div>
@@ -42,7 +53,8 @@ export default {
     return {
       perData:[],
       toolList:[],
-      form:{}
+      form:{},
+      urlAddress:''
     }
   },
   computed: {
@@ -76,12 +88,7 @@ export default {
         // 取消操作
       });
     },
-    // 清空组件标识,防止标识相同不刷新
-    clearAppSign(){
-      this.$refs.homepageLRef.$refs.topPageRef.TopAppSign = ''
-      // this.$refs.homepageLRef.$refs.botPageRef.TopAppSign = ''
-
-    },
+   
     // 获取学校权限与组织权限,优先使用学校权限,其次使用组织权限
     getPer() {
       this.$refs.homepageLRef.getData()

+ 10 - 3
src/views/homepageL.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="allPage">
         <div class="packageL">
-            <topPage :CocoFlowList="CocoFlowList" ref="topPageRef"></topPage>
+            <topPage @cutUrl="cutUrl"  :CocoFlowList="CocoFlowList" ref="topPageRef"></topPage>
             <div style="height: 30px;width: 100%;"></div>
             <botPage :hotApp="hotApp" ref="botPageRef"></botPage>
         </div>
@@ -15,6 +15,7 @@ import { mapGetters } from 'vuex';
 import { API_CONFIG } from "@/common/apiConfig";
 
     export default {
+        props:['urlAddress'],
         computed: {
             ...mapGetters(['userinfo']),
         },
@@ -25,9 +26,12 @@ import { API_CONFIG } from "@/common/apiConfig";
         data() {
             return {
                 CocoFlowList:[],
-                hotApp:[]
+                hotApp:[],
+                
             }
         },
+        
+
         methods: {
             getData(){
                 let params = [
@@ -51,7 +55,10 @@ import { API_CONFIG } from "@/common/apiConfig";
                     .catch((err) => {
                         console.error("请求失败,错误信息:", err);
                     });
-            }
+            },
+            cutUrl(val){
+                this.$emit('update:urlAddress',val)
+            },
         },
     }
 </script>