软测宝小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2450 lines
92 KiB

<template>
<view>
<view class="tabledetails">
<u-swiper class="logobg" :list="swipelist" mode='round' @click="bgClick"></u-swiper>
<!-- <image src="http://image.bjkeyware.com/static/index/renliwb/newtrainbanner08.png" mode="" class="logobg"> -->
<!-- </image> -->
<!-- 模块1 -->
<view class="onLineTrainTitle" v-if="onLineList.length">
<view class="onLineTitleText">线上培训课程</view>
<view class="more" @click="getMore">更多> </view>
</view>
<onLineCourseItem v-for="(onLineCourse, onLineIndex) in onLineList" :key="onLineIndex"
:onLineCourse="onLineCourse" @toLearn="toLearn"></onLineCourseItem>
<view class="titlePeo">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">四大培训方向</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
培养专业测试专项人才
</view>
</view>
<view class="model1">
<view class="model1_item" v-for="it in model1Data" @click="model1CLick">
<view class="model_item_top">
<image :src="it.img" mode=""></image>
</view>
<view class="model_item_bottom">
<view class="model_item_bottom_t">
{{ it.title }}
</view>
<view class="model_item_bottom_b">
{{ it.con }}
</view>
</view>
</view>
</view>
<!-- 模块2 -->
<block v-if="isShowDown">
<view class="titlePeo" style="margin-top: 0;">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">课程计划</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
针对企业用人需求进行课程培训
</view>
</view>
<view style='line-height: 20px;border-left: 1px solid #F5F7FA;border-right: 1px solid #F5F7FA;'>
<view class="headert">
<view class="table_heade">序号</view>
<view style="width:600rpx;text-align:center">课程名称</view>
<view class="table_kheade">课时</view>
</view>
<view>
<view class="bodyt" v-for="(item, key) of courselist" :key="key"
:style="{ 'border-bottom': key == courselist.length ? 'none' : '1rpx solid #CFDDDD;' }">
<view class="table_obody">{{ key + 1 }}</view>
<view class="table_tbody">{{ item.con }}</view>
<view class="table_hbody">{{ item.num }}</view>
</view>
</view>
</view>
<!-- 模块4 -->
<view class="model4_title">
<view class="model4_title_line"></view>
<p> 掌握的测试技能 </p>
<view class="model4_title_line"></view>
</view>
<view class="model4_content">
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/testpx/37.png" alt="" />
<p>静态测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/testpx/38.png" alt="" />
<p>单元测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/cspx/2.png" alt="" />
<p>配置项</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/testpx/43.png" alt="" />
<p>系统测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/cspx/4.png" alt="" />
<p>功能测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/testpx/40.png" alt="" />
<p>性能测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/cspx/3.png" alt="" />
<p>接口测试</p>
</view>
<view class="model4_content_testet">
<img src="http://image.bjkeyware.com/static/index/testpx/41.png" alt="" />
<p>安全测试</p>
</view>
<view class="model4_content_testet" style="width: 255rpx;">
<img src="http://image.bjkeyware.com/static/index/cspx/1.png" alt="" />
<p>可编辑逻辑器件测试</p>
</view>
</view>
<!-- 模块5 -->
<view class="model4_title" style="margin-top: 0;">
<view class="model4_title_line"></view>
<p> 企业机会 </p>
<view class="model4_title_line"></view>
</view>
<view class="model5">
<image src="http://image.bjkeyware.com/static/index/renliwb/hb1.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb2.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb3.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb4.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb5.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb6.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb7.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb8.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb9.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/hb10.png" mode=""></image>
</view>
<view class="arrowdown">
<image src="../../../static/index/downarrow.png" @click="closeShowDown" alt="" />
</view>
</block>
<!-- 新模块 -->
<view class="titlePeo">
<view class="titletopt">
<image style="width: 190rpx;" src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">可靠性人才评测班</p>
<image style="width: 190rpx;" src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
专业评测安全测试人才
</view>
</view>
<view class="newmodel1">
<view class="newmodel1t">
<image style="width: 25rpx;height: 25rpx;margin-right: 10rpx;"
src="http://image.bjkeyware.com/static/index/renliwb/newtraintime08.png" mode=""></image>
每月线上定时开班
</view>
<scroll-view class="newmodel1c" scroll-y="true">
<view class="newmodel1citem" v-for="it in topClassList" :key="it.classId" @click="rowClick(it)">
<view class="newmodel1citem1">
{{ it.registrationEndTime.slice(0, 4) }}年{{ it.registrationEndTime.slice(6, 7) }}月
</view>
<view class="newmodel1citem1" style="text-align: center;">
{{ it.className }}({{ it.classLevel == 0 ? '初级' : it.classLevel == 1 ? '中级' : '高级' }})
</view>
<view class="newmodel1citem2">
<block v-if="it.status == 2">
<image style="width:22rpx;height:29rpx"
src="http://image.bjkeyware.com/static/index/hhot.png"></image>
<view class="newmodel1citem2btn newmodel1citem2btn3" @click="jjOpen(it)">
报名进行中
</view>
</block>
<view class="newmodel1citem2btn" v-else-if="it.status == 1">
即将开放报名
</view>
<view class="newmodel1citem2btn newmodel1citem2btn2" v-else>
报名已结束
</view>
</view>
</view>
</scroll-view>
</view>
<view class="newmodel2">
<view class="newmodel2title">
{{ activezcList.tiaojian }}
</view>
<view class="newmodel2c">
<view v-for="(it, index) in activezcList.skill.split('&')" :key="index">
{{ it }}
</view>
</view>
<view class="newmodel2title">
评测内容
</view>
<view class="newmodel2c">
<view v-for="(it, index) in activezcList.content.split('&')" :key="index">
{{ it }}
</view>
</view>
</view>
<view class="model4_title">
<view class="model4_title_line"></view>
<p> 专家级讲师亲授 </p>
<view class="model4_title_line"></view>
</view>
<swiper class="swiper" circular :indicator-dots="true" indicator-active-color="#1578ed">
<swiper-item v-for="(it, index) in zhuanjiaList" :key="index">
<view class="newmodel3">
<view class="newmodel3l">
<image :src="it.avatar" mode=""></image>
<view class="newmodel3ln">
{{ it.name }}
</view>
<view class="newmodel3lz">
{{ it.teaching }}
</view>
</view>
<view class="newmodel3r">
<view class="newmodel3rt">
职称{{ it.title }}
</view>
<view class="newmodel3rb">
</view>
<view class="newmodel3rl">
{{ it.profile }}
</view>
</view>
</view>
</swiper-item>
</swiper>
<view class="titlePeo" style="margin-top: 20rpx;">
<view class="titletopt">
<image style="width: 190rpx;" src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">线下培训进阶班</p>
<image style="width: 190rpx;" src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
专门针对1-3年工作经验的测试人才系统进阶提升
</view>
</view>
<view class="newmodel4">
<view class="newmodel4item" v-for="it in unlineData.slice(0, 3)"
:style="{ 'border': '1px solid ' + it.color }">
<view class="newmodel4itemtop" :style="{ 'background': it.color }">
<view class="newmodel4itemtopcricle"></view>
<view class="newmodel4itemtoptitle">
{{ it.title }}
</view>
</view>
<view class="newmodel4itembottom">
<view class="newmodel4itembottomtext" v-for="item in it.list">
* {{ item }}
</view>
</view>
</view>
</view>
<view class="newmodel5">
<view class="newmodel4item" v-for="it in unlineData.slice(3, 5)"
:style="{ 'border': '1px solid ' + it.color }">
<view class="newmodel4itemtop" :style="{ 'background': it.color }">
<view class="newmodel4itemtopcricle"></view>
<view class="newmodel4itemtoptitle">
{{ it.title }}
</view>
</view>
<view class="newmodel4itembottom">
<view class="newmodel4itembottomtext" v-for="item in it.list">
* {{ item }}
</view>
</view>
</view>
</view>
<view class="newmodel1">
<view class="newmodel1t">
<image style="width: 25rpx;height: 25rpx;margin-right: 10rpx;" src="../../../static/index/dd.png"
mode=""></image>
【线下班名额有限,先到先得】
</view>
<scroll-view class="newmodel1c" scroll-y="true">
<view class="newmodel1citem" v-for="it in bottomClassList" :key="it.classId">
<view class="newmodel1citem1">
{{ it.registrationEndTime.slice(0, 4) }}年{{ it.registrationEndTime.slice(6, 7) }}月
</view>
<view class="newmodel1citem1" style="text-align: center;">
{{ it.className }}({{ it.classLevel == 0 ? '初级' : it.classLevel == 1 ? '中级' : '高级' }})
</view>
<view class="newmodel1citem2">
<block v-if="it.status == 2">
<image style="width:22rpx;height:29rpx"
src="http://image.bjkeyware.com/static/index/hhot.png"></image>
<view class="newmodel1citem2btn newmodel1citem2btn3" @click="jjOpen(it)">
报名进行中
</view>
</block>
<view class="newmodel1citem2btn" v-else-if="it.status == 1">
即将开放报名
</view>
<view class="newmodel1citem2btn newmodel1citem2btn2" v-else>
报名已结束
</view>
</view>
</view>
</scroll-view>
</view>
<!-- 模块6 -->
<view class="titlePeo" id="targetElement">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">校企合作培训</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
促进学生在校理论学习,增加就业机会
</view>
</view>
<!-- <view style="display: flex;margin-bottom:25px ;">
<scroll-view class="scrollviewnavbar" scroll-x>
<view class="navbaritem" :class="{'navbaritemActive': it.id == activeModel2.id}"
v-for="it in model2Data.slice(0, 6)" @click="model2DataClick(it)">{{it.title}}</view>
</scroll-view>
</view> -->
<view style="background-color: #FFFFFF;padding:13px;display">
<view v-if="currenttab == 1">
<view style="display: flex;justify-content: space-between;">
<image mode="aspectFill" class="innovate" :src="activeModel2.img">
</view>
<p style="color:#808080;font-size:25rpx;margin:15px 0; line-height: 22px;text-indent:25px;">
{{ activeModel2.con }}
</p>
<view style='display:flex;align-items: center;margin-bottom: 10px;'>
<view class='vertical'></view>
<view style="font-weight: bold;">报名条件</view>
</view>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">
{{ activeModel2.bmtj }}
</p>
<view style='display:flex;align-items: center;margin-bottom: 10px;'>
<view class='vertical'></view>
<view style="font-weight: bold;">培训内容</view>
</view>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">{{ activeModel2.pxnr }}
</p>
<view style='display:flex;align-items: center;margin-bottom: 10px;'>
<view class='vertical'></view>
<view style="font-weight: bold;">经考核合格后收获</view>
</view>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">{{ activeModel2.sh }}</p>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">{{ activeModel2.sh1 }}</p>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">{{ activeModel2.sh2 }}</p>
<p style="color:#808080;font-size:25rpx;margin:10px 0; line-height: 22px">{{ activeModel2.sh3 }}</p>
<view class="submitBtn" @click="openDialog">
报名入口
</view>
</view>
</view>
<!-- 模块7 -->
<view class="titlePeo">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">工信部颁发证书</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
所学技术实际应用率高,证书含金量高
</view>
</view>
<view class="model7">
<view class="model7_top">
<image src="http://image.bjkeyware.com/static/index/renliwb/zs1.png" mode=""></image>
</view>
<view class="model7_bottom">
<image src="http://image.bjkeyware.com/static/index/renliwb/zs2.png" mode=""></image>
<image src="http://image.bjkeyware.com/static/index/renliwb/zs3.png" mode=""></image>
</view>
</view>
</view>
<view style="height:50px;"></view>
<view class="submitt">
<view class="bottbtn" @click="gobaomingFn" style="height: 55px;">
<img src="/static/index/baoming.png" alt="">
<p>在线报名</p>
</view>
<view class="bottbtn" @click="popcilk('seek')" style="background:#E9F0FA;">
<img src="/static/index/duihuazixun.png" alt="">
<p>立即咨询</p>
</view>
</view>
<u-modal title='温馨提示' v-model="tokenshow" content="您还没有登录" confirm-text='现在就去' cancel-text='稍等一下'
show-cancel-button='true' cancel-color='#1578ED' confirm-color='#1578ED' @confirm="confirms"
@cancel='tokenshow = false'></u-modal>
<u-toast ref="uToast" />
<!-- 弹窗 -->
<view class="dialogbox" :style="{ 'align-items': flag ? 'center' : 'flex-start' }" v-show="isShowDia">
<view class="contentbox">
<view class="closexx" @click="closeclosexx">x</view>
<!-- 标题 -->
<view class="contentboxTitle">
校企合作创新班
</view>
<view class="contentboxTitleB">
<!-- 输入框 -->
<view class="contentboxCon">
<u-form labelPosition="left" :model="form" :rules="rules" ref="uForm">
<u-form-item prop="trainClassCode">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.trainClassCode" placeholder="请输入培训班代号"></u-input>
</view>
</u-form-item>
<view v-if='calltext' class="tiptext" style="color:#E9941AFF">
{{ calltext }}
</view>
<view v-if='timetext' class="tiptext" style="color:#000000">
{{ timetext }}
</view>
<view v-else class="tiptext">
培训班代号由校企合作老师统一发送,请联系培训老师
</view>
<!-- <u-form-item prop="homeCollege">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.homeCollege" placeholder="请输入您的学院名称"></u-input>
</view>
</u-form-item> -->
<u-form-item prop="majorName">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.majorName" placeholder="请输入您的专业名称"></u-input>
</view>
</u-form-item>
<u-form-item prop="studentName">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.studentName" placeholder="请输入您的姓名"></u-input>
</view>
</u-form-item>
<u-form-item prop="sex">
<view class="rowitem sexSelect">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.sex" type="select" placeholder="请选择您的性别"
@click="sexShow = true" />
<u-select v-model="sexShow" :list="sexList" @confirm="fornCallBack"></u-select>
</view>
</u-form-item>
<u-form-item prop="studentCode">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.studentCode" placeholder="请输入您的学号"></u-input>
</view>
</u-form-item>
<u-form-item prop="counsellor">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.counsellor" placeholder="请输入辅导员姓名"></u-input>
</view>
</u-form-item>
<u-form-item prop="counsellorTel">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="form.counsellorTel" placeholder="请输入辅导员联系方式"></u-input>
</view>
</u-form-item>
</u-form>
</view>
<!-- 按钮 -->
<view class="contentboxbtn">
<view class="contentboxbtnbtn" @click="submitFn">
提交报名
</view>
</view>
<view style="height: 40rpx;">
</view>
</view>
</view>
</view>
<!-- 评测班报名 -->
<view class="dialogbox" :style="{ 'align-items': flag ? 'center' : 'flex-start' }" v-show="isPCshow">
<view class="contentbox" style="margin-top: 200rpx;">
<view class="closexx" @click="closeclosejj">x</view>
<!-- 标题 -->
<view class="contentboxTitle">
进阶班
</view>
<view class="contentboxTitleB">
<!-- 输入框 -->
<view class="contentboxCon">
<u-form labelPosition="left" :model="jjform" :rules="jjrules" ref="uFormjj">
<u-form-item prop="studentName">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="jjform.studentName" placeholder="请输入您的姓名"></u-input>
</view>
</u-form-item>
<u-form-item prop="sex">
<view class="rowitem sexSelect">
<view class="rowitemxing">
*
</view>
<u-input v-model="jjform.sex" type="select" placeholder="请选择您的性别"
@click="sexShow = true" />
<u-select v-model="sexShow" :list="sexList" @confirm="testtrainCallback"></u-select>
</view>
</u-form-item>
<u-form-item prop="mobile">
<view class="rowitem">
<view class="rowitemxing">
*
</view>
<u-input v-model="jjform.mobile" :disabled="inpDisabled"
placeholder="请输入您的手机号"></u-input>
</view>
</u-form-item>
<u-form-item prop="code" v-if="!accessToken">
<view class="rowitem rowitem1">
<view class="rowitemxing">
*
</view>
<u-input v-model="jjform.code" placeholder="请输入验证码"></u-input>
<u-verification-code seconds="60" ref="uCode"
@change="codeChange"></u-verification-code>
<u-button type="primary" size="mini" :disabled="codeBtn" @click="getCode">{{ tips
}}</u-button>
</view>
</u-form-item>
</u-form>
</view>
<!-- 按钮 -->
<view class="contentboxbtn">
<view class="contentboxbtnbtn" @click="jjbaoming">
提交报名
</view>
</view>
<view style="height: 40rpx;">
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import onLineCourseItem from '@/components/onLineCourseItem/index.vue'
const sexMap = {
'男': '0',
'女': '1'
}
export default {
components: {
onLineCourseItem
},
data() {
// 自定义校验规则
const validateId = (rule, value, callback) => {
this.http.quickGet(`/train/trainClassList?trainClassCode=${value}`, true).then((res) => {
console.log('效验学校代码', res)
if (res.data.total == 1) {
let schooldata = res.data.rows[0]
this.calltext = schooldata.schoolName + '-' + schooldata.trainClassName
if (schooldata.trainStartTime && schooldata.trainEndTime) {
console.log(schooldata)
this.timetext =
' ' +
'课程周期:' +
schooldata.trainStartTime.slice(0, 10) +
'至 ' +
schooldata.trainEndTime.slice(0, 10)
}
// console.log('calltext',calltext)
// callback(calltext)
return callback()
} else {
this.calltext = ''
return callback(new Error('代号不存在,请线下联系培训老师'))
}
})
}
const phoneCheck = (rule, value, callback) => {
if (!/^1[3456789]\d{9}$/.test(value)) {
callback(new Error('请输入正确的手机号码!'))
} else {
callback()
}
}
return {
flag: true,
accessToken: null,
codeBtn: false,
sexShow: false,
calltext: '',
timetext: '',
// 线上课程
onLineList: [],
sexList: [
{
value: '0',
label: '男'
},
{
value: '1',
label: '女'
}
],
isShowDia: false,
isShowDown: false,
tokenshow: false,
isPopupShow: false,
inpDisabled: false,
signobj: {
name: '',
qq: '',
wechat: '',
},
currenttab: 1,
educationLevelshow: false,
educationList: [
{
value: 1,
label: '高中',
},
{
value: 1,
label: '大专',
},
{
value: 1,
label: '本科',
},
{
value: 1,
label: '硕士',
},
],
courselist: [
{ con: '静态分析的概念介绍。', num: '1课时' },
{ con: '静态分析工具介绍。', num: '1课时' },
{ con: '静态分析的基本流程。', num: '1课时' },
{ con: '单元测试的概念介绍。', num: '1课时' },
{ con: '单元测试依据的标准介绍。', num: '1课时' },
{ con: '介绍单元测试的测试类型。', num: '1课时' },
{ con: '单元测试的基本流程。', num: '1课时' },
{ con: '单元测试工具的安装和使用。', num: '2课时' },
{ con: '单元测试环境配置。', num: '2课时' },
{ con: '单元测试工具静态分析操作流程。', num: '2课时' },
{ con: '单元测试操作流程。', num: '2课时' },
{ con: '单元测试工具的测试报告导出。', num: '1课时' },
{ con: '静态测试工具的安装和使用。', num: '2课时' },
{
con: '通过项目进行代码行数、圈复杂度、扇入扇出、注释率进行测试。',
num: '4课时',
},
{
con: '通过项目进行文档审查、代码审查、静态分析、测试用例的设计、单元测试的执行、单元测试的记录填写、单元测试的测试用例的自动生成、单元测试的问题记录方法、单元测试文档编写。',
num: '4课时',
},
], //培训课程列表
wxUserInfo: null, //微信基本信息
register: null,
swipelist: [
'http://image.bjkeyware.com/static/index/renliwb/newtrainbanner083.png',
'http://image.bjkeyware.com/static/index/renliwb/627teacherbg2.png',
'http://image.bjkeyware.com/static/index/renliwb/newtrainbanner08.png',
'http://image.bjkeyware.com/static/index/renliwb/newtrainbanner082.png',
],
model1Data: [
{
id: 1,
img: 'http://image.bjkeyware.com/static/index/renliwb/item1.png',
title: '单元测试工程师',
con: '负责对软件单元以及单元之间的功能、接口、数据结构和逻辑等进行动态测试',
},
{
id: 2,
img: 'http://image.bjkeyware.com/static/index/renliwb/item2.png',
title: '配置项测试工程师',
con: '负责对独立软件配置项的功能、性能和接口等各项需求进行动态测试',
},
{
id: 3,
img: 'http://image.bjkeyware.com/static/index/renliwb/item3.png',
title: '安全性测试工程师',
con: '负责对软件(系统)功能和信息安全性进行测试,包括故障处理模式、异常事件容错等',
},
{
id: 4,
img: 'http://image.bjkeyware.com/static/index/renliwb/item4.png',
title: 'FPGA测试工程师',
con: '负责对完整集成的软硬件系统的任务能力、功能、性能和接口等进行动态测试',
},
],
model2Data: [
{
id: 1,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx1.png',
title: '西安科技大学',
con: '2023年11月15日上午,智能软件测试协同创新实验室成立仪式在西安科技大学计算机学院隆重举行,该实验室由北京关键科技股份有限公司与西安科技大学共同成立。关键科技董事长焦华春女士、总经理张怀珠、总经理助理牛中东、工业和信息化部人才交流中心人才发展处程宇处长、西安科技大学副校长黄英维等领导和嘉宾出席会议。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 2,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx2.png',
title: '重庆工程学院',
con: ' 2023年12月21日上午,软件测试创新中心成立仪式暨软件可靠性测试创新班开班仪式在重庆工程学院行政楼隆重举行,该创新中心在工业和信息化部人才交流中心指导下,由北京关键科技股份有限公司与重庆工程学院共同成立。工业和信息化部人才交流中心人才发展处副处长唐林、人才发展处干部慕雅竹,重庆工程学院党委副书记常务副校长张业平,关键科技董事长焦华春、总经理张怀珠、副总经理郭克成、总经理助理校企合作负责人牛中东等领导和嘉宾出席会议。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 3,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx3.png',
title: '阜阳师范大学',
con: ' 2024年1月17日上午,阜阳师范大学计算机与信息工程学院与北京关键科技股份有限公司共建“信创测试实验室”揭牌仪式在阜师大西湖校区举行,标志着北京关键科技与阜师大校企合作模式的开启。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 4,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx4.png',
title: '淮南师范学院',
con: '2024年1月18日,关键科技公司董事长焦华春、副总经理郭克成等一行人前往淮南师范学院电子工程学院举行“新能源汽车软件测试实验室” 签约授牌仪式。淮南师范学院教务处处长鲁先文、计算机学院院长陈磊、机械与电气工程学院院长伍龙与电子工程学院党委书记岳德良、院长余海军、党委副书记、纪委书记匡熠、工科系主任参加了校企合作洽谈。  ',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 5,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx5.png',
title: '安徽理工大学',
con: ' 2024年1月19日,关键科技公司副总经理郭克成一行人率队前往安徽理工大学计算机科学与工程学院举行“可信软件测试与安全实验室”签约授牌仪式。安理工计算机科学与工程学院院长方贤进、副院长徐辉、软件工程系主任夏晨星、计算机科学与技术系副主任杨高明以及部分在校本科生、研究生参加会议。 ',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 6,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '河南科技大学',
con: '2014年1月25日,北京关键科技股份有限公司与河南科技大学软件学院举行了“教学实习基地”授牌仪式。河南科技大学软件学院院长孙士保、产教融合办公室主任裴亚辉、就业科长徐慧、实验室主任张虎,关键科技董事长焦华春、总经理张怀珠、校企合作负责人牛中东出席了签约与授牌仪式。仪式由河南科技大学软件学院就业科科长许慧主持。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 7,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '安徽师范大学',
con: '2024年3月20日,安徽师范大学计算机与信息学院和北京关键科技股份有限公司举行战略合作洽谈会,共同研究推进校企合作高质量发展、助力软件测试行业生态建设。北京关键科技副总经理郭克成、总经理助理牛中东等同志,计算机与信息学院党委书记袁兴龙、院长罗永龙、副院长接标、副书记张园园等领导参加洽谈会。会议由学院软件工程系主任郭良敏主持。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 8,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '安徽工程大学',
con: ' 2024年3月19日,安徽工程大学和北京关键科技股份有限公司举行战略合作洽谈会,共同研究推进校企合作高质量发展、助力软件测试行业生态建设。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 9,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '重庆邮电大学',
con: ' 2024年3月28日,北京关键科技股份有限公司郭克成、牛中东拜访重庆邮电大学,与重庆邮电大学张力生副院长、吴朝峰实验中心副主任,洽谈关于4月份软件开发综合实训内容,最终达成合作意向。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 10,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '辽宁工业大学',
con: ' 2024年3月14日,辽宁工业大学和北京关键科技股份有限公司举行战略合作洽谈会,共同研究推进校企合作高质量发展、助力软件测试行业生态建设。北京关键科技总经理张元军、副总经理郭克成,辽工大电子与信息工程学院张兴副院长、褚治广领导参加洽谈会。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
{
id: 7,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '创新班开课',
},
{
id: 8,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx6.png',
title: '项目实操',
},
],
activeModel2: {
id: 1,
img: 'http://image.bjkeyware.com/static/index/renliwb/pxxx00.png',
title: '河南科技大学',
con: '7月1号 河南科技大学与北京关键科技暑期生产实习班一班单元测试班、暑期生产实习班二班配置项测试班正式开课了。',
bmtj: '计算机科学、软件工程、信息技术等相关专业的学生,或者对软件测试感兴趣并希望在这个领域发展的学生。',
pxnr: '单元测试、配置项测试、安全性测试、可编程逻辑器件测试课程学习。',
sh: '1.进入北京关键科技股份有限公司人才库且获得工业和信息化人才岗位能力评价证书。',
sh1: '2.考核成绩优秀者可推荐进入北京关键科技股份有限公司或者合作单位实习。',
sh2: '3.可以在北京关键科技股份有限公司的小关测试宝平台承接测试任务。',
sh3: '4.可以去学校配合讲师当助教,进一步加强自身学习。',
},
form: {},
allschoollist: [], //全部学校
rules: {
trainClassCode: [
{
required: true,
message: '请输入培训班代号',
trigger: ['blur'],
},
{
validator: validateId,
trigger: 'blur',
},
],
studentCode: [
{
required: true,
message: '请输入您的学号',
trigger: ['blur'],
},
],
majorName: [
{
required: true,
message: '请输入您的专业名称',
trigger: ['blur'],
},
],
studentName: [
{
required: true,
message: '请输入您的姓名',
trigger: ['blur'],
},
],
sex: [
{
required: true,
message: '请选择您的性别',
trigger: ['blur,change'],
},
],
counsellor: [
{
required: true,
message: '请输入辅导员姓名',
trigger: ['blur'],
},
],
counsellorTel: [
{
required: true,
message: '请输入辅导员手机号',
trigger: ['blur'],
},
{
message: '请输入正确的手机号码',
validator: phoneCheck,
trigger: ['blur'],
},
],
},
// 评测班弹窗
tips: '',
isPCshow: false,
classInfo: {
classId: '',
classType: '',
},
jjrules: {
studentName: [
{
required: true,
message: '请输入您的姓名',
trigger: ['blur'],
},
],
sex: [
{
required: true,
message: '请选择您的性别',
trigger: ['blur,change'],
},
],
mobile: [
{
required: true,
message: '请输入您的手机号',
trigger: ['blur'],
},
{
// 自定义验证函数,见上说明
validator: (rule, value, callback) => {
// 上面有说,返回true表示校验通过,返回false表示不通过
// this.$u.test.mobile()就是返回true或者false的
return this.$u.test.mobile(value)
},
message: '手机号码不正确',
// 触发器可以同时用blur和change
trigger: ['blur'],
},
],
// code: [{
// required: true,
// message: '请输入验证码',
// trigger: ['blur'],
// }]
},
unlineData: [
{
color: '#0066EB',
title: '入学阶段',
list: ['确定就业目标', '制定学习计划'],
},
{
color: '#FB9423',
title: '学习阶段',
list: ['大牛亲自带队', '名企驻场项目实战'],
},
{
color: '#11A9CB',
title: '实训阶段',
list: ['独立项目研发', '团队项目研发', '作品合集整理'],
},
{
color: '#8541F6',
title: '就业阶段',
list: ['关键科技内部优推', '名企岗位推荐', '云平台灵活就业'],
},
{
color: '#FE2020',
title: '发展阶段',
list: ['终身人才服务', '终身就业指导'],
},
],
// 新模块
topClassList: [],
bottomClassList: [],
classId: null,
jjform: {
studentName: '',
mobile: '',
uuid: '',
sex: '',
code: '',
},
// 职称数据
activezcList: {
type: 0,
tiaojian: '具备下列条件的可申请参与初级评价',
skill: '1.遵守中华人民共和国宪法和各项法律,恪守职业道德,具备一定的岗位专业知识和应用实践能力的人员,均可申请参与初级评价;&2.经中心认可的全国性行业赛事,获得省赛奖项的可直接申请认定;&3.经中心认可的其他评价项目,取得初级证书的可直接申请认定',
content:
'1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。',
},
zcList: [
{
type: 0,
tiaojian: '具备下列条件的可申请参与初级评价',
skill: '1.遵守中华人民共和国宪法和各项法律,恪守职业道德,具备一定的岗位专业知识和应用实践能力的人员,均可申请参与初级评价;&2.经中心认可的全国性行业赛事,获得省赛奖项的可直接申请认定;&3.经中心认可的其他评价项目,取得初级证书的可直接申请认定',
content:
'1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。',
},
{
type: 1,
tiaojian: '具备下列条件之一者,可申请参与中级评价',
skill: '1.硕士及以上学历,并从事相关岗位工作3年(含)以上;&2.本科或同等学历,并从事相关岗位工作5年(含)以上;&3.大专或同等学历,并从事相关岗位工作6年(含)以上;&4.经中心认可的全国性行业赛事,获得决赛奖项的可直接申请认定;&5.经中心认可的其他评价项目,取得等同中级证书的可直接申请认定,取得等同初级证书的可参与中级评价。',
content:
'1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。',
},
{
type: 2,
tiaojian: '具备下列条件之一者,可申请参与高级评价',
skill: '1. 拥有硕士及以上学历,且从事相关岗位工作5年(含)以上;&2. 拥有大学本科学历,且从事相关岗位工作8年(含)以上;&3. 拥有大学专科学历,且从事相关岗位工作10年(含)以上。&4. 经中心认可的其他评价项目,取得等同高级证书的可直接申请认定,取得等同中级证书的可参与高级评价。',
content:
'1.安全测试基本理论、安全测试方法、安全测试工具使用介绍。&2.GJB9433-2018标准下可编程逻辑器件软件测试级别、测试过程、测试类型、测试方法讲解,以及在工程项目中的应用。',
},
],
zhuanjiaList: [],
}
},
onLoad(optipn) {
let currenttab = optipn.currenttab
if (currenttab) {
this.currenttab = currenttab
}
this.accessToken = uni.getStorageSync('accessToken')
this.register = uni.getStorageSync('register')
console.log('register--', this.register)
console.log('wxUserInfo---', this.wxUserInfo)
// this.http.quickGet(`/train/course/list?pageNum=1&pageSize=100`).then((res) => {
// console.log('res---', res)
// this.courselist = res.data.rows
// if (this.courselist.length > 0) {
// this.courselist.sort((a, b) => {
// return a.orderNum - b.orderNum
// })
// this.courselist.forEach((item) => {
// if (item.children.length > 0) {
// item.children.sort((a, b) => {
// return a.orderNum - b.orderNum
// })
// if (item.orderNum == 1) {
// item.index = '一'
// } else if (item.orderNum == 2) {
// item.index = '二'
// } else if (item.orderNum == 3) {
// item.index = '三'
// } else if (item.orderNum == 4) {
// item.index = '四'
// } else if (item.orderNum == 5) {
// item.index = '五'
// }
// }
// })
// console.log('课程培训列表--', this.courselist)
// }
// })
// 获取课程列表
this.getClassList()
this.getTeacherList()
this.getSwiperImages()
uni.onKeyboardHeightChange(this.onKeyboardHeightChange)
},
onUnload() {
uni.offKeyboardHeightChange(this.onKeyboardHeightChange)
},
onShow() {
this.getOnlineCourse()
},
onReady() {
//onReady 为uni-app支持的生命周期之一
this.$refs.uForm.setRules(this.rules)
this.$refs.uFormjj.setRules(this.jjrules)
},
onShareAppMessage() {
return {
title: '小关软测宝', //分享的标题
path: 'pages/index/testtraining/testtraining', //点击分享链接之后进入的页面路径
// imageUrl: '/static/index/logo.png' //分享发送的链接图片地址
}
},
//2.配置分享到朋友圈
onShareTimeline() {
return {
title: '小关软测宝', //分享的标题
query: 'pages/index/testtraining/testtraining', //点击分享链接之后进入的页面路径
// imageUrl: '/static/index/logo.png' //分享发送的链接图片地址
}
},
methods: {
// 去学习
async toLearn(course) {
if (!course.signUp && course.isPay == '0') {
console.log('报名');
const res = await this.http.quickPost(`/train/online/signUp/${course.courseId}`, {}, true)
if (res.data.code == 200) {
uni.navigateTo({
url: `/pages/index/testtraining/onLineCourse?courseId=${course.courseId}`
})
}
else {
return
}
} else {
console.log('不报名');
uni.navigateTo({
url: `/pages/index/testtraining/onLineCourse?courseId=${course.courseId}&learnStatus=${course.show ? true : false}`
})
}
},
getMore() {
let accessToken = uni.getStorageSync('accessToken')
if (accessToken) {
uni.navigateTo({ url: '/pages/personal/myCourse/allMyCourse' })
} else {
uni.navigateTo({ url: '/pages/personal/myCourse/allMyCourse' })
}
},
testtrainCallback(e) {
this.jjform.sex = e[0].label
},
fornCallBack(e) {
this.form.sex = e[0].label
},
getSwiperImages() {
this.http.quickGet(`/train/banners?type=app`)
.then((res) => {
this.swipelist = res.data.data.map((item) => {
console.log(item)
return {
classType: item.classType,
image: this.http.baseUrl + item.filePath,
classId: item.entityId,
classType: item.classType,
}
})
console.log(this.swipelist)
})
},
bgClick(e) {
const type = this.swipelist[e].classType
const item = this.swipelist[e]
console.log(e)
console.log(this.swipelist)
console.log(type)
if (type === '0') {
this.openDialog()
}
if (type == 3) {
uni.navigateTo({
url: '/pages/index/testtraining/teacherDetail',
})
}
if (type == 1) {
this.classInfo.classId = item.entityId
this.classInfo.classType = item.classType
this.jjOpen()
}
if (type == 2) {
this.classInfo.classId = item.entityId
this.classInfo.classType = item.classType
this.jjOpen()
}
},
onKeyboardHeightChange(res) {
const { height, duration } = res
// 键盘弹起
if (height > 0) {
// 校企
this.flag = false
}
// 键盘收回
else {
this.flag = true
}
},
// 获取专家列表
getTeacherList() {
this.http.quickGet(`/talent/portal/teachers`, false).then((res) => {
this.zhuanjiaList = res.data
this.zhuanjiaList.forEach((it) => {
it.avatar = this.http.baseUrl + it.avatar
})
})
},
// 在线报名
gobaomingFn() {
// uni.pageScrollTo({
// scrollTop: '2000'
// // selector:'.titletopt'
// })
uni.createSelectorQuery()
.select('#targetElement')
.boundingClientRect((res) => {
uni.pageScrollTo({
scrollTop: res.top,
duration: 300,
})
})
.exec()
},
getOnlineCourse() {
let accessToken = uni.getStorageSync('accessToken')
if (accessToken) {
const wxUserInfo = uni.getStorageSync('wxUserInfo')
const userId = wxUserInfo.userId
this.http.quickGet(`/course/online/courses?userId=${userId}`).then((res) => {
console.log(res);
this.onLineList = res.data.data.slice(0, 3)
})
} else {
this.http.quickGet(`/course/online/courses`, false).then((res) => {
// console.log(res);
this.onLineList = res.data.data.slice(0, 3)
})
}
},
// 获取课程列表
getClassList() {
this.http.quickGet(`/train/portal`, false).then((res) => {
// classType 2可靠性 1线下进阶 0校企合作
// classLevel 0初级1中级2高级
// status 1报名未开始 2报名中 345 结束
this.topClassList = res.data.filter((it) => it.classType == 2)
this.bottomClassList = res.data.filter((it) => it.classType == 1)
if (this.topClassList.length) {
this.rowClick(this.topClassList[0])
}
})
},
// 行点击切换报名条件
rowClick(it) {
if (it.classLevel == 0) {
this.activezcList = this.zcList[0]
} else if (it.classLevel == 1) {
this.activezcList = this.zcList[1]
} else if (it.classLevel == 2) {
this.activezcList = this.zcList[2]
}
},
// 大学点击
model2DataClick(item) {
this.activeModel2 = item
},
onlinesign() {
this.isShowDia = true
},
popcilk(type) {
uni.navigateTo({
url: '/pages/index/test',
})
},
//学校名称切换
taclick(type) {
this.currenttab = type
},
open() {
// console.log('open');
},
close() {
this.isPopupShow = false
// console.log('close');
},
//选择学历下拉框
educationLevelfirm(e) {
console.log('e', e)
this.signobj.education = e[0].value
},
confirms() {
uni.navigateTo({
url: '/pages/personal/login',
})
},
// 模块1点击
model1CLick() {
console.log('click me')
this.isShowDown = true
},
closeShowDown() {
this.isShowDown = false
},
// 打开报名弹层
openDialog() {
let accessToken = uni.getStorageSync('accessToken')
if (!accessToken) {
this.tokenshow = true
} else {
this.http.quickGet(`/train/trainClassList`, true).then((res) => {
this.allschoollist = res.data.rows
console.log('allschoollist', this.allschoollist)
})
this.isShowDia = true
}
},
// 关闭弹窗
closeclosexx() {
this.isShowDia = false
this.$refs.uForm.resetFields()
this.form = {}
// this.calltext = '培训班代号由校企合作老师统一发送,请联系培训老师'
this.calltext = ''
this.timetext = ''
},
codeChange(text) {
this.tips = text
},
// 获取验证码
getCode() {
if (!/^1[3456789]\d{9}$/.test(this.jjform.mobile)) {
return uni.showToast({
title: '手机号格式不正确',
icon: 'none',
duration: 1000,
})
}
this.http
.quickGet('/captchaUserLogin?phoneNumber=' + this.jjform.mobile)
.then((res) => {
if (res.data.code == 200) {
this.jjform.uuid = res.data.uuid
uni.showToast({
title: '发送成功',
icon: 'none',
duration: 1000,
})
this.$refs.uCode.start()
this.codeBtn = true
setTimeout(() => {
this.codeBtn = false
}, 60000)
} else {
uni.showToast({
title: res.data.msg,
icon: 'none',
duration: 1000,
})
}
})
.catch((err) => {
console.log('err', err)
})
},
closeclosejj() {
this.isPCshow = false
this.inpDisabled = false
this.$refs.uFormjj.resetFields()
this.jjform = {
studentName: '',
mobile: '',
code: '',
uuid: '',
}
},
jjOpen(it) {
const accessToken = uni.getStorageSync('accessToken')
const wxUserInfo = uni.getStorageSync('wxUserInfo')
console.log(accessToken)
console.log(wxUserInfo)
// let accessToken = uni.getStorageSync('accessToken');
// if (!accessToken) {
// this.tokenshow = true
// } else {
// this.isPCshow = true
// this.classInfo = it
// }
if (accessToken && wxUserInfo.phonenumber) {
this.jjform.mobile = wxUserInfo.phonenumber
this.inpDisabled = true
}
if (it) {
this.classInfo = it
}
this.isPCshow = true
},
// 新报名提交
jjbaoming() {
this.$refs.uFormjj.validate((valid) => {
if (valid) {
const accessToken = uni.getStorageSync('accessToken')
const wxUserInfo = uni.getStorageSync('wxUserInfo')
if (accessToken) {
let data = {
mobile: this.jjform.mobile,
studentName: this.jjform.studentName,
trainClassId: this.classInfo.classId,
classType: this.classInfo.classType,
userId: wxUserInfo.userId,
sex: sexMap[this.jjform.sex]
}
this.http.quickPost(`/train/training/offApply`, data, false).then((res) => {
if (res.data.data.code == 200) {
this.$refs.uToast.show({
title: '报名成功',
type: 'success',
url: 'pages/personal/setup/peixunban',
})
this.closeclosejj()
} else {
this.$refs.uToast.show({
title: res.data.data.msg,
type: 'warning',
})
this.closeclosejj()
}
})
} else {
if (!this.jjform.code) {
return uni.showToast({
title: '请输入验证码',
icon: 'none',
duration: 1000,
})
}
let data = {
mobile: this.jjform.mobile,
studentName: this.jjform.studentName,
trainClassId: this.classInfo.classId,
classType: this.classInfo.classType,
code: this.jjform.code,
uuid: this.jjform.uuid,
}
this.http.quickPost(`/train/training/offApply`, data, false).then((res) => {
console.log(res)
if (res.data.data.code == 200) {
this.$refs.uToast.show({
title: '报名成功',
type: 'success',
})
this.closeclosejj()
} else {
this.$refs.uToast.show({
title: res.data.data.msg,
type: 'warning',
})
}
})
}
} else {
console.log('校验失败')
}
})
},
submitFn() {
this.$refs.uForm.validate((valid) => {
if (valid) {
this.wxUserInfo = uni.getStorageSync('wxUserInfo')
let trainClassId = this.allschoollist.find(
(item) => item.trainClassCode == this.form.trainClassCode,
).trainClassId
let data = {
trainClassCode: this.form.trainClassCode,
mobile: this.wxUserInfo.phonenumber,
// homeCollege: this.form.homeCollege,
majorName: this.form.majorName,
studentName: this.form.studentName,
studentCode: this.form.studentCode,
sex: sexMap[this.form.sex],
trainClassId,
counsellor: this.form.counsellor,
counsellorTel: this.form.counsellorTel,
}
console.log(data)
this.http
.quickPost(`/train/training/apply`, data, true)
.then((res) => {
if (res.data.data.code == 200) {
this.$refs.uToast.show({
title: '报名成功',
type: 'success',
url: 'pages/personal/setup/peixunban',
})
this.closeclosexx()
} else {
this.$refs.uToast.show({
title: res.data.data.msg,
type: 'warning',
})
this.closeclosexx()
}
})
.catch((error) => {
this.$refs.uToast.show({
title: '报名失败',
type: 'error',
})
})
}
})
}
}
}
</script>
<style>
/* 弹窗 */
.dialogbox {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(5, 5, 7, 0.5);
display: flex;
justify-content: center;
align-items: center;
}
.contentbox {
margin-top: 40rpx;
width: 559rpx;
/* height: 670rpx; */
background: #ffffff;
box-shadow: 0rpx 4rpx 21rpx 4rpx rgba(19, 106, 189, 0.15);
position: relative;
display: flex;
flex-direction: column;
}
.tiptext {
font-weight: 500;
font-size: 20rpx;
color: #0066eb;
padding-left: 40rpx;
}
.contentboxTitle {
font-weight: bold;
font-size: 30rpx;
color: #1a1a1a;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
.contentboxTitleB {
overflow-y: auto;
flex: 1;
}
.rowitem {
display: flex;
align-items: center;
}
.rowitem>>>.u-input {
width: 66vw !important;
height: 70rpx;
}
.rowitem1>>>.u-input {
width: 40vw !important;
margin-right: 20rpx;
}
.rowitem>>>.u-input input {
min-height: 70rpx !important;
font-size: 22rpx;
}
.sexSelect .u-input__right-icon {
margin-right: 10px;
}
.contentboxCon>>>.u-form-item {
padding: 17rpx 0 !important;
}
.rowitemxing {
width: 40rpx;
padding-left: 20rpx;
box-sizing: border-box;
color: red;
font-size: 25rpx;
line-height: 25rpx;
}
.contentboxbtn {
display: flex;
justify-content: center;
margin-top: 20rpx;
}
.contentboxbtnbtn {
width: 489rpx;
height: 60rpx;
background: #2084f9;
border-radius: 6rpx;
font-weight: 500;
font-size: 28rpx;
color: #ffffff;
line-height: 60rpx;
text-align: center;
}
.closexx {
position: absolute;
top: 10rpx;
right: 20rpx;
font-weight: 400;
font-size: 35rpx;
color: #858994;
padding: 5rpx;
}
.titlePeo {
font-weight: bold;
font-size: 35rpx;
color: #1a1a1a;
margin: 40rpx 0;
}
.titletopt {
display: flex;
justify-content: center;
align-items: center;
}
.titletopt image {
height: 20rpx;
width: 200rpx;
}
.titlebot {
text-align: center;
font-weight: 500;
font-size: 24rpx;
color: #999999;
margin-top: 15rpx;
}
.model1 {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.model1_item {
width: 338rpx;
height: 332rpx;
background: #ffffff;
border-radius: 6rpx;
display: flex;
flex-direction: column;
margin-bottom: 25rpx;
}
.model_item_top {
height: 130rpx;
border-bottom: 1px solid #f0f0f0;
display: flex;
justify-content: center;
align-items: center;
}
.model_item_top image {
width: 90rpx;
height: 90rpx;
}
.model_item_bottom {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding: 25rpx 20rpx 0 20rpx;
box-sizing: border-box;
}
.model_item_bottom_t {
font-weight: bold;
font-size: 28rpx;
color: #1a1a1a;
margin-bottom: 20rpx;
}
.model_item_bottom_b {
font-weight: 500;
font-size: 22rpx;
color: #737373;
}
.model4_title {
display: flex;
justify-content: center;
align-items: center;
margin: 40rpx 0;
}
.model4_title p {
font-size: 30rpx;
color: #1a1a1a;
font-weight: bold;
margin: 0 15rpx 0 20rpx;
}
.model4_title_line {
width: 11rpx;
height: 30rpx;
background: #1578ed;
transform: rotate(18deg);
}
.model4_content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.model4_content_testet {
width: 115rpx;
height: 115rpx;
background: #ffffff;
border-radius: 8rpx;
margin-right: 6rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-bottom: 24rpx;
}
.model4_content_testet img {
width: 44rpx;
height: 44rpx;
}
.model4_content_testet p {
font-weight: 500;
font-size: 22rpx;
color: #4d4d4d;
margin-top: 10rpx;
}
.model5 {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.model5 image {
width: 338rpx;
height: 95rpx;
margin-bottom: 22rpx;
}
.scrollviewnavbar {
width: 100%;
height: 56rpx;
display: flex;
white-space: nowrap;
}
.navbaritem {
width: 220rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx;
line-height: 56rpx;
text-align: center;
display: inline-block;
margin-right: 20rpx;
}
.navbaritemActive {
color: #1a7aed;
background: #deecfc;
}
.submitBtn {
width: 647rpx;
height: 70rpx;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 35rpx;
font-weight: 500;
font-size: 30rpx;
color: #ffffff;
line-height: 70rpx;
text-align: center;
}
.model7_top {
display: flex;
justify-content: center;
}
.model7_top image {
width: 353rpx;
height: 257rpx;
margin-bottom: 25rpx;
}
.model7_bottom {
display: flex;
justify-content: space-between;
}
.model7_bottom image {
width: 340rpx;
height: 246rpx;
}
.arrowdown {
display: flex;
justify-content: center;
}
.arrowdown image {
width: 33rpx;
height: 33rpx;
transform: rotate(180deg);
}
.tabledetails {
width: 100vw;
/* height: 100vh; */
/* background-color: #FFFFFF; */
padding: 25rpx;
box-sizing: border-box;
}
.onLineTrainTitle {
margin: 10rpx 0;
line-height: 80rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.onLineTrainTitle .onLineTitleText {
font-weight: bold;
font-size: 30rpx;
}
.onLineTrainTitle .more {
font-weight: 500;
font-size: 28rpx;
color: #808080;
}
.logobg {
width: 100%;
height: 32vw;
margin-bottom: 15px;
}
.deyalimg {
width: 100%;
height: 4.8vw;
margin: 5px 0;
object-fit: cover;
}
.statictosol {
width: 48%;
height: 200px;
background: #ffffff;
border-radius: 10rpx;
text-align: center;
margin-top: 20px;
padding: 10px;
}
.statictosol img {
width: 26vw;
height: 21vw;
}
.statictosol p {
font-size: 0.9rem;
color: #808080;
margin-bottom: 5px;
line-height: 21px;
}
.lighr {
width: 28vw;
height: 20vw;
}
.practice {
display: flex;
justify-content: space-between;
background-color: #ffffff;
padding: 13px;
width: 100%;
margin: 15px 0;
}
.lighrt {
width: 22vw;
height: 22vw;
}
.linblue {
width: 46rpx;
height: 5rpx;
background: #1578ed;
border-radius: 3rpx;
margin: 10px auto;
}
.buttonobj {
width: 320rpx;
height: 70rpx;
background: linear-gradient(145deg, #33cabc, #39b4a0);
border-radius: 50rpx;
font-size: 34rpx;
font-weight: bold;
color: #ffffff;
text-align: center;
line-height: 70rpx;
margin: 30px auto -10px auto;
}
.course {
background-color: #ffffff;
padding: 10px;
width: 100%;
margin: 15px 0;
font-size: 26rpx;
color: #808080;
}
.course p {
margin: 10px 0;
line-height: 22px;
}
.course img {
width: 28rpx;
height: 28rpx;
margin-right: 5px;
}
.software {
display: flex;
align-items: center;
margin-top: -10px;
}
.master {
display: flex;
width: 170px;
margin: 20px auto;
align-items: center;
justify-content: space-around;
}
.master p {
font-size: 30rpx;
color: #1a1a1a;
font-weight: bold;
}
.xline {
width: 11rpx;
height: 39rpx;
background: #1578ed;
transform: rotate(18deg);
}
.interface {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.testet {
/* height:120rpx; */
width: 21vw;
background: #ffffff;
border-radius: 8rpx;
text-align: center;
padding: 15px 0;
margin: 0 0 10px 0;
}
.testet img {
width: 60rpx;
height: 65rpx;
}
.testet p {
font-size: 28rpx;
color: #4d4d4d;
margin-top: 5px;
}
.teams {
background: #ffffff;
width: 100%;
padding: 15px 12px;
border-radius: 8rpx;
font-size: 27rpx;
color: #808080;
margin-top: 80px;
}
.teams img {
width: 27vw;
height: 32vw;
margin-top: -58px;
margin-right: 10px;
}
.submitt {
height: 55px;
font-size: 20px;
background: #ffffff;
/* margin-top:60px; */
position: fixed;
bottom: 0;
width: 100vw;
display: flex;
justify-content: space-between;
}
.bottbtn {
width: 50vw;
display: flex;
align-items: center;
justify-content: center;
color: #333333;
font-size: 36rpx;
font-weight: 500;
background: #ffffff;
}
.bottbtn img {
width: 23px;
height: 23px;
margin-right: 10px;
}
.peodi {
/* line-height: 15%; */
margin: 5px auto 15px;
width: 260px;
text-align: center;
color: #1a1a1a;
font-size: 36rpx;
font-weight: bold;
}
.button-g {
width: 280rpx;
height: 80rpx;
background: transparent;
border-radius: 43rpx;
text-align: center;
line-height: 80rpx;
color: #ffffff;
font-size: 33rpx;
margin-left: 13px;
}
.sinput {
display: flex;
align-items: center;
height: 50px;
padding: 10px;
margin-left: 30px;
}
.sinput img {
width: 20px;
height: 20px;
margin-right: 10px;
padding-right: 5px;
}
.u-input {
width: 72vw;
height: 35px;
border: 1px solid #e6e6e6;
background: #ffffff;
border-radius: 10rpx;
padding-left: 10px !important;
}
/* .innovate {
width: 41vw;
height: 24vw;
} */
.innovate {
width: 100%;
height: 500rpx;
}
.tableclas {
/* width: 230rpx;
height: 56rpx; */
background: #deecfc;
border-radius: 30rpx;
padding: 7px 13px;
font-size: 28rpx;
color: #1a7aed;
margin-right: 10px;
}
.vertical {
width: 6rpx;
height: 26rpx;
background: #1578ed;
border-radius: 3rpx;
margin-right: 10px;
}
.online {
width: 100%;
height: 70rpx;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 35rpx;
line-height: 70rpx;
font-size: 15px;
color: #ffffff;
text-align: center;
}
.table_heade {
width: 100rpx;
text-align: center;
line-height: 20rpx;
/* margin:5px 0 */
}
.table_kheade {
width: 140rpx;
text-align: center;
}
.headert {
background-color: #3283be;
display: flex;
align-items: center;
color: #ffffff;
}
.bodyt {
background-color: #ffffff;
display: flex;
align-items: center;
line-height: 20px;
color: #1a1a1a;
/* height: 26px; */
}
.table_obody {
width: 100rpx;
text-align: center;
}
.table_tbody {
width: 600rpx;
text-align: left;
padding: 4px 8px;
border-left: 1px solid #cfdddd;
border-right: 1px solid #cfdddd;
}
.table_hbody {
width: 140rpx;
text-align: center;
}
.u-th {
background-color: #e9f0fa !important;
}
.u-td {
color: #808080 !important;
}
.tdplas .u-td {
border-right: none !important;
}
.tdplasd .u-td {
border-right: none !important;
border-bottom: none !important;
}
/* 新模块 */
.newmodel1 {
max-height: 510rpx;
background: #ffffff;
border-radius: 6rpx;
padding: 18rpx 25rpx;
box-sizing: border-box;
}
.newmodel1t {
height: 50rpx;
background: #e9f0fa;
border-radius: 4rpx;
font-weight: bold;
font-size: 26rpx;
color: #000000;
display: flex;
justify-content: center;
align-items: center;
}
.newmodel1c {
max-height: 390rpx;
margin-top: 20rpx;
}
.newmodel1citem {
height: 77rpx;
border-top: 1px solid #edeff2;
display: flex;
align-items: center;
justify-content: space-between;
}
.newmodel1citem1 {
font-weight: 500;
font-size: 22rpx;
color: #595959;
min-width: 140rpx;
}
.newmodel1citem2 {
display: flex;
align-items: center;
justify-content: flex-end;
min-width: 200rpx;
}
.newmodel1citem2btn {
width: 150rpx;
height: 44rpx;
background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 4rpx;
font-weight: 500;
font-size: 22rpx;
color: #ffffff;
line-height: 44rpx;
text-align: center;
}
.newmodel1citem2btn2 {
background: linear-gradient(90deg, #8e9aa7, #c1c7ce);
}
.newmodel1citem2btn3 {
background: linear-gradient(90deg, #fb8c16, #fec36e);
margin-left: 10rpx;
}
.newmodel2 {
background: linear-gradient(0deg, #4296fb, #127cf8);
border-radius: 6rpx;
padding: 22rpx;
box-sizing: border-box;
margin-top: 20rpx;
}
.newmodel2title {
height: 44rpx;
background: #ffffff;
border-radius: 2rpx;
opacity: 0.9;
line-height: 44rpx;
font-weight: bold;
font-size: 26rpx;
color: #0066eb;
margin-bottom: 20rpx;
padding-left: 20rpx;
box-sizing: border-box;
}
.newmodel2c {
font-weight: 500;
font-size: 22rpx;
color: #f2f2f2;
line-height: 34rpx;
margin-bottom: 20rpx;
}
.swiper {
height: 465rpx;
}
.newmodel3 {
height: 410rpx;
background: #ffffff;
border-radius: 6rpx;
display: flex;
margin-bottom: 27rpx;
}
.newmodel3l {
width: 260rpx;
border-right: 1px solid #f2f2f2;
padding: 24rpx;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.newmodel3l image {
width: 100%;
height: 262rpx;
}
.newmodel3ln {
font-weight: bold;
font-size: 28rpx;
color: #000000;
}
.newmodel3lz {
font-weight: 500;
font-size: 22rpx;
color: #666666;
text-align: center;
}
.newmodel3r {
flex: 1;
padding: 24rpx;
box-sizing: border-box;
overflow: hidden;
}
.newmodel3rt {
font-weight: bold;
font-size: 28rpx;
color: #1a1a1a;
}
.newmodel3rl {
font-weight: 500;
font-size: 22rpx;
color: #666666;
line-height: 33rpx;
}
.newmodel3rb {
width: 40rpx;
height: 6rpx;
background: #0066eb;
margin: 20rpx;
}
.newmodel4 {
display: flex;
align-items: center;
justify-content: space-between;
}
.newmodel5 {
display: flex;
align-items: center;
justify-content: center;
}
.newmodel5 .newmodel4item {
margin-left: 20rpx;
}
.newmodel4item {
width: 220rpx;
height: 180rpx;
background: #ffffff;
border-radius: 6rpx;
margin-bottom: 20rpx;
}
.newmodel4itemtop {
display: flex;
justify-content: center;
align-items: center;
height: 50rpx;
}
.newmodel4itemtopcricle {
width: 10rpx;
height: 10rpx;
border-radius: 50%;
border: 2px solid #f1f4fb;
}
.newmodel4itemtoptitle {
font-weight: bold;
font-size: 26rpx;
color: #ffffff;
}
.newmodel4itembottomtext {
font-weight: 500;
font-size: 22rpx;
color: #666666;
line-height: 35rpx;
text-indent: 0.5em;
}
.scrollxx {
width: 100%;
height: 410rpx;
display: flex;
}
</style>