培训页面专家接口获取

main
lijingyu007 11 months ago
parent 32358526c5
commit 8394d4c3d0
  1. 4
      .env.development
  2. 11
      src/api/train/index.js
  3. 2467
      src/page/homepage/traininstitute/train copy.vue
  4. 157
      src/page/homepage/traininstitute/train.vue
  5. 1805
      src/page/homepage/traininstitute/train07.vue
  6. 180
      src/page/homepage/traininstitute/trainold.vue
  7. 1662
      src/page/homepage/traininstitute/trainold1.vue

@ -5,8 +5,8 @@ ENV = 'development'
VUE_APP_BASE_API = '/test-api' VUE_APP_BASE_API = '/test-api'
VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999' # VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999'
# VUE_APP_BASE_TARGET = 'http://192.168.0.135:9999' VUE_APP_BASE_TARGET = 'http://192.168.0.129:9999'
# VUE_APP_BASE_TARGET = 'http://172.16.36.180:9999' # VUE_APP_BASE_TARGET = 'http://172.16.36.180:9999'
# VUE_APP_BASE_TARGET = 'http://172.16.36.176:9998' # VUE_APP_BASE_TARGET = 'http://172.16.36.176:9998'

@ -51,3 +51,14 @@ export function getClassList(query) {
} }
// 报名 // 报名
// 教师列表
export function getTeacherList() {
return request({
url: `/talent/portal/teachers`,
method: 'get',
headers: {
isToken: false
}
})
}

File diff suppressed because it is too large Load Diff

