Browse Source

update:DP-872

feat:DP-367
pull/2/head
Wangwei 2 years ago
parent
commit
6fd2c961cc
  1. 4
      src/components/Footer.vue
  2. 383
      src/components/Header.vue
  3. 65
      src/views/live/live_play.vue
  4. 2
      src/views/studypath/fineDataLink.vue
  5. 2
      src/views/studypath/jiandaoyun.vue

4
src/components/Footer.vue

@ -89,7 +89,7 @@
</el-popover> </el-popover>
</div> </div>
<el-dialog title="提交页面反馈" v-model="showFeedback" width="800px"> <el-dialog title="提交页面反馈" v-model="showFeedback" width="800px" custom-class="foot-dialog-feedback">
<div class="flex-1 dia-msg-til"> <div class="flex-1 dia-msg-til">
<span style="color: #FFA940; margin: 3px 6px 0 0;"> <span style="color: #FFA940; margin: 3px 6px 0 0;">
<svg viewBox="64 64 896 896" focusable="false" data-icon="info-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"> <svg viewBox="64 64 896 896" focusable="false" data-icon="info-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true">
@ -210,7 +210,7 @@ export default {
margin-top: 6px; margin-top: 6px;
color: #333; color: #333;
} }
.el-dialog { .foot-dialog-feedback {
.el-dialog__body { .el-dialog__body {
padding: 0 !important; padding: 0 !important;
} }

383
src/components/Header.vue

@ -1,59 +1,49 @@
<template> <template>
<header class="header" id="myheader"> <header class="header" id="myheader">
<div class="wrapper"> <div class="wrapper">
<!-- left --> <!-- left -->
<nav class="nav"> <nav class="nav">
<a class="nav-item item-lf" v-for="item in leftMenu" :key="item.id" :href="item.url" <a class="nav-item item-lf" v-for="item in leftMenu" :key="item.id" :href="item.url" :class="{ active: item.name === '学院' }">{{ item.name }}</a>
:class="{active:item.name==='学院'}">{{item.name}}</a>
</nav> </nav>
<!-- center --> <!-- center -->
<div class="search-box flex-1"> <div class="search-box flex-1">
<form class="searchform" method="get" autocomplete="off" action="https://search.fanruan.com/?q=" target="_blank" <form class="searchform" method="get" autocomplete="off" action="https://search.fanruan.com/?q=" target="_blank" v-if="is_search">
v-if="is_search">
<div class="el-input el-input--small el-input--suffix topsearch flex-1"> <div class="el-input el-input--small el-input--suffix topsearch flex-1">
<input class="el-input__inner" name="q" type="text" autocomplete="off" tabindex="" aria-label="" <input class="el-input__inner" name="q" type="text" autocomplete="off" tabindex="" aria-label="" placeholder="请输入关键词" @focus="isfocus('focus')" @blur="isfocus('blur')" v-on:input="isinput" />
placeholder="请输入关键词" @focus="isfocus('focus')" @blur="isfocus('blur')" v-on:input="isinput"> <button class="el-input__suffix search_sub" type="submit" :class="{ active_btn: kwbtn }">
<button class="el-input__suffix search_sub" type="submit" :class="{active_btn:kwbtn}">
<span class="el-input__suffix-inner search_btn"> <span class="el-input__suffix-inner search_btn">
<i class="iconfont icon-icon_icon-53 icon-ss" :class="{active:kwfocus}"></i> <i class="iconfont icon-icon_icon-53 icon-ss" :class="{ active: kwfocus }"></i>
</span> </span>
</button> </button>
</div> </div>
</form> </form>
<div class="searchform" v-else> <div class="searchform" v-else>
<div class="el-input el-input--small el-input--suffix topsearch flex-1"> <div class="el-input el-input--small el-input--suffix topsearch flex-1">
<div class="el-input__inner" style="color: #B5C1D0; line-height: 30px;">登录后方可搜索</div> <div class="el-input__inner" style="color: #B5C1D0; line-height: 30px;">登录后方可搜索</div>
<button class="el-input__suffix search_sub" type="submit" :class="{active_btn:kwbtn}"> <button class="el-input__suffix search_sub" type="submit" :class="{ active_btn: kwbtn }">
<span class="el-input__suffix-inner search_btn"> <span class="el-input__suffix-inner search_btn">
<i class="iconfont icon-icon_icon-53 icon-ss" :class="{active:kwfocus}"></i> <i class="iconfont icon-icon_icon-53 icon-ss" :class="{ active: kwfocus }"></i>
</span> </span>
</button> </button>
</div> </div>
</div> </div>
</div> </div>
<!-- rigt --> <!-- rigt -->
<nav class="infomation"> <nav class="infomation">
<template v-for="item in rightMenu" :key="item.id"> <template v-for="item in rightMenu" :key="item.id">
<template v-if="!item.children"> <template v-if="!item.children">
<a class="nav-item item-rt" :href="item.url">{{item.name}}</a> <a class="nav-item item-rt" :href="item.url">{{ item.name }}</a>
</template> </template>
<template v-else> <template v-else>
<el-dropdown :show-timeout="0"> <el-dropdown :show-timeout="0">
<span class="el-dropdown-link item-rt"> <span class="el-dropdown-link item-rt"> {{ item.name }}<i class="el-icon-arrow-down el-icon--right"></i> </span>
{{ item.name }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item v-for="child in item.children" :key="child.id" style="padding: 0;"> <el-dropdown-item v-for="child in item.children" :key="child.id" style="padding: 0;">
<a class="nav-item" :href="child.url" style="display:block;">{{child.name}}</a> <a class="nav-item" :href="child.url" style="display:block;">{{ child.name }}</a>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
@ -86,7 +76,6 @@
</el-dropdown> </el-dropdown>
</div> --> </div> -->
<div class="notice_box"> <div class="notice_box">
<el-dropdown trigger="hover"> <el-dropdown trigger="hover">
<el-badge :is-dot="is_dot" class="item badge" type="danger"> <el-badge :is-dot="is_dot" class="item badge" type="danger">
@ -94,7 +83,7 @@
</el-badge> </el-badge>
<template #dropdown> <template #dropdown>
<el-dropdown-menu class="i_item"> <el-dropdown-menu class="i_item">
<a :href="com_shequ_url+'/home.php?mod=space&do=notice&view=system'" target="_blank"> <a :href="com_shequ_url + '/home.php?mod=space&do=notice&view=system'" target="_blank">
<el-dropdown-item class="clearfix"> <el-dropdown-item class="clearfix">
<span class="i_txt">我的通知</span> <span class="i_txt">我的通知</span>
<el-badge class="mark" :value="u_notice" type="danger" /> <el-badge class="mark" :value="u_notice" type="danger" />
@ -112,14 +101,13 @@
</span> </span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu class="avatar_down"> <el-dropdown-menu class="avatar_down">
<el-dropdown-item v-for="(item, i) in avatarMenu.baseMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.baseMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.navMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.navMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown> <el-dropdown>
@ -127,40 +115,35 @@
</el-dropdown> </el-dropdown>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.adminMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.adminMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider v-if="avatarMenu.adminMenu?.length>0"></el-divider> <el-divider v-if="avatarMenu.adminMenu?.length > 0"></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.footerMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.footerMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
<div v-else class="loginReg flex-1"> <div v-else class="loginReg flex-1">
<a class="loginbtn" <a class="loginbtn" :href="com_id_url + '/cas/login?service=' + com_edu_url + '/v1/user/cas/edu/login/?redirect=' + $route.fullPath">登录</a>
:href="com_id_url+'/cas/login?service='+com_edu_url+'/v1/user/cas/edu/login/?redirect='+$route.fullPath">登录</a>
</div> </div>
</nav> </nav>
</div> </div>
</header> </header>
<div class="edu-nav-box" v-if="isPc"> <div class="edu-nav-box" v-if="isPc">
<div class="mainbox"> <div class="mainbox">
<div class="edu-head"> <div class="edu-head">
<router-link class="logo" to="/"><img src="@/assets/logo.png" /></router-link> <router-link class="logo" to="/"><img src="@/assets/logo.png"/></router-link>
<div class="edu-nav"> <div class="edu-nav">
<router-link to="/">首页</router-link> <router-link to="/">首页</router-link>
<router-link to="/studypath/finereport" :class="$route.meta.active == 'studypath' ? 'active':'' ">学习路径 <router-link to="/studypath/finereport" :class="$route.meta.active == 'studypath' ? 'active' : ''">学习路径 </router-link>
</router-link> <router-link to="/video" :class="$route.meta.active == 'video' ? 'active' : ''">视频课</router-link>
<router-link to="/video" :class="$route.meta.active == 'video' ? 'active':'' ">视频课</router-link> <router-link to="/class" :class="$route.meta.active == 'class' ? 'active' : ''">学习班</router-link>
<router-link to="/class" :class="$route.meta.active == 'class' ? 'active':'' ">学习班</router-link> <router-link to="/live" :class="$route.meta.active == 'live' ? 'active' : ''">直播</router-link>
<router-link to="/live" :class="$route.meta.active == 'live' ? 'active':'' ">直播</router-link> <router-link to="/cityclass" :class="$route.meta.active == 'cityclass' ? 'active' : ''">城市课堂</router-link>
<router-link to="/cityclass" :class="$route.meta.active == 'cityclass' ? 'active':'' ">城市课堂</router-link> <router-link to="/more" :class="$route.meta.active == 'more' ? 'active' : ''">资源导航</router-link>
<router-link to="/more" :class="$route.meta.active == 'more' ? 'active':'' ">资源导航</router-link>
</div> </div>
</div> </div>
</div> </div>
@ -168,18 +151,15 @@
<!-- 移动端 --> <!-- 移动端 -->
<div class="edu-nav-box-m dn" v-else> <div class="edu-nav-box-m dn" v-else>
<!-- search --> <!-- search -->
<div class="ss-main-box dn" :class="{showss:ssOpen}"> <div class="ss-main-box dn" :class="{ showss: ssOpen }">
<div class="search-box-m"> <div class="search-box-m">
<form class="searchform" method="get" autocomplete="off" action="https://search.fanruan.com/?q=" target="_blank" <form class="searchform" method="get" autocomplete="off" action="https://search.fanruan.com/?q=" target="_blank" v-if="is_search">
v-if="is_search">
<div class="el-input el-input--small el-input--suffix topsearch flex-1"> <div class="el-input el-input--small el-input--suffix topsearch flex-1">
<input class="el-input__inner" name="q" type="text" autocomplete="off" tabindex="" aria-label="" <input class="el-input__inner" name="q" type="text" autocomplete="off" tabindex="" aria-label="" placeholder="请输入关键词" @focus="isfocus('focus')" @blur="isfocus('blur')" v-on:input="isinput" />
placeholder="请输入关键词" @focus="isfocus('focus')" @blur="isfocus('blur')" v-on:input="isinput"> <button class="el-input__suffix search_sub" type="submit" :class="{ active_btn: kwbtn }">
<button class="el-input__suffix search_sub" type="submit" :class="{active_btn:kwbtn}">
<span class="el-input__suffix-inner search_btn"> <span class="el-input__suffix-inner search_btn">
<i class="iconfont icon-search icon-ss" :class="{active:kwfocus}"></i> <i class="iconfont icon-search icon-ss" :class="{ active: kwfocus }"></i>
</span> </span>
</button> </button>
</div> </div>
@ -188,50 +168,52 @@
<div class="searchform" v-else> <div class="searchform" v-else>
<div class="el-input el-input--small el-input--suffix topsearch flex-1"> <div class="el-input el-input--small el-input--suffix topsearch flex-1">
<div class="el-input__inner" style="color: #B5C1D0; line-height: 30px;">登录后方可搜索</div> <div class="el-input__inner" style="color: #B5C1D0; line-height: 30px;">登录后方可搜索</div>
<button class="el-input__suffix search_sub" type="submit" :class="{active_btn:kwbtn}"> <button class="el-input__suffix search_sub" type="submit" :class="{ active_btn: kwbtn }">
<span class="el-input__suffix-inner search_btn"> <span class="el-input__suffix-inner search_btn">
<i class="iconfont icon-search icon-ss" :class="{active:kwfocus}"></i> <i class="iconfont icon-search icon-ss" :class="{ active: kwfocus }"></i>
</span> </span>
</button> </button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="m-box flex-2"> <div class="m-box flex-2">
<div class="flex-3 flex-1"> <div class="flex-3 flex-1">
<!-- left --> <!-- left -->
<div @click="drawer=true"> <div @click="drawer = true">
<i class="iconfont icon-zhankai1 ff18" style="margin-right: 10px;"></i> <i class="iconfont icon-zhankai1 ff18" style="margin-right: 10px;"></i>
<span class="f18">帆软学院</span> <span class="f18">帆软学院</span>
</div> </div>
<!-- right --> <!-- right -->
<div class="flex-1"> <div class="flex-1">
<!-- search-btn --> <!-- search-btn -->
<div class="ss-btn-m"> <div class="ss-btn-m">
<i v-if="!ssOpen" class="iconfont icon-search ff18 col617 cur-p" @click="funssOpen(false)"></i> <i v-if="!ssOpen" class="iconfont icon-search ff18 col617 cur-p" @click="funssOpen(false)"></i>
<i v-else class="iconfont icon-cuohao1 ff18 col617 cur-p" @click="funssOpen(true);isfocus('blur');"></i> <i
v-else
class="iconfont icon-cuohao1 ff18 col617 cur-p"
@click="
funssOpen(true);
isfocus('blur');
"
></i>
</div> </div>
<el-dropdown v-if="com_user_token" class="personal" ref="userDropdown" trigger="click" <el-dropdown v-if="com_user_token" class="personal" ref="userDropdown" trigger="click" style="margin-left: 26px;">
style="margin-left: 26px;">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
<el-avatar :src="avatarUrl + uid" :size="32" fit="cover" icon="el-icon-user-solid"></el-avatar> <el-avatar :src="avatarUrl + uid" :size="32" fit="cover" icon="el-icon-user-solid"></el-avatar>
</span> </span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu class="avatar_down"> <el-dropdown-menu class="avatar_down">
<el-dropdown-item v-for="(item, i) in avatarMenu.baseMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.baseMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.navMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.navMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown> <el-dropdown>
@ -239,26 +221,21 @@
</el-dropdown> </el-dropdown>
<el-divider></el-divider> <el-divider></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.adminMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.adminMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
<el-divider v-if="avatarMenu.adminMenu?.length>0"></el-divider> <el-divider v-if="avatarMenu.adminMenu?.length > 0"></el-divider>
<el-dropdown-item v-for="(item, i) in avatarMenu.footerMenu" :key="i" :icon="item.icon"> <el-dropdown-item v-for="(item, i) in avatarMenu.footerMenu" :key="i" :icon="item.icon">
<a class="item-nav" :href="item.url">{{item.name}}</a> <a class="item-nav" :href="item.url">{{ item.name }}</a>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
<div v-else class="loginReg flex-1"> <div v-else class="loginReg flex-1">
<a class="loginbtn" :href="com_id_url+'/login/signin/'+'?referrer='+wwwUrl" <a class="loginbtn" :href="com_login_url">登录</a>
v-if="com_node_env==='dist'">登录</a>
<a class="loginbtn" :href="com_id_url+'/signin/'+'?isfridapp=inapp&referrer='+wwwUrl" v-else>登录</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -267,91 +244,72 @@
<div class="lf-nav-box-m"> <div class="lf-nav-box-m">
<el-scrollbar style="height: 100%; width: 99%; position: absolute;"> <el-scrollbar style="height: 100%; width: 99%; position: absolute;">
<el-menu default-active="2-1" class="el-menu-lf" @open="handleOpen" @close="handleClose"> <el-menu default-active="2-1" class="el-menu-lf" @open="handleOpen" @close="handleClose">
<li v-for="item in allMenu" :key="item.id"> <li v-for="item in allMenu" :key="item.id">
<el-submenu index="item.id" v-if="item.ident === 'edu'">
<el-submenu index="item.id" v-if="item.ident==='edu'">
<template #title> <template #title>
<span class="col008 f16"> <span class="col008 f16">
{{item.name}} {{ item.name }}
</span> </span>
</template> </template>
<el-menu-item-group> <el-menu-item-group>
<el-menu-item index="2-1"> <el-menu-item index="2-1">
<router-link to="/" class="lfnav-item" @click="drawer=false">学院首页</router-link> <router-link to="/" class="lfnav-item" @click="drawer = false">学院首页</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item index="2-2"> <el-menu-item index="2-2">
<router-link to="/studypath/finereport" @click="drawer=false" class="lfnav-item" <router-link to="/studypath/finereport" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'studypath' ? 'active' : ''">学习路径 </router-link>
:class="$route.meta.active == 'studypath' ? 'active':'' ">学习路径
</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item> <el-menu-item>
<router-link to="/video" @click="drawer=false" class="lfnav-item" <router-link to="/video" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'video' ? 'active' : ''">视频课 </router-link>
:class="$route.meta.active == 'video' ? 'active':'' ">视频课
</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item> <el-menu-item>
<router-link to="/class" @click="drawer=false" class="lfnav-item" <router-link to="/class" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'class' ? 'active' : ''">学习班 </router-link>
:class="$route.meta.active == 'class' ? 'active':'' ">学习班
</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item> <el-menu-item>
<router-link to="/live" @click="drawer=false" class="lfnav-item" <router-link to="/live" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'live' ? 'active' : ''">直播 </router-link>
:class="$route.meta.active == 'live' ? 'active':'' ">直播
</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item> <el-menu-item>
<router-link to="/cityclass" @click="drawer=false" class="lfnav-item" <router-link to="/cityclass" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'cityclass' ? 'active' : ''"> 城市课堂</router-link>
:class="$route.meta.active == 'cityclass' ? 'active':'' ">
城市课堂</router-link>
</el-menu-item> </el-menu-item>
<el-menu-item> <el-menu-item>
<router-link to="/more" @click="drawer=false" class="lfnav-item" <router-link to="/more" @click="drawer = false" class="lfnav-item" :class="$route.meta.active == 'more' ? 'active' : ''">资源导航 </router-link>
:class="$route.meta.active == 'more' ? 'active':'' ">资源导航
</router-link>
</el-menu-item> </el-menu-item>
</el-menu-item-group> </el-menu-item-group>
</el-submenu> </el-submenu>
<el-menu-item :index="item.id" v-if="!item.children && item.ident!='edu'"> <el-menu-item :index="item.id" v-if="!item.children && item.ident != 'edu'">
<template #title> <template #title>
<a class="lfnav-item" :href="item.url">{{item.name}}</a> <a class="lfnav-item" :href="item.url">{{ item.name }}</a>
</template> </template>
</el-menu-item> </el-menu-item>
<el-submenu :index="item.id" v-else-if="item.ident!='edu'"> <el-submenu :index="item.id" v-else-if="item.ident != 'edu'">
<template #title> <template #title>
<span>{{item.name}}</span> <span>{{ item.name }}</span>
</template> </template>
<el-menu-item-group> <el-menu-item-group>
<el-menu-item v-for="child in item.children" :key="child.id"> <el-menu-item v-for="child in item.children" :key="child.id">
<a class="lfnav-item" :href="child.url">{{child.name}}</a> <a class="lfnav-item" :href="child.url">{{ child.name }}</a>
</el-menu-item> </el-menu-item>
</el-menu-item-group> </el-menu-item-group>
</el-submenu> </el-submenu>
</li> </li>
</el-menu> </el-menu>
</el-scrollbar> </el-scrollbar>
</div> </div>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import { defineComponent, reactive, toRefs, ref, getCurrentInstance } from "vue"; import { defineComponent, reactive, toRefs, ref, getCurrentInstance } from "vue";
import teacherApplyModal from '@/components/TeacherApply/TeacherApplyModal'; import teacherApplyModal from "@/components/TeacherApply/TeacherApplyModal";
import { getMenuList } from "@/api/nav"; import { getMenuList } from "@/api/nav";
import { getNotice, avatarMenu } from "@/api/user"; import { getNotice, avatarMenu } from "@/api/user";
import store from '@/store'; import store from "@/store";
import { onBeforeRouteUpdate } from 'vue-router' import { onBeforeRouteUpdate } from "vue-router";
export default defineComponent({ export default defineComponent({
components: { components: {
teacherApplyModal teacherApplyModal,
}, },
name: "Header", name: "Header",
setup() { setup() {
@ -370,17 +328,17 @@
is_search: false, is_search: false,
drawer: false, drawer: false,
ssOpen: false, ssOpen: false,
avatarUrl: 'https://bbs.fanruan.com/uc_server/avatar.php?uid=', avatarUrl: "https://bbs.fanruan.com/uc_server/avatar.php?uid=",
uid: 0, uid: 0,
wwwUrl: '' wwwUrl: "",
}); });
state.wwwUrl = window.location.href; state.wwwUrl = window.location.href;
onBeforeRouteUpdate((to) => { onBeforeRouteUpdate((to) => {
state.wwwUrl = proxy.$root.com_edu_url + to.path; state.wwwUrl = proxy.$root.com_edu_url + to.path;
}) });
window.addEventListener('resize', function() { window.addEventListener("resize", function() {
state.isPc = document.body.clientWidth > 1200; state.isPc = document.body.clientWidth > 1200;
}); });
@ -415,7 +373,7 @@
if (res.code === 200) { if (res.code === 200) {
state.u_notice = res.data.system; state.u_notice = res.data.system;
if (state.u_notice > 0) { if (state.u_notice > 0) {
state.is_dot = true state.is_dot = true;
} }
} }
}; };
@ -423,7 +381,7 @@
resNotice(); resNotice();
state.uid = store.getters.get_uid; state.uid = store.getters.get_uid;
state.is_search = true; state.is_search = true;
setTimeout(function () { setTimeout(function() {
fetchavatarMenu(); fetchavatarMenu();
}, 500); }, 500);
} else { } else {
@ -441,9 +399,9 @@
function isinput(e) { function isinput(e) {
const { value } = e.target; const { value } = e.target;
if (value) { if (value) {
state.kwbtn = 1 state.kwbtn = 1;
} else { } else {
state.kwbtn = 0 state.kwbtn = 0;
} }
} }
@ -457,21 +415,21 @@
return { return {
...toRefs(state), ...toRefs(state),
input: ref(''), input: ref(""),
isfocus, isfocus,
isinput, isinput,
funssOpen, funssOpen,
}; };
}, },
}); });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-divider--horizontal { .el-divider--horizontal {
margin: 8px 0; margin: 8px 0;
} }
.app_qrcode_box { .app_qrcode_box {
.toptxt { .toptxt {
i { i {
font-size: 20px; font-size: 20px;
@ -482,10 +440,9 @@
font-size: 16px; font-size: 16px;
} }
} }
}
} .qrcode-box {
.qrcode-box {
width: 220px; width: 220px;
font-size: 14px; font-size: 14px;
@ -498,7 +455,7 @@
height: 40px; height: 40px;
a { a {
color: #8C8C8C; color: #8c8c8c;
margin-left: 12px; margin-left: 12px;
} }
} }
@ -507,13 +464,13 @@
height: 40px; height: 40px;
a { a {
color: #FF7A45; color: #ff7a45;
margin-left: 8px; margin-left: 8px;
} }
} }
} }
.header { .header {
height: 48px; height: 48px;
background: #fff; background: #fff;
padding: 0 40px 0 20px; padding: 0 40px 0 20px;
@ -531,7 +488,6 @@
min-width: 400px; min-width: 400px;
} }
.nav { .nav {
position: relative; position: relative;
height: 100%; height: 100%;
@ -596,12 +552,11 @@
} }
} }
.search-box { .search-box {
height: 48px; height: 48px;
margin: 0 auto; margin: 0 auto;
width: 40%; width: 40%;
transition: all .2s; transition: all 0.2s;
.searchform { .searchform {
width: 100%; width: 100%;
@ -634,82 +589,80 @@
} }
} }
.el-input__inner { .el-input__inner {
border: none; border: none;
border: 1px solid #EEF3FA; border: 1px solid #eef3fa;
background-color: #EEF3FA; background-color: #eef3fa;
border-radius: 100px; border-radius: 100px;
font-size: 14px; font-size: 14px;
} }
.el-input__inner:focus { .el-input__inner:focus {
border: 1px solid #0082FC; border: 1px solid #0082fc;
background-color: #fff; background-color: #fff;
} }
::placeholder { ::placeholder {
color: #8496AB !important; color: #8496ab !important;
}
} }
} }
} }
}
/*响应式-小屏幕*/ /*响应式-小屏幕*/
@media screen and (max-width: 1800px) { @media screen and (max-width: 1800px) {
.search-box { .search-box {
width: 36% !important; width: 36% !important;
} }
} }
@media screen and (max-width: 1700px) { @media screen and (max-width: 1700px) {
.search-box { .search-box {
width: 32% !important; width: 32% !important;
} }
} }
@media screen and (max-width: 1600px) { @media screen and (max-width: 1600px) {
.search-box { .search-box {
width: 28% !important; width: 28% !important;
} }
} }
@media screen and (max-width: 1500px) { @media screen and (max-width: 1500px) {
.search-box { .search-box {
width: 25% !important; width: 25% !important;
} }
} }
@media screen and (max-width: 1400px) { @media screen and (max-width: 1400px) {
.search-box { .search-box {
width: 20% !important; width: 20% !important;
} }
} }
@media screen and (max-width: 1300px) { @media screen and (max-width: 1300px) {
.search-box { .search-box {
width: 15% !important; width: 15% !important;
} }
} }
.el-popper { .el-popper {
.nav-item { .nav-item {
padding: 0 20px; padding: 0 20px;
color: #8496AB; color: #8496ab;
&:hover { &:hover {
color: #0082FC; color: #0082fc;
}
} }
} }
}
.el-dropdown-selfdefine { .el-dropdown-selfdefine {
font-size: 16px; font-size: 16px;
color: #333; color: #333;
} }
.avatar_down { .avatar_down {
width: 234px; width: 234px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -718,13 +671,13 @@
.item-nav { .item-nav {
display: inline-block; display: inline-block;
} }
} }
.avatar_down li:hover { .avatar_down li:hover {
background: none; background: none;
} }
.loginReg { .loginReg {
padding-left: 26px; padding-left: 26px;
span { span {
@ -737,7 +690,7 @@
font-size: 14px; font-size: 14px;
color: #fff; color: #fff;
padding: 5px 20px; padding: 5px 20px;
background: linear-gradient(270deg, #0082FC 0%, #00BBFE 100%); background: linear-gradient(270deg, #0082fc 0%, #00bbfe 100%);
@keyframes gradientBG { @keyframes gradientBG {
0% { 0% {
@ -755,26 +708,22 @@
&:hover { &:hover {
color: #fff; color: #fff;
background: linear-gradient(60deg, #0070d8, #0082FC, #00BBFE, #0ec4fc, #0082FC, #0070d8); background: linear-gradient(60deg, #0070d8, #0082fc, #00bbfe, #0ec4fc, #0082fc, #0070d8);
background-size: 400% 400%; background-size: 400% 400%;
animation: gradientBG 4s ease infinite; animation: gradientBG 4s ease infinite;
} }
} }
a { a {
color: #8496ab; color: #8496ab;
} }
a:hover { a:hover {
color: #0082FC; color: #0082fc;
}
} }
}
.notice_box { .notice_box {
padding: 4px 0 0 0px; padding: 4px 0 0 0px;
.icon-icon_icon-66 { .icon-icon_icon-66 {
@ -782,89 +731,88 @@
color: #333; color: #333;
margin: 0; margin: 0;
} }
} }
.i_item { .i_item {
.i_txt { .i_txt {
padding-right: 30px; padding-right: 30px;
} }
} }
::v-deep .el-badge__content { ::v-deep .el-badge__content {
background-color: #FF3D23 !important; background-color: #ff3d23 !important;
border: none; border: none;
margin: 6px 4px 0 0; margin: 6px 4px 0 0;
} }
</style> </style>
<style lang="scss"> <style lang="scss">
.edu-head { .edu-head {
height: 70px; height: 70px;
background: #fff; background: #fff;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.edu-head .logo img { .edu-head .logo img {
height: 34px; height: 34px;
} }
.edu-nav a { .edu-nav a {
margin-left: 40px; margin-left: 40px;
font-size: 18px font-size: 18px;
} }
.edu-nav-box { .edu-nav-box {
background: #fff; background: #fff;
box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3); box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3);
z-index: 6; z-index: 6;
position: relative position: relative;
} }
.el-dropdown-menu__item { .el-dropdown-menu__item {
min-width: 117px; min-width: 117px;
} }
</style> </style>
<style lang="scss"> <style lang="scss">
/*响应式-移动端*/ /*响应式-移动端*/
.edu-nav-box-m { .edu-nav-box-m {
background: #fff; background: #fff;
box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3); box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3);
z-index: 6; z-index: 6;
position: relative; position: relative;
height: 50px; height: 50px;
} }
.m-box { .m-box {
height: 50px; height: 50px;
padding: 0 20px; padding: 0 20px;
}
} .ss-main-box {
.ss-main-box {
position: absolute; position: absolute;
background-color: #fff; background-color: #fff;
width: 100%; width: 100%;
padding: 0 20px; padding: 0 20px;
transition: all .3s; transition: all 0.3s;
margin-top: 0; margin-top: 0;
box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3); box-shadow: 0px 4px 6px -3px rgba(179, 193, 211, 0.3);
z-index: -1px; z-index: -1px;
} }
.showss { .showss {
transition: all .3s; transition: all 0.3s;
margin-top: 50px; margin-top: 50px;
display: block !important; display: block !important;
} }
.search-box-m { .search-box-m {
height: 48px; height: 48px;
padding-top: 3px; padding-top: 3px;
width: 100%; width: 100%;
transition: all .2s; transition: all 0.2s;
.searchform { .searchform {
width: 100%; width: 100%;
@ -897,32 +845,31 @@
} }
} }
.el-input__inner { .el-input__inner {
border: none; border: none;
border: 1px solid #EEF3FA; border: 1px solid #eef3fa;
background-color: #EEF3FA; background-color: #eef3fa;
border-radius: 100px; border-radius: 100px;
font-size: 14px; font-size: 14px;
} }
.el-input__inner:focus { .el-input__inner:focus {
border: 1px solid #0082FC; border: 1px solid #0082fc;
background-color: #fff; background-color: #fff;
} }
::placeholder { ::placeholder {
color: #8496AB !important; color: #8496ab !important;
}
} }
}
/* 导航 */ /* 导航 */
.lfnav-item { .lfnav-item {
display: block; display: block;
font-size: 15px; font-size: 15px;
} }
.drawerHead { .drawerHead {
text-align: left; text-align: left;
.el-submenu__icon-arrow, .el-submenu__icon-arrow,
@ -954,5 +901,5 @@
.el-menu { .el-menu {
border: none; border: none;
} }
} }
</style> </style>

65
src/views/live/live_play.vue

@ -1,5 +1,5 @@
<template> <template>
<div v-wechat-title="'正在直播' +play_title"></div> <div v-wechat-title="play_title + ' - ' + $route.meta.title"></div>
<appHeader /> <appHeader />
<div v-if="!com_user_token"> <div v-if="!com_user_token">
@ -10,35 +10,32 @@
</div> </div>
<div v-else-if="!isAuth"> <div v-else-if="!isAuth">
<el-empty :image-size="200" description=" ">{{msg}}</el-empty> <el-empty :image-size="200" description=" ">{{ msg }}</el-empty>
<div style="text-align: center"> <div style="text-align: center">
<router-link :to="'/live/'+liveid" class="el-btn medium ff18">马上报名</router-link> <router-link :to="'/live/' + liveid" class="el-btn medium ff18">马上报名</router-link>
</div> </div>
</div> </div>
<div class="playbox" v-else> <div class="playbox" v-else>
<iframe scrolling="no" border="0" frameborder='0' allowfullscreen='true' <!-- <iframe scrolling="no" border="0" frameborder="0" allowfullscreen="true" :src="'https://live.vhall.com/webinar/inituser/' + live.webinar_id + '?email=' + live.uid + '@vhall.com&name=' + live.liveUserName + '&k=' + live.livekey" width="100%" height="100%"> </iframe> -->
:src="'https://live.vhall.com/webinar/inituser/'+live.webinar_id+'?email='+live.uid+'@vhall.com&name='+live.liveUserName+'&k='+live.livekey" <iframe id="iframe_live" border="0" frameborder="0" allowfullscreen="true" :src="'https://live.polyv.cn/watch/' + live.webinar_id + '?userid=' + live.uid + '&ts=' + live.ts + '&sign=' + live.sign" width="100%" height="100%"> </iframe>
width="100%" height="100%">
</iframe>
</div> </div>
</template> </template>
<script> <script>
import appHeader from "@/components/Header"; import appHeader from "@/components/Header";
import { useRoute } from 'vue-router' import { useRoute } from "vue-router";
import { livePlay } from "@/api/live"; import { livePlay } from "@/api/live";
import { toRefs, reactive, getCurrentInstance } from 'vue'; import { toRefs, reactive, getCurrentInstance } from "vue";
export default { export default {
name: 'live_play', name: "live_play",
components: { components: {
appHeader, appHeader,
}, },
setup() { setup() {
const { proxy } = getCurrentInstance() const { proxy } = getCurrentInstance();
const route = useRoute() const route = useRoute();
const liveid = route.params.liveid; const liveid = route.params.liveid;
const state = reactive({ const state = reactive({
isAuth: 1, isAuth: 1,
@ -48,14 +45,14 @@
playcur: 0, playcur: 0,
logid: 0, logid: 0,
videoid: 0, videoid: 0,
play_title: '', play_title: "",
}) });
const reslivePlay = async () => { const reslivePlay = async () => {
const res = await livePlay(liveid); const res = await livePlay(liveid);
if(res.status==-1){ if (res.status == -1) {
state.isAuth=0; state.isAuth = 0;
state.msg=res.message; state.msg = res.message;
} }
if (res.code === 200) { if (res.code === 200) {
state.live = res.data; state.live = res.data;
@ -67,17 +64,23 @@
reslivePlay(); reslivePlay();
} }
// setTimeout(function() {
// let iframeDocument = document.getElementById("iframe_live").contentWindow;
// console.log("iframeDocument=====", iframeDocument);
// iframeDocument.body.style.backgroundColor = "blue";
// }, 500);
return { return {
...toRefs(state), ...toRefs(state),
liveid, liveid,
} };
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.playbox { .playbox {
position: absolute; position: absolute;
top: 118px; top: 118px;
left: 0; left: 0;
@ -85,15 +88,11 @@
right: 0; right: 0;
background-color: #000; background-color: #000;
overflow: hidden; overflow: hidden;
} }
</style> </style>
<style lang="scss"> <style lang="scss">
/*响应式-移动端*/ /*响应式-移动端*/
@media screen and (max-width: 800px) { @media screen and (max-width: 800px) {
.header, .header,
.edu-nav-box { .edu-nav-box {
display: none; display: none;
@ -102,5 +101,5 @@
.playbox { .playbox {
top: 0 !important; top: 0 !important;
} }
} }
</style> </style>

2
src/views/studypath/fineDataLink.vue

@ -66,7 +66,7 @@
<div class="w1200"> <div class="w1200">
<div class="boxtil flex-1"> <div class="boxtil flex-1">
<div class="yinhao"></div> <div class="yinhao"></div>
<div class="txt">FineDatalLink学习路径</div> <div class="txt">FineDataLink学习路径</div>
</div> </div>
<div class="f24 col849 pt10">系统性自学 少走弯路</div> <div class="f24 col849 pt10">系统性自学 少走弯路</div>

2
src/views/studypath/jiandaoyun.vue

@ -116,7 +116,7 @@
</div> </div>
<div class="flex-6" style="margin: 10px 0 8px;"> <div class="flex-6" style="margin: 10px 0 8px;">
<a class="btn-jdy f14 newbtn3" href="/video/387" target="_blank">数据分析</a> <a class="btn-jdy f14 newbtn3" href="/video/442" target="_blank">数据分析</a>
<a class="btn-jdy f14 newbtn3" href="/video/108" target="_blank">智能助手</a> <a class="btn-jdy f14 newbtn3" href="/video/108" target="_blank">智能助手</a>
</div> </div>

Loading…
Cancel
Save