修改培训内容,轮播改为后台获取

main
hcj 10 months ago
parent 58b001167f
commit 0b2332cc47
  1. 2
      .env.development
  2. 2
      .env.production
  3. BIN
      dist.zip
  4. 10
      src/api/train/index.js
  5. 84
      src/components/timeLineWrap/index.vue
  6. 13
      src/components/timeLineWrap/timeLine.vue
  7. 46
      src/config/teacherTrain.js
  8. 44
      src/page/homepage/traininstitute/teacherDetail.css
  9. 36
      src/page/homepage/traininstitute/teacherDetail.vue
  10. 2
      src/page/homepage/traininstitute/teacherSign.vue
  11. 26
      src/page/homepage/traininstitute/train.vue
  12. 52
      src/page/homepage/traininstitute/trainMockData.js

@ -5,7 +5,7 @@ ENV = 'development'
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999' VUE_APP_BASE_TARGET = 'http://192.168.0.230:9999'
# VUE_APP_BASE_TARGET = 'http://192.168.0.129: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'

@ -11,4 +11,4 @@ VUE_APP_BASE_API = '/prod-api'
# VUE_APP_BASE_TARGET = 'http://www.bjkeyware.com/test-api' # VUE_APP_BASE_TARGET = 'http://www.bjkeyware.com/test-api'
# VUE_APP_BASE_TARGET = 'http://www.bjkeyware.com/prod-api' # VUE_APP_BASE_TARGET = 'http://www.bjkeyware.com/prod-api'
VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999' VUE_APP_BASE_TARGET = 'http://192.168.0.230:9999'

Binary file not shown.

@ -85,3 +85,13 @@ export function BaomingNoToken(data) {
} }
}) })
} }
// 轮播图
export function getSwiperImages(){
return request({
url: '/train/banners',
headers: {
isToken: false
}
})
}

@ -0,0 +1,84 @@
<template>
<div class="timeLineWrap">
<div class="timeLineTitle">{{ timeLineData.time }}</div>
<div class="timeLine">
<div class="line">
<div class="cycle"></div>
</div>
<div class="timeLineContent">
<!-- v-if="$slot.contentRow" -->
<div class="timeLineContentItem" >
<div class="contentRow" v-for="(ct, cIndex) in timeLineData.content" :key="cIndex">
<span>{{ ct }}</span>
</div>
</div>
<!-- <div class="timeLineContentItem" >
<slot v-bind:row="timeLineData.content" name="contentRow"></slot>
</div> -->
</div>
</div>
</div>
</template>
<script>
/**
* 数据格式
* {
* time:xxxx
* content:[]
* }
*/
export default {
props: {
timeLineData: Object,
},
mounted(){
console.log(this.timeLineData);
}
};
</script>
<style scoped>
.timeLineTitle {
font-size: 18px;
font-weight: Bold;
font-family: PingFang-SC-Bold;
}
.timeLine {
display: flex;
}
.line {
width: 2px;
margin: 0 36px;
background: #1b68de;
position: relative;
}
.line .cycle {
position: absolute;
left: -6px;
width: 11px;
top: 50%;
transform: translate(0, -50%);
height: 11px;
border-radius: 50%;
background-color: #fff;
border: 2px solid #1b68de;
}
.timeLineContent {
font-size: 16px;
flex: 1;
background: #f5f6f7;
border-radius: 6px;
}
.timeLineContentItem {
padding: 18px 42px 0px 42px;
font-family: PingFang-SC-Bold;
color: #4d4d4d;
font-weight: 400;
}
.contentRow {
padding: 0px 0 18px 0;
}
</style>

@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
}
</script>
<style>
</style>

@ -0,0 +1,46 @@
const teachTrainData = [
{
time: "8月5号",
content: [
"政府、高校领导行业动态分享。"
]
},
{
time: "8月6号",
content: [
"结合《军用软件测试指南》、《军用软件开发文档通用要求》标准解读;系统级白盒测试工具(CuttleITE)讲解及项目实操。"
]
},
{
time: "8月7号",
content: [
"静态测试工具(EagleEye)和接口测试工具(Kinterface)讲解及项目实操。"
]
},
{
time: "8月8号",
content: [
"编写配置项测试大纲,进行文档审查、功能测试,编写测试用例;单元测试工具检查和验证最小可测试单元。"
]
},
{
time: "8月9号",
content: [
"配置项性能测试、边界测试、恢复性测试、安装性测试、余量测试并编写测试用例;单元文档审查、代码审查、静态分析、单元测试环境配置。"
]
},
{
time: "8月10号",
content: [
"配置项容量测试、强度测试、人机交互界面测试、安全性测试以及测试用例编写;单元测试用例设计、执行、问题记录与处理。"
]
},
{
time: "8月11号",
content: [
"配置项可靠性测试、兼容性测试、互操作性测试,编写项目测试用例、回归测试报告、项目测试报告;单元测试计划、说明编写、测试报告编写。"
]
}
]
export default teachTrainData

