123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- <template>
- <div class="zhiyuan-wrapper">
- <div class="bar">
- <!-- 步骤条-->
- <div class="step-list line">
- <div class="step-item right" v-for="(item, index) in topStep" :key="index">
- <div class="step-number" :class="active.name == item.label ? 'curindex' : ''" v-if="active.index < item.index">
- {{ item.index + 1 }}
- </div>
- <i v-else class="el-icon-check"></i>
- <div class="step-label">{{ item.label }}</div>
- </div>
- </div>
- <div>
- <h1 class="text-center f-primary" >{{active.title}}</h1>
- <!-- <span>我的志愿表</span>-->
- </div>
- </div>
- <div class="content">
- <score ref="score" v-show="active.index == 0" ></score>
- <phase @onFillIn="onFillIn" v-if="active.index == 1" :list="zytbBatchesList" :formSubject="form"></phase>
- <recommend :batch="batch" v-if="active.index == 2" :formSubject="form"></recommend>
- </div>
- <div class="text-center mt15">
- <el-button plain @click="toReport">查看记录</el-button>
- <el-button type="primary" @click="toBackPage" :disabled="currentStep == 0">上一步</el-button>
- <el-button type="primary" @click="next" v-if="currentStep <= 1">下一步</el-button>
- <el-button type="primary" @click="save" v-if="currentStep > 1">保存志愿</el-button>
- </div>
- <div :class="{'active':show,'right_cart': true}">
- <div class="btn-wrap" @click="show = !show">
- 当前志愿表
- </div>
- <transition name="content">
- <div class="content-wrap">
- <el-input class="input" v-model="input" placeholder="院校/专业搜索"></el-input>
- <div class="content">
- <div class="list"></div>
- <div class="btn">
- <el-button style="width: 100%;height: 30px" type="primary">保存志愿表</el-button>
- </div>
- </div>
- </div>
- </transition>
- </div>
- </div>
- </template>
- <script>
- import Score from './components/score'
- import Phase from './components/phase'
- import Recommend from './components/recommend'
- import { zytbBatches } from '@/api/webApi/webQue'
- export default {
- components:{
- Recommend,
- Phase,
- Score,
- },
- data() {
- return {
- input:'',
- show:false,
- topStep: [
- { index: 0, label: "高考分数",title:'(一)输入高考的成绩' },
- { index: 1, label: "填报批次",title:'(二)选择填报批次' },
- { index: 2, label: "院校专业",title:'(三)选择院校专业' },
- { index: 3, label: "保存志愿",title:'(四)我的志愿' },
- ],
- batch:{},
- form: {
- score: '',
- firstSubject: '',
- lastSubject: []
- },
- zytbBatchesList: [],
- currentStep: 0
- }
- },
- computed: {
- active() {
- return this.topStep.find(item => {
- return item.index == this.currentStep
- })
- },
- },
- mounted() {
- // 初始化
- this.$refs.score.init(this.form)
- },
- methods:{
- toReport() {
- this.$router.push('/career/VolunteerList')
- },
- save() {
- console.log('保存志愿')
- },
- onFillIn(item) {
- console.log(item)
- this.batch = item
- this.currentStep = 2
- },
- next() {
- const currentActive = this.currentStep
- switch (currentActive) {
- case 0:
- this.submitScore()
- break;
- case 1:
- this.$message.warning('请点击批次按钮进行填写')
- break;
- }
- },
- submitScore() {
- this.$refs.score.validate(() => {
- // 成功下一步
- this.httpzytbBatches()
- })
- },
- toBackPage() {
- if (this.currentStep <= 0) {
- return;
- }
- this.currentStep --;
- // this.$refs.score.init(this.form)
- },
- httpzytbBatches() {
- const mode = [this.form.firstSubject, ...this.form.lastSubject].toString()
- console.log(mode)
- zytbBatches({
- score: this.form.score,
- mode: mode,
- }).then((res) => {
- this.zytbBatchesList = res.rows;
- this.currentStep = 1
- });
- },
- }
- }
- </script>
- <style scoped>
- .zhiyuan-wrapper{
- padding: 20px 0;
- margin: 30px auto;
- background-color: #fff;
- }
- .bar{
- padding: 0 100px 20px;
- border-bottom: 1px solid #d6d6d6;
- }
- .step-list {
- display: flex;
- justify-content: space-between;
- position: relative;
- margin-bottom: 50px;
- }
- .step-list.line::before {
- position: absolute;
- content: "";
- width: 100%;
- height: 2px;
- top: 50%;
- background: #6cd1b5;
- z-index: 0;
- }
- .step-item {
- position: relative;
- background: #fff;
- z-index: 2;
- border: 1px solid #6cd1b5;
- border-radius: 50%;
- color: #6cd1b5;
- width: 48px;
- height: 48px;
- line-height: 46px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .step-label {
- font-weight: bolder;
- color: #555555;
- width: 100px;
- text-align: center;
- font-size: 14px;
- position: absolute;
- bottom: -40px;
- }
- .step-number {
- line-height: 48px;
- text-align: center;
- }
- .step-number.curindex {
- width: 48px;
- height: 48px;
- flex-shrink: 0;
- background: #6cd1b5;
- border-radius: 50%;
- color: #fff;
- }
- .right_cart{
- position: fixed;
- top: 50%;
- right: -320px;
- transform: translate(0%,-50%);
- transition: all 1s ease;
- }
- .active{
- right: 0;
- }
- .right_cart{
- display: flex;
- z-index: 9999;
- }
- .right_cart .btn-wrap{
- cursor: pointer;
- align-self: baseline;
- border-radius: 5px 0 0 5px;
- color: white;
- background: #42b983;
- width: 30px;
- text-align: center;
- font-size: 16px;
- margin-top: 10px;
- padding: 7px;
- }
- .content-wrap{
- padding: 10px 0;
- background: #fff;
- width: 320px;
- min-height: 268px;
- display: flex;
- flex-direction: column;
- border: 1px solid #f2f2f2;
- }
- .content{
- height: 100%;
- }
- .content .list{
- min-height: 188px;
- }
- .content-wrap .input{
- padding: 0 15px;
- }
- .content-wrap .btn{
- width: 100% ;
- padding: 0 15px;
- }
- </style>
|