实现效果,一进入自动加载最近学期数据
入学年份是取学号中入学年份对应字段
js
//计算学期
function getTerm(no){ //no为学号
let date=new Date; //当前时间
let startYear = parseInt(no.toString().slice(0, 4));//取学号中入学年份
let year=date.getFullYear(); //现在年份
let month=date.getMonth()+1; //getMonth()获取当前月份(0-11,0代表1月)
let term = (year - startYear)*2 + parseInt(month/9); //学期
let yTermValue = year - startYear + parseInt(month/9); //计算学年,如2018-2019学年两个学期值都是2018,方便写入选择器
console.log(year+'年'+month+'月第'+ term+'学期');
let termYear ={
term: term>8?8:term, //学期,
year: startYear, //开学年份
now: year, //现在年份
yTermValue: yTermValue //选择的年度
};
return termYear;
}
html实现
<el-cascader
:options="yTermOptions"
v-model="selectYearTerm"
@change="changeTerm"
></el-cascader>
vue data定义
selectYearTerm:['year'+termYear.yTermValue,termYear.term],
yTermOptions:[
{
value: 'year1',
label: termYear.year+'-'+(termYear.year+1)+'学年',
children: [{
value: 1,
label: '第一学期',
},{
value: 2,
label: '第二学期',
}],
}, {
value: 'year2',
label: (termYear.year+1)+'-'+(termYear.year+2)+'学年',
children: [{
value: 3,
label: '第一学期',
},{
value: 4,
label: '第二学期',
}],
}, {
value: 'year3',
label: (termYear.year+2)+'-'+(termYear.year+3)+'学年',
children: [{
value: 5,
label: '第一学期',
},{
value: 6,
label: '第二学期',
}],
}, {
value: 'year4',
label: (termYear.year+3)+'-'+(termYear.year+4)+'学年',
children: [{
value: 7,
label: '第一学期',
},{
value: 8,
label: '第二学期',
}],
},
],