@ -1,44 +0,0 @@
.trainTime{
font-size: 18px;
font-weight: Bold;
font-family: PingFang-SC-Bold;
}
.trainContentWrap {
display: flex;
}
.trainContentWrap .lefeLine{
width: 2px;
margin: 0 36px;
background: #1b68de;
position: relative;
}
.trainContentWrap .lefeLine .throughCicle{
position: absolute;
left: -6px;
width: 11px;
top: 50%;
transform: translate(0,-50%);
height: 11px;
border-radius: 50%;
background-color: #fff;
border: 2px solid #1b68de;
}
.trainContentWrap .trainContentText{
font-size: 16px;
flex: 1;
background: #F5F6F7;
border-radius: 6px;
}
.trainContentWrap .trainContentText .trainContentTextItem{
padding: 18px 42px 0px 42px;
font-family: PingFang-SC-Bold;
color: #4D4D4D;
font-weight: 400;
}
.trainContentWrap .trainContentText .trainContentTextItem .trainContentTextrow{
padding: 0px 0 18px 0;
}
.trainContentWrap .trainContentText .trainContentTextItem .trainContentTextrow :first-child{
color: #1B68DE;
font-weight: Bold;
}

@ -41,21 +41,15 @@
培养一支数量充足结构合理素质优良的专业知识丰富实践技能过硬的师资队伍培训后可以进入公司师资库成为双师型教师成为关键公司特聘讲师 培养一支数量充足结构合理素质优良的专业知识丰富实践技能过硬的师资队伍培训后可以进入公司师资库成为双师型教师成为关键公司特聘讲师
</div> </div>
<div class="modelConT">培训内容</div> <div class="modelConT">培训内容</div>
<div class="trainItem" v-for="item in trainMock" :key="item.time"> <timeLineWrap
<div class="trainTime">{{item.time}}</div> v-for="item in teachTrainData"
<div class="trainContentWrap"> :key="item.time"
<div class="lefeLine"> :timeLineData="item"
<div class="throughCicle"></div> >
</div> <!-- <template slot="contentRow">
<div class="trainContentText"> <div>ssss</div>
<div class="trainContentTextItem"> </template> -->
<div class="trainContentTextrow" v-for="(con,cIndex) in item.content" :key="cIndex"> </timeLineWrap>
<span>{{con.substring(0,3)}}</span><span>{{con.substring(3,con.length)}}</span>
</div>
</div>
</div>
</div>
</div>
</div> </div>
<div class="model3"> <div class="model3">
<div class="modelTitle"> <div class="modelTitle">
@ -246,13 +240,17 @@
<script> <script>
// import { mapGetters } from 'vuex' // import { mapGetters } from 'vuex'
import trainMock from "./trainMockData"; import teachTrainData from "@/config/teacherTrain";
import timeLineWrap from "../../../components/timeLineWrap/index.vue";
export default { export default {
data() { data() {
return { return {
trainMock:trainMock teachTrainData: teachTrainData,
}; };
}, },
components: {
timeLineWrap,
},
computed: { computed: {
// ...mapGetters(['token']), // ...mapGetters(['token']),
}, },
@ -278,7 +276,9 @@ export default {
</script> </script>
<style scoped> <style scoped>
@import url(./teacherDetail.css); .model2{
margin-bottom: 40px;
}
.modelTitle { .modelTitle {
width: 100%; width: 100%;
display: flex; display: flex;

@ -1,6 +1,6 @@
<template> <template>
<div class="teacherSign"> <div class="teacherSign">
<!-- <img src="/assets/newtrain/teacherb.png" class="topbanner" alt="" /> --> <img src="/assets/newtrain/teacherb.png" class="topbanner" alt="" />
<div class="container"> <div class="container">
<div class="contitle">北京关键科技股份有限公司&河南科技大学</div> <div class="contitle">北京关键科技股份有限公司&河南科技大学</div>
<div class="contitle">2024软件可靠性测试暑期师资培训</div> <div class="contitle">2024软件可靠性测试暑期师资培训</div>

@ -35,7 +35,7 @@
<el-carousel-item v-for="item in indexbanner" :key="item.imgurl"> <el-carousel-item v-for="item in indexbanner" :key="item.imgurl">
<img <img
ref="bannerHeight" ref="bannerHeight"
:src="item.imgurl" :src="baseu + item.filePath"
alt="" alt=""
style="width: 100%; height: 450px; object-fit: cover; cursor: pointer" style="width: 100%; height: 450px; object-fit: cover; cursor: pointer"
@click="itemClick(item)" @click="itemClick(item)"
@ -104,9 +104,7 @@
<!-- 表格内容 --> <!-- 表格内容 -->
<template v-for="(it, index) in model34Data"> <template v-for="(it, index) in model34Data">
<div class="moedel3_content_r_griditem">{{ index + 1 }}</div> <div class="moedel3_content_r_griditem">{{ index + 1 }}</div>
<div <div class="moedel3_content_r_griditem moedel3_content_r_griditemmi">
class="moedel3_content_r_griditem moedel3_content_r_griditemmi"
>
{{ it.con }} {{ it.con }}
</div> </div>
<div class="moedel3_content_r_griditem">{{ it.num }}</div> <div class="moedel3_content_r_griditem">{{ it.num }}</div>
@ -595,6 +593,7 @@ import {
getSignUpList, getSignUpList,
getClassList, getClassList,
getTeacherList, getTeacherList,
getSwiperImages
} from "@/api/train/index.js"; } 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";
@ -1058,12 +1057,12 @@ export default {
...mapGetters(["token", "userinform"]), ...mapGetters(["token", "userinform"]),
}, },
created() { created() {
this.indexbanner = [ // this.indexbanner = [
{ id: 3, imgurl: "/assets/newtrain/2.jpg" }, // { id: 3, imgurl: "/assets/newtrain/2.jpg" },
{ id: 4, imgurl: "/assets/newtrain/1.jpg" }, // { id: 4, imgurl: "/assets/newtrain/1.jpg" },
{ id: 1, imgurl: "/assets/newtrain/peixun2.png" }, // { id: 1, imgurl: "/assets/newtrain/peixun2.png" },
{ id: 2, imgurl: "/assets/newtrain/peixun3.png" }, // { id: 2, imgurl: "/assets/newtrain/peixun3.png" },
]; // ];
}, },
mounted() { mounted() {
this.form.mobile = this.userinform.phonenumber; this.form.mobile = this.userinform.phonenumber;
@ -1079,10 +1078,10 @@ export default {
}, },
itemClick(item) { itemClick(item) {
console.log("==========", item); console.log("==========", item);
if (item.id == 3) { if (item.classType === "0") {
this.openSubmit(); this.openSubmit();
} }
if (item.id == 4) { if (item.classType == 3) {
this.$router.push("/college/teacherDetail"); this.$router.push("/college/teacherDetail");
} }
}, },
@ -1133,6 +1132,9 @@ export default {
this.rowClick(this.topClassList[0]); this.rowClick(this.topClassList[0]);
} }
}); });
getSwiperImages().then(res=>{
this.indexbanner = res.data
})
}, },
mouseenterFn(i) { mouseenterFn(i) {

@ -1,52 +0,0 @@
const trainMock = [
{
time:"8月5号",
content:[
"全天:政府、高校领导行业动态分享 。"
]
},
{
time:"8月6号",
content:[
"上午:根据《军用软件测试指南》、《军用软件开发文档通用要求》标准,熟悉配置项、单元测试标准内容,以及文档编写。",
"下午:系统级白盒测试(CUTTLEITE)理论知识讲解,以及项目实操。"
]
},
{
time:"8月7号",
content:[
"上午:静态测试工具(EagleEye)知识理论讲解,以及项目实操。",
"下午:接口测试工具(Kinterface)知识理论讲解,以及项目实操。"
]
},
{
time:"8月8号",
content:[
"上午:根据测试项目,编写项目测试大纲,在进行文档审查、功能测试,并编写项目测试用例。" ,
"下午:根据测试项目,通过单元测试工具对代码的最小可测试单元进行检查和验证,以确保其功能正常。"
]
},
{
time:"8月9号",
content:[
"上午:根据测试项目,进行性能测试、边界测试、恢复性测试、安装性测试、余量测试,并编写项目测试用例。",
"下午:根据测试项目,进行文档审查、代码审查、静态分析、单元测试的测试环境配置。"
]
},
{
time:"8月10号",
content:[
"上午:根据测试项目,进行容量测试、强度测试、人机交互界面测试、安全性测试.并编写项目测试用例。",
"下午:根据测试项目,进行单元测试用例设计、单元测试的执行、问题的记录和处理。"
]
},
{
time:"8月11号",
content:[
"上午:根据测试项目,进行可靠性测试、兼容性测试、互操作性测试,编写项目测试用例,编写项目回归测试报告、项目测试报告。",
"下午:根据测试项目,进行测试计划编写、测试说明编写、测试报告编写。"
]
},
]
export default trainMock
Loading…
Cancel
Save