@ -190,31 +190,36 @@
<div class="zhuanjiabox"> <div class="zhuanjiabox">
<div class="zhuanjiaboxitem zhuanjiaboxitemac"> <div class="zhuanjiaboxitem zhuanjiaboxitemac">
<div class="zhuanjiaboxitemlittleP"> <div class="zhuanjiaboxitemlittleP">
<img :src="activeZj.img" alt="" /> <img :src="baseu + activeZj.avatar" alt="" />
<div class="zhuanjiaboxitemlittlePname">{{ activeZj.name }}</div> <div class="zhuanjiaboxitemlittlePname">{{ activeZj.name }}</div>
<div class="zhuanjiaboxitemlittlePzc">{{ activeZj.zw }}</div> <div class="zhuanjiaboxitemlittlePzc">{{ activeZj.teaching }}</div>
</div> </div>
<div class="zhujialine"></div> <div class="zhujialine"></div>
<div class="zhuanjiaboxitemlittleC"> <div class="zhuanjiaboxitemlittleC">
<div class="zhuanjiaboxitemlittleCzc">职称{{ activeZj.zc }}</div> <div class="zhuanjiaboxitemlittleCzc">职称{{ activeZj.title }}</div>
<div class="zhuanjiaboxitemlittleCbox"></div> <div class="zhuanjiaboxitemlittleCbox"></div>
<div class="zhuanjiaboxitemlittleCc"> <div class="zhuanjiaboxitemlittleCc">
{{ activeZj.content }} {{ activeZj.profile }}
</div> </div>
</div> </div>
</div> </div>
<div class="zhuanjiaRbox"> <div class="zhuanjiaRbox">
<div class="zhuanjiaRboxCon" ref="zhuanjiaRboxCon"> <div
class="zhuanjiaRboxCon"
ref="zhuanjiaRboxCon"
@mouseover="pauseAnimation"
@mouseleave="resumeAnimation"
>
<div <div
class="zhuanjiaboxitem zhuanjiaboxitem1" class="zhuanjiaboxitem zhuanjiaboxitem1"
v-for="(it, index) in zhuanjiaList" v-for="(it,index) in teacherList"
:key="index" :key="index"
@click="zhuanjiclickfn(it)" @click="zhuanjiclickfn(it)"
> >
<div class="zhuanjiaboxitemlittleP"> <div class="zhuanjiaboxitemlittleP">
<img :src="it.img" alt="" /> <img :src="baseu + it.avatar" alt="" />
<div class="zhuanjiaboxitemlittlePname">{{ it.name }}</div> <div class="zhuanjiaboxitemlittlePname">{{ it.name }}</div>
<div class="zhuanjiaboxitemlittlePzc">{{ it.zw }}</div> <div class="zhuanjiaboxitemlittlePzc">{{ it.teaching }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -439,7 +444,7 @@
</div> </div>
</template> </template>
<script> <script>
import { postBaoming, postBaomingNoToken, getSignUpList, getClassList } from '@/api/train/index.js' import { postBaoming, postBaomingNoToken, getSignUpList, getClassList, getTeacherList } from '@/api/train/index.js'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { getCodeUserLogin } from '@/api/system/login' import { getCodeUserLogin } from '@/api/system/login'
export default { export default {
@ -468,6 +473,7 @@ export default {
} }
return { return {
teacherList: [],
// //
xscroll: 0, xscroll: 0,
timerScroll: null, timerScroll: null,
@ -912,107 +918,9 @@ export default {
'1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。', '1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。',
}, },
], ],
activeZj: { activeZj: { },
name: '王晶', baseu: process.env.VUE_APP_BASE_API
zw: '配置项测试工程师',
zc: '高工',
img: '/assets/newtrain/people2.png',
content: '自2019年起从事软件测试工作,先后参加多种军用软件测试,目前主要从事配置项、系统测试',
},
zhuanjiaList: [
{
name: '王晶',
zw: '配置项测试工程师',
zc: '高工',
img: '/assets/newtrain/people2.png',
content: '自2019年起从事软件测试工作,先后参加多种军用软件测试,目前主要从事配置项、系统测试',
},
{
name: '石颢',
zw: '可编程逻辑器件测试工程师',
zc: '高工',
img: '/assets/newtrain/people1.png',
content:
'从业15年来,始终致力于FPGA软件验证与测试技术研究,尤其在数字化仿真、静态缺陷检查、形式化验证等方面有一定深耕,主持完成了多个重要型号的可编程逻辑器件软件的验证与测试项目,涉及领域包括航天/航空/航海/电子/兵器等,发表相关论文十余篇,撰写专利3项。',
},
{
name: '袁居莲',
zw: '单元测试工程师',
zc: '高工',
img: '/assets/newtrain/people3.png',
content:
'自2020年起从事软件测试工作,先后参加单元、系统多种类型的军用软件测试,目前主要从事单元测试工作。',
},
{
name: '李晰昀',
zw: '安全测试工程师',
zc: '高工',
img: '/assets/newtrain/people4.png',
content: '自2020年起从事网络安全、网络攻防对抗、渗透测试、云计算及安全和信息系统安全合规性的工作。',
},
{
name: '顾珊珊',
zw: '白盒测试工程师',
zc: '高工',
img: '/assets/newtrain/people5.png',
content:
'自2020年起从事软件开发工作,先后参加多种测试软件开发,目前主要从事配置项测试、单元测试工具的开发。',
},
{
name: '王博洋',
zw: '功能测试工程师',
zc: '高工',
img: '/assets/newtrain/people6.png',
content:
'自2018年起从事软件测试工作,对软件(系统)的功能需求逐项进行测试,包括正常/异常场景、功能控制流程、状态转换、模式切换、超负荷/饱和/最坏情况和合法/非法边界等。',
},
{
name: '陈梦晖',
zw: '接口测试工程师',
zc: '高工',
img: '/assets/newtrain/people7.png',
content:
'从业15年来,负责对软件(系统)的接口需求进行逐项测试,包括信息格式、信息内容、时间特性、丢帧、错帧和误码等',
},
{
name: '郭鑫',
zw: '静态测试工程师',
zc: '高工',
img: '/assets/newtrain/people8.png',
content:
'自2020年负责利用文档审查、代码审查和静态分析,对文档的一致性进行审查,对软件源码进行控制流、数据流、接口和质量度量等分析。',
},
{
name: '王晶',
zw: '配置项测试工程师',
zc: '高工',
img: '/assets/newtrain/people2.png',
content: '自2019年起从事软件测试工作,先后参加多种军用软件测试,目前主要从事配置项、系统测试',
},
{
name: '石颢',
zw: '可编程逻辑器件测试工程师',
zc: '高工',
img: '/assets/newtrain/people1.png',
content:
'从业15年来,始终致力于FPGA软件验证与测试技术研究,尤其在数字化仿真、静态缺陷检查、形式化验证等方面有一定深耕,主持完成了多个重要型号的可编程逻辑器件软件的验证与测试项目,涉及领域包括航天/航空/航海/电子/兵器等,发表相关论文十余篇,撰写专利3项。',
},
{
name: '袁居莲',
zw: '单元测试工程师',
zc: '高工',
img: '/assets/newtrain/people3.png',
content:
'自2020年起从事软件测试工作,先后参加单元、系统多种类型的军用软件测试,目前主要从事单元测试工作。',
},
{
name: '李晰昀',
zw: '安全测试工程师',
zc: '高工',
img: '/assets/newtrain/people4.png',
content: '自2020年起从事网络安全、网络攻防对抗、渗透测试、云计算及安全和信息系统安全合规性的工作。',
},
],
} }
}, },
computed: { computed: {
@ -1024,8 +932,25 @@ export default {
this.getClassList() this.getClassList()
// //
// this.scrollFn() // this.scrollFn()
this.getTeacher()
}, },
methods: { methods: {
//
pauseAnimation() {
this.$refs.zhuanjiaRboxCon.style.animationPlayState = 'paused'
},
resumeAnimation() {
this.$refs.zhuanjiaRboxCon.style.animationPlayState = 'running'
},
//
getTeacher() {
getTeacherList().then((res) => {
this.teacherList = res.concat(res.slice(0, 3))
this.activeZj = this.teacherList[0]
this.$refs.zhuanjiaRboxCon.style.width = 230 * this.teacherList.length + 'px'
this.$refs.zhuanjiaRboxCon.style.setProperty('--offset', `-${230 * (this.teacherList.length-3)}px`);
})
},
zhuanjiclickfn(it) { zhuanjiclickfn(it) {
this.activeZj = it this.activeZj = it
@ -2388,20 +2313,22 @@ export default {
} }
.zhuanjiaRboxCon { .zhuanjiaRboxCon {
width: 2760px; /* width: 2760px; */
width: calc();
display: flex; display: flex;
background: #f7f7fa; background: #f7f7fa;
animation: move 20s infinite linear; animation: move 15s infinite linear;
--offset: 0px;
} }
.zhuanjiaRboxCon:hover { /* .zhuanjiaRboxCon:hover {
animation-play-state: paused; animation-play-state: paused;
} } */
@keyframes move { @keyframes move {
from { from {
transform: translateX(0); transform: translateX(0);
} }
to { to {
transform: translateX(-1840px); transform: translateX(var(--offset));
} }
} }
.zhuanjiaRboxCon::-webkit-scrollbar { .zhuanjiaRboxCon::-webkit-scrollbar {

File diff suppressed because it is too large Load Diff

@ -1,180 +0,0 @@
<template>
<div>
<img style="width:100%" src="/assets/home/4@2x.png" alt="">
<div class="animoveleft" style='width:1200px;margin:30px auto;display:flex;justify-content:space-between;'>
<div style="display:flex;justify-content:space-between;width:50%;flex-wrap:wrap">
<div class="traincontent">
<img src="/assets/train/book.png" alt="">
<div style='margin:0 10px;line-height:1.8'>
<p style="margin-top:-5px">培训内容</p>
<p> 软件开发基础软件测试专业知识软件测试工具真实项目实践+就业</p>
</div>
</div>
<div class="traincontent">
<img src="/assets/train/bi.png" alt="">
<div style='margin:0 10px;line-height:1.8'>
<p style="margin-top:-5px">培训类型</p>
<p> 静态测试单元测试配置项测试系统测试黑盒白盒功能性能接口</p>
</div>
</div>
<div class="traincontent">
<img src="/assets/train/shu.png" alt="">
<div style='margin:0 10px;line-height:1.8'>
<p style="margin-top:-5px">培训特点</p>
<p>专业性强时间短就业无忧精准培训实用为主就业为目标</p>
</div>
</div>
<div class="traincontent">
<img src="/assets/train/ren.png" alt="">
<div style='margin:0 10px;line-height:1.8'>
<p style="margin-top:-5px">培训理念</p>
<p>寓训于测就业无忧+就业</p>
</div>
</div>
</div>
<div class="signupda">
<img style="margin-top:30px" src="/assets/train/cespei.png" alt="">
<div style="display:flex;margin:20px 30px 20px">
<img style="margin:10px 10px 10px 0px" src="/assets/train/xingming.png" alt="">
<el-input v-model="signdata.signname" placeholder="请输入姓名"></el-input>
</div>
<div style="display:flex;margin:20px 30px 20px">
<img style="margin:10px 10px 10px 0px" src="/assets/train/shouji.png" alt="">
<el-input v-model="signdata.phone" placeholder="请输入手机号码"></el-input>
</div>
<div style="display:flex;margin:20px 30px 20px">
<img style="margin:10px 10px 10px 0px;height:19px" src="/assets/train/info-1-copy.png" alt="">
<el-input v-model="signdata.intention" type="textarea" :rows="5" placeholder="报名意向(报名后培训学院专员会与您联系,提供一对一培训课程咨询。)"></el-input>
</div>
<div style="text-align:center;">
<el-button type="primary" @click="signupnow">立即报名</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import {isMobile} from "@/util/validate";
import {trainsignup} from "@/api/system/message";
export default{
data(){
return{
signdata:{signname:'',phone:'',intention:'',}
// name:'',//
// phone:'',//
// intention:'',//
}
},
mounted(){
},
methods:{
//
signupnow(){
let name=this.signdata.signname;
if(!name){
this.$message.warning('请您输入姓名');
return;
}
let phone=this.signdata.phone;
if (!phone || !isMobile(phone)) {
this.$message.warning('手机格式不对');
return;
}
let intention=this.signdata.intention;
if (!intention) {
this.$message.warning('请填写报名意向');
return;
}
let form={
name,
tel: phone,
remark:intention,
}
trainsignup(form).then(res=>{
// if(res.code==200){
this.$alert('报名成功,请耐心等待工作人员和您联系' , {
confirmButtonText: '确定',
type: 'success'
}).then(()=> {
next();
})
// }
})
},
},
}
</script>
<style scoped>
.animoveleft{
position:relative;
animation-name:mymove;
animation-duration:1s;
-webkit-animation-name:mymove;
-webkit-animation-duration:1s; /* Safari 和 Chrome */
}
@keyframes mymove
{
from {left:-300px;}
to {left:0px;}
}
@-webkit-keyframes mymove /* Safari and Chrome */
{
from {left:-300px;}
to {left:0px;}
}
.traincontent{
width: 260px;
/* height: 240px; */
background: #FFFFFF;
box-shadow: 0px 2px 8px 0px rgba(54, 61, 67, 0.1);
border-radius: 4px;
text-align: center;
padding-bottom:1px;
margin-bottom:20px;
}
.traincontent:hover{
transform: scale(1.01);
transition: 1s;
box-shadow: 0px 2px 8px 0px #87898d;
}
.traincontent:hover :nth-child(1){
color:#0066EB
}
.traincontent :nth-child(1){
font-size: 24px;
font-weight: bold;
color: #1A1A1A;
margin:10px 0
}
.traincontent :nth-child(2){
font-size: 14px;
font-weight: 400;
color: #333333;
}
.signupda{
width:48%;
/* height: 240px; */
background: #FFFFFF;
box-shadow: 0px 2px 8px 0px rgba(54, 61, 67, 0.1);
border-radius: 4px;
text-align: center;
padding-bottom:1px;
margin-bottom:20px;
}
.signupda>>>.el-button{
margin-top:20px;
/* margin-left:57px; */
width:190px;
height:40px;
font-size:20px;
color:rgba(255,255,255,1);
background: linear-gradient(45deg, #2978EE, #0066EB);
border:none;
border-radius:6px;
/* line-height:40px; */
}
</style>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save