Commit 5da79659 authored by 罗超's avatar 罗超

1

parent 6f0447c0
......@@ -48,7 +48,7 @@ module.exports = function (ctx) {
build: {
vueRouterMode: 'hash', // available values: 'hash', 'history'
env: ctx.dev ? {
API: 'http://192.168.1.13:8085/api'
API: 'http://192.168.1.36:8300/api'
} : {
API: 'http://eduapi.oytour.com/api'
},
......
import request from '../utils/request'
let curDomain = location.origin
let groupId = localStorage.getItem("groupID")
//获取课程系列列表
export function getCourseCategoryList() {
return request({
url: '/Web/GetCourseCategoryList',
method: "post",
data: {
Group_Id: groupId,
Domain: curDomain,
}
});
}
//获取课程列表
export function getCoursePageList(msg) {
return request({
url: '/Web/GetCoursePageList',
method: "post",
data: {
Group_Id: groupId,
Domain: curDomain,
pageIndex: msg.pageIndex,
pageSize: msg.pageSize,
CourseName:msg.CourseName,
QCateIds: msg.QCateIds
}
});
}
// 根据编号获取课程详情
export function getCourseDetail(id) {
return request({
url: '/Web/GetCourse',
method: "post",
data: {
Group_Id: groupId,
Domain: curDomain,
CourseId: id
}
});
}
// 获取开班计划列表
export function getClassPlan(msg) {
return request({
url: '/Web/GetClassPruduct',
method: "post",
data: {
Group_Id: groupId,
Domain: curDomain,
pageIndex: msg.pageIndex,
pageSize: msg.pageSize,
StartTime: msg.StartTime,
EndTime: msg.EndTime,
ClassName: msg.ClassName,
CateId: msg.CateId
}
});
}
\ No newline at end of file
import request from '../utils/request'
let curDomain = location.origin
let groupId = localStorage.getItem("groupID")
//获取网站配置
export function getWebConfig() {
return request({
url: '/Web/GetWebSiteConfig',
method: "post",
data: {
msg: {
Domain: curDomain
}
}
});
}
//获取网站导航列表
export function getWebNavList(type) {
return request({
url: '/Web/GetWebNavList',
method: "post",
data: {
Group_Id: groupId,
NavType: type,
Domain: curDomain
}
});
}
//获取新闻类型列表
export function getWebNewsTypeList() {
return request({
url: '/Web/GetWebNewsTypeList',
method: "post",
data: {
Group_Id: groupId,
Domain: curDomain
}
});
}
\ No newline at end of file
......@@ -4,7 +4,7 @@
v-model="slide"
swipeable
animated
navigation
:navigation="swiperList.length>1"
height="100%"
autoplay
infinite
......@@ -15,16 +15,17 @@
<div v-else @click="onClick" class="parmaryBtn"></div>
</template>
<q-carousel-slide
v-for="item in bannerList"
:key="item.id"
:name="item.name"
:img-src="item.url"
v-for="item in swiperList"
:key="item.Id"
:name="item.NavTypeName"
:img-src="item.BgImg"
>
<div class="conbox">
<div class="con1"><span class="jh">甲鹤-</span>特色教室</div>
<div class="con1"><span class="jh">{{item.NavTitle}}<!--甲鹤---></span><!--特色教室--></div>
<div class="con2">
这里给一点小文字介绍什么的最好,这里给一点小文字介绍什么的最好,这里给一点
小文字介绍什么的最好。
{{item.SubTitle}}
<!-- 这里给一点小文字介绍什么的最好,这里给一点小文字介绍什么的最好,这里给一点
小文字介绍什么的最好。 -->
</div>
<div class="con3"></div>
<div class="btn">查看更多</div>
......@@ -35,21 +36,15 @@
</template>
<script>
export default {
props:{
swiperList:{
type:Array,
default:[]
},
},
data() {
return {
slide: "first",
bannerList: [
{
id: 1,
name: "first",
url: require("../../assets/images/index/banner_bg.png"),
},
{
id: 2,
name: "second",
url: require("../../assets/images/index/banner_bg.png"),
},
],
slide: this.swiperList.NavTitle,
};
},
};
......
<template>
<div :style="{ opacity: scorllNum < 300 ? '1' : scorllNum/1080 }">
<div>
<div
id="dowebok"
class="animated bounceOutLeft animate__animated animate__fadeInDown"
:class="{
'header_absolute': scorllNum < 300,
'header_fixed': scorllNum >= 300,
}"
:style="{ opacity: scorllNum < 300 ? '1' : scorllNum / 1080 }"
v-if="type == 1"
class="type1"
>
<div
id="dowebok"
:class="{
header_absolute: scorllNum < 300,
header_fixed: scorllNum >= 300,
}"
>
<div class="row items-center full-height">
<div class="col">
<img style="height: 61px" src="../../assets/images/logo.png" />
</div>
<div class="col">
<q-tabs
v-model="tab"
class="text-dark"
active-color="dark"
align="justify"
narrow-indicator
dense
>
<q-tab
v-for="(item, index) in menuList"
:key="index"
:name="item.Name"
:label="item.Name"
content-class="items-nav"
@click="jumpPage(item.MenuUrl)"
/>
</q-tabs>
</div>
</div>
</div>
</div>
<div
class="type2"
v-if="type == 2"
>
<div class="row items-center full-height">
<div class="col">
<div class="col" style="marginLeft:3.125vw">
<img style="height: 61px" src="../../assets/images/logo.png" />
</div>
<div class="col">
......@@ -22,15 +57,21 @@
narrow-indicator
dense
>
<!-- <q-route-tab to="/index" name="home" label="首页" content-class="items-nav" /> -->
<q-tab name="home" label="甲鹤教育" content-class="items-nav" @click="jumpPage('/index')"/>
<q-tab name="japan" label="日语培训" content-class="items-nav" @click="jumpPage('/JapaneseTrain')"/>
<q-tab
v-for="(item, index) in menuList"
:key="index"
:name="item.Name"
:label="item.Name"
content-class="items-nav"
@click="jumpPage(item.MenuUrl)"
/>
<!-- <q-tab name="home" label="甲鹤教育" content-class="items-nav" @click="jumpPage('/index')"/>
<q-tab name="japan" label="日语培训" content-class="items-nav" @click="jumpPage('/JapaneseTrain')"/>
<q-tab name="liuxue" label="留学服务" content-class="items-nav" @click="jumpPage('/studyServe')"/>
<q-tab name="jiuye" label="就业服务" content-class="items-nav" />
<q-tab name="news" label="媒体中心" content-class="items-nav" />
<q-tab name="about" label="关于我们" content-class="items-nav" @click="jumpPage('/aboutUs')"/>
<q-tab name="join" label="加入我们" content-class="items-nav" />
<q-tab name="about" label="关于我们" content-class="items-nav" />
<q-tab name="join" label="加入我们" content-class="items-nav" /> -->
</q-tabs>
</div>
</div>
......@@ -44,48 +85,70 @@ export default {
type: Number,
default: 0,
},
menuList: {
typeof: Array,
default: [],
},
curMenu:{
typeof:String,
default:"首页"
},
type: {
typeof: Number,
default: 1,
},
},
data() {
return {
tab: "home",
tab:this.curMenu
};
},
methods:{
jumpPage(url){
this.$router.push(url)
}
watch:{
curMenu(val){
this.tab=val
}
},
methods: {
jumpPage(url) {
this.$router.push(url);
},
},
};
</script>
<style lang="scss" scoped>
// #dowebok {
// animation-duration:1s; //动画持续时间
// animation-delay:1s; //动画延迟时间
// animation-iteration-count: infinite; //动画执行次数
// animation-duration:1s; //动画持续时间
// animation-delay:1s; //动画延迟时间
// animation-iteration-count: infinite; //动画执行次数
// }
.type1 {
.header_absolute {
margin-top: 61px;
height: 61px;
z-index: 100;
left: 58px;
right: 58px;
position: absolute;
}
.header_fixed {
width: 100vw;
position: fixed;
top: 0;
left: 0;
z-index: 100;
padding: 0 3.124vw;
background-color: #f6f6f6;
}
.header_absolute{
margin-top: 61px;
height: 61px;
z-index: 100;
left: 58px;
right: 58px;
position: absolute;
}
.header_fixed{
width: 100vw;
position: fixed;
top: 0;
left: 0;
z-index: 100;
padding: 0 3.124vw;
background-color:#f6f6f6;
.items-nav .q-tab__label {
font-size: 16px !important;
font-family: "pingfang-b" !important;
}
}
.items-nav .q-tab__label {
.type2{
.items-nav .q-tab__label {
font-size: 16px !important;
font-family: "pingfang-b" !important;
}
}
</style>
\ No newline at end of file
<template>
<div>
<div
id="dowebok"
class="animated bounceOutLeft animate__animated animate__fadeInDown header_absolute"
>
<div class="row items-center full-height">
<div class="col">
<img style="height: 61px" src="../../assets/images/logo.png" />
</div>
<div class="col">
<q-tabs
v-model="tab"
class="text-dark"
active-color="dark"
align="justify"
narrow-indicator
dense
>
<q-tab name="home" label="甲鹤教育" content-class="items-nav" @click="jumpPage('/index')"/>
<q-tab name="japan" label="日语培训" content-class="items-nav" @click="jumpPage('/JapaneseTrain')"/>
<q-tab name="liuxue" label="留学服务" content-class="items-nav" @click="jumpPage('/studyServe')"/>
<q-tab name="jiuye" label="就业服务" content-class="items-nav" />
<q-tab name="news" label="媒体中心" content-class="items-nav" />
<q-tab name="about" label="关于我们" content-class="items-nav" />
<q-tab name="join" label="加入我们" content-class="items-nav" />
</q-tabs>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
scorllNum: {
type: Number,
default: 0,
},
},
data() {
return {
tab: "home",
};
},
methods:{
jumpPage(url){
this.$router.push(url)
}
},
watch:{
}
};
</script>
<style lang="scss" scoped>
.header_absolute{
height: 61px;
// z-index: 100;
// position: absolute;
// top: 0;
// left: 0;
}
.items-nav .q-tab__label {
font-size: 16px !important;
font-family: "pingfang-b" !important;
}
</style>
\ No newline at end of file
<template>
<div class="jiahe">
<Header />
<Header :menuList="menuList" :curMenu="menuList[1].Name" :type="2"/>
<!-- bannner部分 -->
<Banner/>
<Banner :swiperList="swiperData"/>
<!-- 教育产品 -->
<div class="edu_con">
<div class="edu_name">教育产品</div>
<div class="edu_subname">副标题</div>
<div class="inputBox">
<q-input
v-model="search"
v-model="searchText"
filled
type="search"
clearable
......@@ -22,8 +22,9 @@
</q-input>
<q-select
outlined
v-model="model"
v-model="selectText"
:options="options"
option-label ="CateName"
clearable
class="inputBorder"
placeholder="可查询课程系列/名称"
......@@ -33,13 +34,11 @@
</q-select>
</div>
<div class="eduConbox">
<div v-for="item in eduList" :key="item.id" class="itemBox">
<!-- <q-img src="../assets/images/JapaneseTrain/edu1.png" class="itemImg" /> -->
<q-img :src="item.url" class="itemImg" />
<div v-for="item in courseList" :key="item.CourseId" class="itemBox" @click="seeDetail(item.CourseId)">
<q-img :src="item.CoverImg" class="itemImg" />
<div class="infoBox">
<div class="courseName">{{ item.courseName }}</div>
<div class="desc">{{ item.desc }}</div>
<div class="courseName">{{ item.CourseName}}</div>
<div class="desc">{{item.CourseFeature}}</div>
</div>
</div>
</div>
......@@ -51,7 +50,7 @@
<div class="edu_subname">副标题</div>
<div class="inputBox">
<q-input
v-model="search"
v-model="classSearch"
filled
type="search"
clearable
......@@ -65,7 +64,7 @@
<div class="inputBorder2">
<q-select
outlined
v-model="model"
v-model="classSelect"
:options="options"
clearable
placeholder="可查询课程系列/名称"
......@@ -77,7 +76,7 @@
<div class="inputBorder2">
<q-select
outlined
v-model="model"
v-model="classSelect2"
:options="options"
clearable
placeholder="可查询课程系列/名称"
......@@ -90,41 +89,41 @@
<div class="classPlanBox">
<div
v-for="item in classPlanList"
:key="item.id"
:key="item.ClassId"
class="classPlanItemBox"
>
<div class="infoBox1">
<div class="className">{{ item.className }}</div>
<div class="className">{{ item.ClassName }}</div>
<div class="courseInfo" style="margin-bottom: 0.625vw">
<q-img
src="../../assets/images/JapaneseTrain/icon1.png"
class="itemIcon"
/>{{ item.courseInfo }}
/>{{ item.CourseName }}
</div>
<div class="courseInfo">
<q-img
src="../../assets/images/JapaneseTrain/icon2.png"
class="itemIcon"
/>{{ item.courseTime }}
/>{{ item.ClassHours }}课时
</div>
</div>
<div class="infoBox2">
<div class="title">招生信息</div>
<div class="stuInfo" style="margin-bottom: 0.729vw">
截止报名时间<span class="stuTime">{{ item.joinEnd }}</span>
截止报名时间<span class="stuTime">{{ item.EndOrderTime }}</span>
</div>
<div class="stuInfo">
开始上课时间<span class="stuTime">{{ item.joinStart }}</span>
开始上课时间<span class="stuTime">{{ item.OpenTime }}</span>
</div>
</div>
<div class="infoBox3">
<div class="title">名额信息</div>
<div style="margin-bottom: 0.729vw" class="numInfo">
计划招生人数<span class="planNum">{{ item.planNum }}</span
计划招生人数<span class="planNum">{{ item.ClassPersion }}</span
>
</div>
<div class="numInfo">
剩余招生名额<span class="surplusNum">{{ item.surplusNum }}</span
剩余招生名额<span class="surplusNum">{{ item.SurplusNum }}</span
>
</div>
</div>
......@@ -143,13 +142,13 @@
</div>
</template>
<script>
import Header from "../../components/header/headerType2";
import Header from "../../components/header/header";
import Footer from "../../components/footer/footerType2";
import Banner from "../../components/bnaner/banner";
import TeacherTeam from "../../components/teacherTeam/teacherTeam";
import {getWebNavList} from "../../api/indexApi.js";
import {getCourseCategoryList,getCoursePageList,getClassPlan} from "../../api/JapaneseTrainApi"
export default {
name: "PageIndex",
components: {
Header,
Footer,
......@@ -159,91 +158,66 @@ export default {
},
data() {
return {
slide: "first",
pageScroll: 1080,
current: 4,
search: "",
model: "",
options: ["Google", "Facebook", "Twitter", "Apple", "Oracle"],
eduList: [
{
id: 1,
url: require("../../assets/images/JapaneseTrain/edu1.png"),
courseName: "什么什么课程",
desc: "对课程的一些二级文字介绍内容,这里放一排位置。多的省略号...",
},
{
id: 2,
url: require("../../assets/images/JapaneseTrain/edu2.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 3,
url: require("../../assets/images/JapaneseTrain/edu3.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 4,
url: require("../../assets/images/JapaneseTrain/edu4.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 5,
url: require("../../assets/images/JapaneseTrain/edu5.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 6,
url: require("../../assets/images/JapaneseTrain/edu6.png"),
courseName: "什么什么课程",
desc: "",
},
],
classPlanList: [
menuList:[ {},
{
id: 1,
className: "东野大木(五班)",
courseInfo: "日语 基础0-N3直通车课程系列",
courseTime: "156课时",
joinStart: "2020年10月30日",
joinEnd: "2020年10月30日",
planNum: 10,
surplusNum: 1,
},
{
id: 2,
className: "",
courseInfo: "",
courseHour: "",
joinStart: "",
joinEnd: "",
planNum: 10,
surplusNum: 10,
},
],
Name: "",
},],
swiperData:[],
searchText:"",
selectText:"",
classSearch:"",
classSelect:"",
classSelect2:"",
options: [],
coursemsg:{
pageIndex:1,
pageSize:6,
},
classmsg:{
pageIndex:1,
pageSize:2,
},
courseList: [],
classPlanList: [],
};
},
methods: {
//滚动条高度
// handleScroll() {
// this.pageScroll =
// document.documentElement.scrollTop || document.body.scrollTop;
// console.log(this.pageScroll);
// },
//去教育产品列表
goEduProductList() {
this.$router.push("/eduProductList");
},
//查看详情
seeDetail(id){
this.$router.push({ path: '/eduProductDetail', query: { CourseId: id }})
},
//获取网站导航列表
async getWebNavList(){
let res=await getWebNavList(2)
this.swiperData=res.Data
},
//获取课程系列列表
async getCourseCategoryList(){
let res= await getCourseCategoryList()
this.options=res.Data
},
//获取课程列表
async getCoursePageList(){
let res= await getCoursePageList(this.coursemsg)
this.courseList=res.Data.PageData
},
// 获取开班计划列表
async getClassPlan(){
let res= await getClassPlan(this.classmsg)
this.classPlanList=res.Data.PageData
}
},
mounted() {
// window.addEventListener("scroll", this.handleScroll);
this.menuList=JSON.parse(localStorage.getItem("menuList"))
this.getWebNavList()
this.getCourseCategoryList()
this.getCoursePageList()
this.getClassPlan()
},
......
<template>
<div class="jiahe">
<Header />
<Header :menuList="menuList" :curMenu="menuList[1].Name" :type="2" />
<div class="detailBox">
<div class="left">
<div class="border_out">
......@@ -8,11 +8,9 @@
</div>
</div>
<div class="right">
<div class="name">标日基础课程</div>
<div class="name">{{ courseDetail.CourseName }}</div>
<div class="line"></div>
<div class="desc">
全新教学模式:母语式教学,让你先学会开口再去理解。先听懂然后会说再去了解如何书写,全面了解日式思维,然后熟练应用日语专业知识学习;能够更全面阅读和理解有关各类话题的。教学特色:免费测试 新学员入学安排水平鉴定考试,根据学生水平进行分班;线上课程 实现教学“零距离”,线下全程监督跟踪;即时答疑 遇到问题随时提,获得专业解答;免费重修 出勤率达到90%的学员,学不会免费重修;免费补课 缺勤课程可跟班补习或录播视频补习;课后巩固 专业配套课后练习巩固知识,老师处一对一过关;会话练习 与外教一起练习口语会话,拒绝“哑巴”日语。
</div>
<div class="desc" v-html="courseDetail.CourseIntro"></div>
<div class="consult">立即咨询</div>
</div>
</div>
......@@ -20,11 +18,16 @@
<div class="edu_con">
<div class="edu_name">教育相关产品</div>
<div class="eduConbox">
<div v-for="item in eduProductList" :key="item.id" class="itemBox">
<q-img :src="item.url" class="itemImg" />
<div
v-for="item in RandList"
:key="item.CourseId"
class="itemBox"
@click="seeDetail(item.CourseId)"
>
<q-img :src="item.CoverImg" class="itemImg" />
<div class="infoBox">
<div class="courseName">{{ item.courseName }}</div>
<div class="desc">{{ item.desc }}</div>
<div class="courseName">{{ item.CourseName }}</div>
<div class="desc">{{ item.CourseFeature }}</div>
</div>
</div>
</div>
......@@ -35,59 +38,44 @@
</template>
<script>
import Header from "../../components/header/headerType2";
import Header from "../../components/header/header";
import Footer from "../../components/footer/footerType2";
import { getCourseDetail } from "../../api/JapaneseTrainApi";
export default {
name: "PageIndex",
components: {
Header,
Footer,
},
data() {
return {
eduProductList: [
{
id: 1,
url: require("../../assets/images/JapaneseTrain/edu1.png"),
courseName: "什么什么课程",
desc: "对课程的一些二级文字介绍内容,这里放一排位置。多的省略号...",
},
{
id: 2,
url: require("../../assets/images/JapaneseTrain/edu2.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 3,
url: require("../../assets/images/JapaneseTrain/edu3.png"),
courseName: "什么什么课程",
desc: "",
},
menuList: [
{},
{
id: 4,
url: require("../../assets/images/JapaneseTrain/edu4.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 5,
url: require("../../assets/images/JapaneseTrain/edu5.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 6,
url: require("../../assets/images/JapaneseTrain/edu6.png"),
courseName: "什么什么课程",
desc: "",
Name: "",
},
],
courseId: 0,
courseDetail: {},
RandList: [],
};
},
methods: {},
mounted() {},
methods: {
async getCourseDetail() {
let res = await getCourseDetail(this.courseId);
this.courseDetail = res.Data.CourseObj;
this.RandList = res.Data.RandList;
},
//查看详情
seeDetail(id) {
this.$router.push({ path: "/eduProductDetail", query: { CourseId: id } });
},
},
mounted() {
this.menuList=JSON.parse(localStorage.getItem("menuList"))
this.courseId = this.$route.query.CourseId;
this.getCourseDetail();
},
};
</script>
<style lang="scss" scoped>
......
<template>
<div class="jiahe">
<Header :scorllNum="pageScroll" />
<Header :menuList="menuList" :curMenu="menuList[1].Name" :type="2"/>
<!-- 教育产品 -->
<div class="edu_con">
<div class="edu_name">教育产品</div>
<div class="edu_subname">副标题</div>
<div class="inputBox">
<q-input
v-model="search"
v-model="msg.CourseName"
filled
type="search"
clearable
placeholder="可搜索课程系列/名称"
class="inputBorder"
@change="changeSearchText"
@clear="clearSearch"
>
<template v-slot:prepend>
<q-icon name="search" />
......@@ -21,8 +22,9 @@
</q-input>
<q-select
outlined
v-model="model"
v-model="selectText"
:options="options"
option-label ="CateName"
clearable
class="inputBorder"
placeholder="可查询课程系列/名称"
......@@ -31,25 +33,29 @@
>
</q-select>
</div>
<div class="eduConbox">
<div v-for="item in eduProductList" :key="item.id" class="itemBox" @click="seeDetail">
<q-img :src="item.url" class="itemImg" />
<div class="eduConbox" v-if="courseList.length>0">
<div v-for="item in courseList" :key="item.CourseId" class="itemBox" @click="seeDetail(item.CourseId)" >
<q-img :src="item.CoverImg" class="itemImg" />
<div class="infoBox">
<div class="courseName">{{ item.courseName }}</div>
<div class="desc">{{ item.desc }}</div>
<div class="courseName">{{ item.CourseName }}</div>
<div class="desc">{{ item.CourseFeature }}</div>
</div>
</div>
</div>
<div v-if="courseList.length==0" class="nodata">暂无数据</div>
</div>
<div class="pageBox">
<q-pagination
v-model="current"
v-model="currentPage"
color="light-green-10"
:max="10"
:max="pageCount"
:max-pages="6"
:boundary-numbers="true"
@input="changePage"
v-if="pageCount>1"
>
</q-pagination>
</div>
<!-- 底部 -->
......@@ -58,72 +64,88 @@
</template>
<script>
import Header from "../../components/header/headerType2";
import Header from "../../components/header/header";
import Footer from "../../components/footer/footerType2";
// import { QPagination} from 'quasar'
import { getCourseCategoryList , getCoursePageList} from "../../api/JapaneseTrainApi"
export default {
name: "PageIndex",
components: {
Header,
Footer,
// QPagination
},
data() {
return {
slide: "first",
current: 1,
eduProductList: [
{
id: 1,
url: require("../../assets/images/JapaneseTrain/edu1.png"),
courseName: "什么什么课程",
desc: "对课程的一些二级文字介绍内容,这里放一排位置。多的省略号...",
},
{
id: 2,
url: require("../../assets/images/JapaneseTrain/edu2.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 3,
url: require("../../assets/images/JapaneseTrain/edu3.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 4,
url: require("../../assets/images/JapaneseTrain/edu4.png"),
courseName: "什么什么课程",
desc: "",
},
{
id: 5,
url: require("../../assets/images/JapaneseTrain/edu5.png"),
courseName: "什么什么课程",
desc: "",
},
menuList:[ {},
{
id: 6,
url: require("../../assets/images/JapaneseTrain/edu6.png"),
courseName: "什么什么课程",
desc: "",
},
Name: "",
},],
currentPage: 1,
selectText:"",
options: [],
pageCount:0,
msg:{
pageIndex:1,
pageSize:24,
CourseName:"",
QCateIds:""
},
courseList: [
],
};
},
watch:{
selectText(val){
if(val==null){
this.msg.QCateIds=""
// this.msg.CourseName=""
}else{
this.msg.QCateIds=val.CateId
// this.msg.CourseName=val.CateName
}
this.getCoursePageList()
}
},
methods: {
seeDetail(){
this.$router.push("/eduProductDetail")
//翻页
changePage(val){
this.msg.pageIndex=val
this.getCoursePageList(this.msg)
},
// 搜索框
changeSearchText(){
this.getCoursePageList(this.msg)
},
// 清空搜索框
clearSearch(){
this.msg.CourseName=""
this.getCoursePageList(this.msg)
},
//查看详情
seeDetail(id){
this.$router.push({ path: '/eduProductDetail', query: { CourseId: id }})
},
//获取课程系列列表
async getCourseCategoryList(){
let res= await getCourseCategoryList()
this.options=res.Data
},
//获取课程列表
async getCoursePageList(){
let res= await getCoursePageList(this.msg)
this.courseList=res.Data.PageData
this.pageCount=res.Data.PageCount
}
},
mounted(){
this.menuList=JSON.parse(localStorage.getItem("menuList"))
this.getCourseCategoryList()
this.getCoursePageList()
}
};
</script>
<style lang="scss" scoped>
.jiahe {
// min-height: 100vh;
background-color: #faf8f9;
}
......@@ -131,20 +153,15 @@ export default {
width: 62.5vw;
margin: 0 auto;
padding-top: 4.01vw;
// margin-bottom: 4.974vw;
.edu_name {
text-align: center;
font-size: 1.562vw;
// font-family: Microsoft YaHei;
// font-weight: bold;
font-family: "pingfang-b" !important;
color: #111111;
}
.edu_subname {
text-align: center;
font-size: 0.833vw;
// font-family: Microsoft YaHei;
// font-weight: 400;
color: #888888;
}
.inputBox {
......@@ -211,4 +228,7 @@ export default {
.q-btn{
border: 1px solid #D2D7DD;
}
.nodata{
text-align: center;
}
</style>
\ No newline at end of file
<template>
<div class="jiahe">
<Header />
<Banner />
<div class="main">
<!-- 董事长 -->
<div class="imgBox"></div>
<div class="descBox">
<div class="dsz_name">董事长</div>
<div class="line"></div>
<div class="dsz_con1">全心追求魅力人格,全意建设美丽祖国。</div>
<div class="dsz_con2">
致力于培养具有国际视野,胸怀祖国人民,尊重自然规律,热爱世界和平,精通语言专业知识,拥有跨文化交际能力,人文情怀的国际型人才。
甲鹤外国语培训学校地处四川省成都市中心区,与四川大学,四川音乐学院比隣。拥有来自北京外国语大学、四川大学、四川外国语大学、日本东京工业大学、筑波大学、日本早稻田大学等国内外知名高校的一流教师团队。
学校与日本朝日大学、宇都宫共和大学、东京福祉大学、樱美林大学等日本高校建立了合作关系。本校学生日语达N2便可以直接推荐保送进入上述各大学就读本科专业。想要选择日本其他国、公、私立大学的学员,学校亦可推荐一流的日本语学校以及私塾。
学校凭借10年累积,不仅与日本知名大学长期合作;并且向日本IT企业和日本旅行社输送各类人才。与日本政界、学界、商界均保持良好合作关系。
</div>
</div>
</div>
<Footer />
</div>
</template>
<script>
import Header from "../../components/header/header";
import Banner from "../../components/bnaner/banner";
import Footer from "../../components/footer/footerType2";
export default {
components: {
Banner,
Header,
Footer,
},
data() {
return {};
},
};
</script>
<style lang="scss" scoped>
.jiahe {
background-color: #f6f6f6;
}
.main {
width: 62.5vw;
height: 41.817vw;
margin: 5.208vw auto;
display: flex;
}
.imgBox {
width: 33.854vw;
height: 41.817vw;
background-color: #eeeeee;
}
.descBox {
padding-top: 7.187vw;
padding-left: 3.125vw;
.dsz_name {
font-size: 1.5625vw;
font-family: "pingfang-b" !important;
color: #111111;
line-height: 1.5625vw;
}
.line {
width: 4.166vw;
height: 1px;
background-color: #111111;
margin-top: 1.5625vw;
margin-bottom: 1.5625vw;
}
.dsz_con1 {
font-size: 0.625vw;
font-family: PingFang SC;
font-weight: bold;
color: #111111;
line-height: 34px;
}
}
</style>
\ No newline at end of file
<template>
<div class="jiahe">
<Header :scorllNum="pageScroll" />
<Header :scorllNum="pageScroll" :menuList="menuList"/>
<!-- 第一部分 -->
<div class="relative-position banner-box" id="elone">
<div class="absolute-top-left fit bg-dark">
......@@ -12,6 +12,7 @@
navigation
height="100%"
infinite
autoplay
control-type="outline"
>
<template v-slot:navigation-icon="{ active, onClick }">
......@@ -19,25 +20,24 @@
<div v-else @click="onClick" class="parmaryBtn"></div>
</template>
<q-carousel-slide
name="first"
img-src="../assets/images/index/banner_bg.png"
v-for="(item,index) in swiperList" :key="index"
:name="item.NavTypeName"
:img-src="item.BgImg"
>
<div class="con1"><span class="jh">甲鹤-</span>您身边的日语</div>
<div class="con1"><span class="jh">{{item.NavTitle}}</span><!--您身边的日语--></div>
<div class="con2">
这里给一点小文字介绍什么的最好,这里给一点小文字介绍什么的最好,这里给一点
小文字介绍什么的最好。
{{item.SubTitle}}
</div>
<div class="con3"></div>
<div class="btn">查看详情</div>
<div class="btn" @click="goDetail(item.LinkUrl)">查看详情</div>
<q-img
src="../assets/images/index/female.png"
spinner-color="white"
class="female"
v-if="item.NavTypeName=='首页'"
/>
</q-carousel-slide>
<q-carousel-slide name="first3" img-src="https://cdn.quasar.dev/img/mountains.jpg"/>
<q-carousel-slide name="first4" img-src="https://cdn.quasar.dev/img/mountains.jpg"/>
</q-carousel>
</div>
</div>
......@@ -73,7 +73,7 @@
spinner-color="white"
class="class_icon2"
/>
<div class="class_title">标基础</div>
<div class="class_title">语口语</div>
<div class="class_dec">
要是能有一些日标基础课程的小讲解就很好
了,能丰富我们的页面要是能有一些 日标基础课程的小讲解就
......@@ -90,7 +90,7 @@
spinner-color="white"
class="class_icon2"
/>
<div class="class_title">日标基础</div>
<div class="class_title">留学日语</div>
<div class="class_dec">
要是能有一些日标基础课程的小讲解就很好
了,能丰富我们的页面要是能有一些 日标基础课程的小讲解就
......@@ -107,7 +107,7 @@
spinner-color="white"
class="class_icon2"
/>
<div class="class_title">日标基础</div>
<div class="class_title">企业日语</div>
<div class="class_dec">
要是能有一些日标基础课程的小讲解就很好
了,能丰富我们的页面要是能有一些 日标基础课程的小讲解就
......@@ -124,7 +124,7 @@
spinner-color="white"
class="class_icon2"
/>
<div class="class_title">日标基础课</div>
<div class="class_title">同声传译</div>
<div class="class_dec">
要是能有一些日标基础课程的小讲解就很好
了,能丰富我们的页面要是能有一些 日标基础课程的小讲解就
......@@ -276,15 +276,15 @@
<script>
import Header from "../components/header/header";
import Footer from "../components/footer/footer";
import { getWebConfig ,getWebNavList,getWebNewsTypeList} from "../api/indexApi.js";
export default {
name: "PageIndex",
components: {
Header,
Footer,
},
data() {
return {
slide: "first",
slide: "首页",
currentMaskIndex:0,
pageScroll: 0,
activeIdx: 1,
......@@ -581,16 +581,16 @@ export default {
type: 1,
},
],
menuList:[],
swiperList:[]
};
},
methods: {
// 滚动条高度
handleScroll() {
this.pageScroll =
document.documentElement.scrollTop || document.body.scrollTop;
// console.log(this.pageScroll);
// var el = document.getElementById("elone");
// el.scrollIntoView();
},
//第三部分递增效果
startAnimate() {
......@@ -599,11 +599,31 @@ export default {
movemask(i){
this.currentMaskIndex=i
},
// 查看详情
goDetail(url){
this.$router.push(url)
},
//获取网站配置
async getWebConfig(){
let res=await getWebConfig()
localStorage.setItem("groupID",res.Data.groupId)
localStorage.setItem("menuList",JSON.stringify(res.Data.menuList))
this.menuList=res.Data.menuList
},
//获取网站导航列表
async getWebNavList(){
let res=await getWebNavList(1)
this.swiperList=res.Data
},
//获取新闻类型列表
async getWebNewsTypeList(){
let res=await getWebNewsTypeList()
}
},
mounted() {
// threeAdd(this.schoolResource,"schoolResource")
// threeAdd(this.major,"major")
// threeAdd(this.servePeopleNum,"servePeopleNum")
this.getWebConfig();
this.getWebNavList();
this.getWebNewsTypeList();
window.addEventListener("scroll", this.handleScroll);
},
//销毁,否则跳到别的路由还是会出现
......@@ -613,7 +633,7 @@ export default {
},
};
</script>
<style lang="scss">
<style lang="scss" scoped>
// @mixin width ($width) {
// width: calc(($width / 1920) * 100%);
// }
......@@ -826,7 +846,7 @@ export default {
padding-top: calc(2377 / 1920 * 100%);
position: relative;
.subFourBox {
width: 100%;
width: 100vw;
height: 100%;
background-image: url("../assets/images/index/work_serve_bg.png");
background-repeat: no-repeat;
......
<template>
<div class="jiahe">
<Header />
<Banner />
<Header :menuList="menuList" :curMenu="menuList[2].Name" :type="2" />
<Banner :swiperList="swiperData" />
<!-- 留学产品 -->
<div class="studyProduct">
<div class="title">留学产品</div>
......@@ -29,15 +29,16 @@
</div>
</div>
</div>
<TeacherTeam :viewNum="3"/>
<TeacherTeam :viewNum="3" />
<Footer />
</div>
</template>
<script>
import Header from "../../components/header/headerType2";
import Header from "../../components/header/header";
import Banner from "../../components/bnaner/banner";
import TeacherTeam from "../../components/teacherTeam/teacherTeam";
import Footer from "../../components/footer/footerType2";
import { getWebNavList } from "../../api/indexApi.js";
export default {
components: {
Banner,
......@@ -47,6 +48,14 @@ export default {
},
data() {
return {
menuList: [
{},
{},
{
Name: "",
},
],
swiperData: [],
studyProductList: [
{
// url:require(''),
......@@ -68,11 +77,22 @@ export default {
],
};
},
methods: {
//获取网站导航列表
async getWebNavList() {
let res = await getWebNavList(3);
this.swiperData = res.Data;
},
},
mounted() {
this.menuList = JSON.parse(localStorage.getItem("menuList"));
this.getWebNavList();
},
};
</script>
<style lang="scss" scoped>
.jiahe{
background-color: #F6F6F6;
.jiahe {
background-color: #f6f6f6;
}
.studyProduct {
width: 62.5vw;
......
......@@ -5,7 +5,7 @@ const routes = [
redirect: '/index',
component: () => import('layouts/MainLayout.vue'),
children: [
{ path: '/index', component: () => import('pages/Index.vue') },
{ path: '/index', component: () => import('src/pages/Index.vue') },
{ path: '/JapaneseTrain', component: () => import('src/pages/JapaneseTrain/JapaneseTrain.vue') },
{ path: '/eduProductList', component: () => import('src/pages/JapaneseTrain/eduProductList.vue') },
{ path: '/eduProductDetail', component: () => import('src/pages/JapaneseTrain/eduProductDetail.vue') },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment