|
|
@ -1,77 +1,45 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<div class="wrap"> |
|
|
|
<div class="wrap"> |
|
|
|
<!-- 头像部分 --> |
|
|
|
<div class="topBack"> |
|
|
|
<div class="header"> |
|
|
|
<div class="back" @click="goBack"><i class="el-icon-arrow-left"></i>返回</div> |
|
|
|
<el-avatar :size="80" :src="this.avatar" class="Headtop"></el-avatar> |
|
|
|
|
|
|
|
<div style="color:#9278FF;font-size:14px;font-family:MicrosoftYaHei;margin-top:5px;"> |
|
|
|
|
|
|
|
<el-upload |
|
|
|
|
|
|
|
class="upload-demo" |
|
|
|
|
|
|
|
:headers="{token}" |
|
|
|
|
|
|
|
:action="this.api.updateUserAvatars" |
|
|
|
|
|
|
|
name="file" |
|
|
|
|
|
|
|
:limit="1" |
|
|
|
|
|
|
|
:on-success="getRes" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div>点击更改头像</div> |
|
|
|
|
|
|
|
</el-upload> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 头像部分 --> |
|
|
|
|
|
|
|
<div class="header"> |
|
|
|
<!-- 用户信息 --> |
|
|
|
<el-avatar :size="80" :src="this.avatar" class="Headtop"></el-avatar> |
|
|
|
<div class="card" style="margin-top: -65px"> |
|
|
|
<div style="color:#9278FF;font-size:14px;font-family:MicrosoftYaHei;margin-top:5px;"> |
|
|
|
<p class="block-title" style="display: flex;justify-content: space-between;align-items: center;"> |
|
|
|
<el-upload |
|
|
|
<span><img src="@/assets/img/person/user.png" alt=""> 用户信息</span> |
|
|
|
class="upload-demo" |
|
|
|
<el-button type="primary" @click="save">更新资料</el-button> |
|
|
|
:headers="{token}" |
|
|
|
</p> |
|
|
|
:action="this.api.uploadUserAvatars" |
|
|
|
<p class="meta-title"> |
|
|
|
name="file" |
|
|
|
<span>个人信息</span> |
|
|
|
:limit="1" |
|
|
|
</p> |
|
|
|
:on-success="getRes" |
|
|
|
<div class="information"> |
|
|
|
> |
|
|
|
<div class="line"> |
|
|
|
<div>点击更改头像</div> |
|
|
|
<div class="item"> |
|
|
|
</el-upload> |
|
|
|
<span>姓名</span> |
|
|
|
|
|
|
|
<input id="username" class="username" placeholder="请输入姓名" type="text" v-model="personalInformation.userName" /> |
|
|
|
|
|
|
|
<!-- <label for="username"> |
|
|
|
|
|
|
|
<i class="el-icon-edit"></i> |
|
|
|
|
|
|
|
</label> --> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>所在国家</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.countries" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in countryList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="line"> |
|
|
|
</div> |
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>性别</span> |
|
|
|
<!-- 用户信息 --> |
|
|
|
<div class="sexRadio"> |
|
|
|
<div class="card" style="margin-top: -65px"> |
|
|
|
<el-radio v-model="personalInformation.sex" :label="1">男</el-radio> |
|
|
|
<p class="block-title" style="display: flex;justify-content: space-between;align-items: center;"> |
|
|
|
<el-radio v-model="personalInformation.sex" :label="2">女</el-radio> |
|
|
|
<span><img src="@/assets/img/person/user.png" alt=""> 用户信息</span> |
|
|
|
|
|
|
|
<el-button type="primary" @click="save">更新资料</el-button> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
<p class="meta-title"> |
|
|
|
|
|
|
|
<span>个人信息</span> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
<div class="information"> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>姓名</span> |
|
|
|
|
|
|
|
<input id="username" class="username" placeholder="请输入姓名" type="text" v-model="personalInformation.userName" /> |
|
|
|
|
|
|
|
<!-- <label for="username"> |
|
|
|
|
|
|
|
<i class="el-icon-edit"></i> |
|
|
|
|
|
|
|
</label> --> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <el-select |
|
|
|
<div class="item"> |
|
|
|
v-model="personalInformation.sex" |
|
|
|
<span>所在国家</span> |
|
|
|
placeholder |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in sexList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> --> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>所在地</span> |
|
|
|
|
|
|
|
<div class="selects"> |
|
|
|
|
|
|
|
<el-select |
|
|
|
<el-select |
|
|
|
v-model="personalInformation.countries" |
|
|
|
v-model="personalInformation.countries" |
|
|
|
placeholder |
|
|
|
placeholder |
|
|
@ -83,306 +51,342 @@ |
|
|
|
:value="item.value" |
|
|
|
:value="item.value" |
|
|
|
></el-option> |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.provinceId" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
@change="id => getCity(id,1)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in provinceList" |
|
|
|
|
|
|
|
:key="item.provinceId" |
|
|
|
|
|
|
|
:label="item.provinceName" |
|
|
|
|
|
|
|
:value="item.provinceId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.cityId" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
:disabled="personalInformation.provinceId ? false : true" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in cityList" |
|
|
|
|
|
|
|
:key="item.cityId" |
|
|
|
|
|
|
|
:label="item.cityName" |
|
|
|
|
|
|
|
:value="item.cityId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>出生年月日</span> |
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
|
|
v-model="personalInformation.dateBirth" |
|
|
|
|
|
|
|
:clearable="false" |
|
|
|
|
|
|
|
class="block-right" |
|
|
|
|
|
|
|
type="date"> |
|
|
|
|
|
|
|
</el-date-picker> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>证件</span> |
|
|
|
|
|
|
|
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" id="idnumber" class="idnumber" placeholder="请输入证件" type="text" v-model="personalInformation.idNumber" /> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>教育程度</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.educationDegree" |
|
|
|
|
|
|
|
placeholder="请选择教育程度" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="(item,index) in educationDegreeList" |
|
|
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>当前所在学校</span> |
|
|
|
|
|
|
|
<input id="schoolName" class="school" disabled placeholder="所在学校" type="text" v-model="personalInformation.schoolName" /> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 个人档案 --> |
|
|
|
|
|
|
|
<p class="meta-title plus"> |
|
|
|
|
|
|
|
<span>个人档案</span> |
|
|
|
|
|
|
|
<el-button type="text" icon="el-icon-plus" @click="addArch">新增</el-button> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="information" style="margin-top: 20px;"> |
|
|
|
|
|
|
|
<div class="archives" v-for="(archive,index) in archivesList" :key="index" v-show="index == 0 || showArch"> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
<div class="line"> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>职业</span> |
|
|
|
<span>性别</span> |
|
|
|
<el-select |
|
|
|
<div class="sexRadio"> |
|
|
|
v-model="archive.personalCareerId" |
|
|
|
<el-radio v-model="personalInformation.sex" :label="1">男</el-radio> |
|
|
|
placeholder="选择职业" |
|
|
|
<el-radio v-model="personalInformation.sex" :label="2">女</el-radio> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- <el-select |
|
|
|
|
|
|
|
v-model="personalInformation.sex" |
|
|
|
|
|
|
|
placeholder |
|
|
|
> |
|
|
|
> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="item in occupationList" |
|
|
|
v-for="item in sexList" |
|
|
|
:key="item.value" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:label="item.name" |
|
|
|
:value="item.value" |
|
|
|
:value="item.value" |
|
|
|
></el-option> |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> --> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>国家</span> |
|
|
|
<span>所在地</span> |
|
|
|
<el-select |
|
|
|
<div class="selects"> |
|
|
|
v-model="personalInformation.countries" |
|
|
|
<el-select |
|
|
|
placeholder |
|
|
|
v-model="personalInformation.countries" |
|
|
|
> |
|
|
|
placeholder |
|
|
|
<el-option |
|
|
|
> |
|
|
|
v-for="item in countryList" |
|
|
|
<el-option |
|
|
|
:key="item.value" |
|
|
|
v-for="item in countryList" |
|
|
|
:label="item.label" |
|
|
|
:key="item.value" |
|
|
|
:value="item.value" |
|
|
|
:label="item.label" |
|
|
|
></el-option> |
|
|
|
:value="item.value" |
|
|
|
</el-select> |
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.provinceId" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
@change="id => getCity(id,1)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in provinceList" |
|
|
|
|
|
|
|
:key="item.provinceId" |
|
|
|
|
|
|
|
:label="item.provinceName" |
|
|
|
|
|
|
|
:value="item.provinceId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="personalInformation.cityId" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
:disabled="personalInformation.provinceId ? false : true" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in cityList" |
|
|
|
|
|
|
|
:key="item.cityId" |
|
|
|
|
|
|
|
:label="item.cityName" |
|
|
|
|
|
|
|
:value="item.cityId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="line"> |
|
|
|
<div class="line"> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>学校名称</span> |
|
|
|
<span>出生年月日</span> |
|
|
|
<el-select |
|
|
|
<el-date-picker |
|
|
|
v-model="archive.schoolId" |
|
|
|
v-model="personalInformation.dateBirth" |
|
|
|
filterable |
|
|
|
:clearable="false" |
|
|
|
placeholder="选择学校" |
|
|
|
class="block-right" |
|
|
|
@change="id => getSchoolName(id,index)" |
|
|
|
type="date"> |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in schoolList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.schoolName" |
|
|
|
|
|
|
|
:value="item.schoolId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>专业学科</span> |
|
|
|
<span>证件</span> |
|
|
|
<el-select |
|
|
|
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" id="idnumber" class="idnumber" placeholder="请输入证件" type="text" v-model="personalInformation.idNumber" /> |
|
|
|
v-model="archive.disciplineId" |
|
|
|
|
|
|
|
placeholder="选择专业学科" |
|
|
|
|
|
|
|
@change="id => getItemProfessionalClass(id,index)" |
|
|
|
|
|
|
|
@clear="() => clearItemClass(index)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in subjectList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.disciplineName" |
|
|
|
|
|
|
|
:value="item.disciplineId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="line"> |
|
|
|
<div class="line"> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>专业类</span> |
|
|
|
<span>教育程度</span> |
|
|
|
<el-select |
|
|
|
<el-select |
|
|
|
v-model="archive.professionalClassId" |
|
|
|
v-model="personalInformation.educationDegree" |
|
|
|
placeholder="选择专业类" |
|
|
|
placeholder="请选择教育程度" |
|
|
|
:disabled="archive.disciplineId ? false : true" |
|
|
|
|
|
|
|
@change="id => getItemProfessional(id,index)" |
|
|
|
|
|
|
|
@clear="() => clearItemProfess(index)" |
|
|
|
|
|
|
|
> |
|
|
|
> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="item in archive.ProfessionalClassList" |
|
|
|
v-for="(item,index) in educationDegreeList" |
|
|
|
:key="item.professionalClassId" |
|
|
|
:key="index" |
|
|
|
:label="item.professionalClassName" |
|
|
|
:label="item.name" |
|
|
|
:value="item.professionalClassId" |
|
|
|
:value="item.value" |
|
|
|
></el-option> |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="item"> |
|
|
|
<div class="item"> |
|
|
|
<span>专业</span> |
|
|
|
<span>当前所在学校</span> |
|
|
|
<el-select |
|
|
|
<input id="schoolName" class="school" disabled placeholder="所在学校" type="text" v-model="personalInformation.schoolName" /> |
|
|
|
v-model="archive.professionalId" |
|
|
|
|
|
|
|
placeholder="选择专业" |
|
|
|
|
|
|
|
:disabled="archive.professionalClassId ? false : true" |
|
|
|
|
|
|
|
@change="getItemStuGrade" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in archive.ProfessionalList" |
|
|
|
|
|
|
|
:key="item.professionalId" |
|
|
|
|
|
|
|
:label="item.professionalName" |
|
|
|
|
|
|
|
:value="item.professionalId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="fold" v-if="archivesList.length > 1"> |
|
|
|
<!-- 个人档案 --> |
|
|
|
<img :class="{ 'arrowTransform': showArch, 'arrowTransformReturn': !showArch}" style="width: 21px;height: 17px;" src="@/assets/img/open.png" alt="" @click="foldArch"> |
|
|
|
<p class="meta-title plus"> |
|
|
|
</div> |
|
|
|
<span>个人档案</span> |
|
|
|
</div> |
|
|
|
<el-button type="text" icon="el-icon-plus" @click="addArch">新增</el-button> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="card mgb20"> |
|
|
|
<div class="information" style="margin-top: 20px;"> |
|
|
|
<p class="block-title" style="margin-bottom: 15px"> |
|
|
|
<div class="archives" v-for="(archive,index) in archivesList" :key="index" v-show="index == 0 || showArch"> |
|
|
|
<span><img src="@/assets/img/person/manag.png" alt=""> 账号信息</span> |
|
|
|
<div class="line"> |
|
|
|
</p> |
|
|
|
<div class="item"> |
|
|
|
<div class="information"> |
|
|
|
<span>职业</span> |
|
|
|
<div class="line"> |
|
|
|
<el-select |
|
|
|
<div class="item"> |
|
|
|
v-model="archive.personalCareerId" |
|
|
|
<span>用户账号</span> |
|
|
|
placeholder="选择职业" |
|
|
|
<input |
|
|
|
> |
|
|
|
id="account" |
|
|
|
<el-option |
|
|
|
type="text" |
|
|
|
v-for="item in occupationList" |
|
|
|
class="username" placeholder="请输入用户账号" |
|
|
|
:key="item.value" |
|
|
|
v-model="personalInformation.account" |
|
|
|
:label="item.label" |
|
|
|
/> |
|
|
|
:value="item.value" |
|
|
|
</div> |
|
|
|
></el-option> |
|
|
|
<div class="item"> |
|
|
|
</el-select> |
|
|
|
<span>手机号</span> |
|
|
|
</div> |
|
|
|
<div class="btns flex-between"> |
|
|
|
<div class="item"> |
|
|
|
<span>{{ personalInformation.phone }}</span> |
|
|
|
<span>国家</span> |
|
|
|
<el-button v-if="personalInformation.phone" type="primary" @click="bindPhone">更换</el-button> |
|
|
|
<el-select |
|
|
|
<el-button v-else type="primary" @click="bindPhone">绑定</el-button> |
|
|
|
v-model="personalInformation.countries" |
|
|
|
|
|
|
|
placeholder |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in countryList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>学校名称</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="archive.schoolId" |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
placeholder="选择学校" |
|
|
|
|
|
|
|
@change="id => getSchoolName(id,index)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in schoolList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.schoolName" |
|
|
|
|
|
|
|
:value="item.schoolId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>专业学科</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="archive.disciplineId" |
|
|
|
|
|
|
|
placeholder="选择专业学科" |
|
|
|
|
|
|
|
@change="id => getItemProfessionalClass(id,index)" |
|
|
|
|
|
|
|
@clear="() => clearItemClass(index)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in subjectList" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:label="item.disciplineName" |
|
|
|
|
|
|
|
:value="item.disciplineId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>专业类</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="archive.professionalClassId" |
|
|
|
|
|
|
|
placeholder="选择专业类" |
|
|
|
|
|
|
|
:disabled="archive.disciplineId ? false : true" |
|
|
|
|
|
|
|
@change="id => getItemProfessional(id,index)" |
|
|
|
|
|
|
|
@clear="() => clearItemProfess(index)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in archive.ProfessionalClassList" |
|
|
|
|
|
|
|
:key="item.professionalClassId" |
|
|
|
|
|
|
|
:label="item.professionalClassName" |
|
|
|
|
|
|
|
:value="item.professionalClassId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>专业</span> |
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
|
|
v-model="archive.professionalId" |
|
|
|
|
|
|
|
placeholder="选择专业" |
|
|
|
|
|
|
|
:disabled="archive.professionalClassId ? false : true" |
|
|
|
|
|
|
|
@change="getItemStuGrade" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in archive.ProfessionalList" |
|
|
|
|
|
|
|
:key="item.professionalId" |
|
|
|
|
|
|
|
:label="item.professionalName" |
|
|
|
|
|
|
|
:value="item.professionalId" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
<div class="fold" v-if="archivesList.length > 1"> |
|
|
|
<span>邮箱</span> |
|
|
|
<img :class="{ 'arrowTransform': showArch, 'arrowTransformReturn': !showArch}" style="width: 21px;height: 17px;" src="@/assets/img/open.png" alt="" @click="foldArch"> |
|
|
|
<div class="btns flex-between"> |
|
|
|
</div> |
|
|
|
<span>{{ personalInformation.email }}</span> |
|
|
|
</div> |
|
|
|
<el-button v-if="personalInformation.email" type="primary" @click="bindEmail">更换</el-button> |
|
|
|
|
|
|
|
<el-button v-else type="primary" @click="bindEmail">绑定</el-button> |
|
|
|
<div class="card mgb20"> |
|
|
|
|
|
|
|
<p class="block-title" style="margin-bottom: 15px"> |
|
|
|
|
|
|
|
<span><img src="@/assets/img/person/manag.png" alt=""> 账号信息</span> |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
<div class="information"> |
|
|
|
|
|
|
|
<div class="line"> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>用户账号</span> |
|
|
|
|
|
|
|
<input |
|
|
|
|
|
|
|
id="account" |
|
|
|
|
|
|
|
type="text" |
|
|
|
|
|
|
|
class="username" placeholder="请输入用户账号" |
|
|
|
|
|
|
|
v-model="personalInformation.account" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>手机号</span> |
|
|
|
|
|
|
|
<div class="btns flex-between"> |
|
|
|
|
|
|
|
<span>{{ personalInformation.phone }}</span> |
|
|
|
|
|
|
|
<el-button v-if="personalInformation.phone" type="primary" @click="bindPhone">更换</el-button> |
|
|
|
|
|
|
|
<el-button v-else type="primary" @click="bindPhone">绑定</el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <div class="item"> |
|
|
|
<div class="line"> |
|
|
|
<span>微信</span> |
|
|
|
<div class="item"> |
|
|
|
<input id="weChat" class="weChat" disabled placeholder="微信" type="text" v-model="personalInformation.weChatID"/> |
|
|
|
<span>邮箱</span> |
|
|
|
</div> --> |
|
|
|
<div class="btns flex-between"> |
|
|
|
<div class="item"> |
|
|
|
<span>{{ personalInformation.email }}</span> |
|
|
|
<span>密码</span> |
|
|
|
<el-button v-if="personalInformation.email" type="primary" @click="bindEmail">更换</el-button> |
|
|
|
<div class="btns flex-between"> |
|
|
|
<el-button v-else type="primary" @click="bindEmail">绑定</el-button> |
|
|
|
<p>******</p> |
|
|
|
</div> |
|
|
|
<el-button type="primary" @click="bindPassword">更换</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- <div class="item"> |
|
|
|
|
|
|
|
<span>微信</span> |
|
|
|
|
|
|
|
<input id="weChat" class="weChat" disabled placeholder="微信" type="text" v-model="personalInformation.weChatID"/> |
|
|
|
|
|
|
|
</div> --> |
|
|
|
|
|
|
|
<div class="item"> |
|
|
|
|
|
|
|
<span>密码</span> |
|
|
|
|
|
|
|
<div class="btns flex-between"> |
|
|
|
|
|
|
|
<p>******</p> |
|
|
|
|
|
|
|
<el-button type="primary" @click="bindPassword">更换</el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- <div class="item"></div> --> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <div class="item"></div> --> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog |
|
|
|
<el-dialog |
|
|
|
:title="personalInformation.email ? '更换邮箱' : '绑定邮箱'" |
|
|
|
:title="personalInformation.email ? '更换邮箱' : '绑定邮箱'" |
|
|
|
:visible.sync="emailVisible" |
|
|
|
:visible.sync="emailVisible" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-click-modal="false" |
|
|
|
@close="closeEmail" |
|
|
|
@close="closeEmail" |
|
|
|
width="30%"> |
|
|
|
width="30%"> |
|
|
|
<el-form ref="form" :model="form" label-width="60px"> |
|
|
|
<el-form ref="form" :model="form" label-width="60px"> |
|
|
|
<el-form-item label="邮箱"> |
|
|
|
<el-form-item label="邮箱"> |
|
|
|
<el-input placeholder="请输入邮箱" v-model="email"></el-input> |
|
|
|
<el-input placeholder="请输入邮箱" v-model="email"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="验证码"> |
|
|
|
<el-form-item label="验证码"> |
|
|
|
<div class="flex-between"> |
|
|
|
<div class="flex-between"> |
|
|
|
<el-input v-model="emailCode" placeholder="请输入验证码" maxlength="6"></el-input> |
|
|
|
<el-input v-model="emailCode" placeholder="请输入验证码" maxlength="6"></el-input> |
|
|
|
<el-button style="margin-left: 10px" type="text" @click="sendEmailCode" :disabled="emailDisabled">{{ emailBtnText }}</el-button> |
|
|
|
<el-button style="margin-left: 10px" type="text" @click="sendEmailCode" :disabled="emailDisabled">{{ emailBtnText }}</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="emailVisible = false">取 消</el-button> |
|
|
|
<el-button @click="emailVisible = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="emailSubmit">确 定</el-button> |
|
|
|
<el-button type="primary" @click="emailSubmit">确 定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog |
|
|
|
<el-dialog |
|
|
|
:title="personalInformation.phone ? '更换手机号' : '绑定手机号'" |
|
|
|
:title="personalInformation.phone ? '更换手机号' : '绑定手机号'" |
|
|
|
:visible.sync="phoneVisible" |
|
|
|
:visible.sync="phoneVisible" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-click-modal="false" |
|
|
|
@close="closePhone" |
|
|
|
@close="closePhone" |
|
|
|
width="30%"> |
|
|
|
width="30%"> |
|
|
|
<el-form ref="form" :model="form" label-width="60px"> |
|
|
|
<el-form ref="form" :model="form" label-width="60px"> |
|
|
|
<el-form-item label="手机号"> |
|
|
|
<el-form-item label="手机号"> |
|
|
|
<el-input placeholder="请输入手机号" v-model="phone" maxlength="11"></el-input> |
|
|
|
<el-input placeholder="请输入手机号" v-model="phone" maxlength="11"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="验证码"> |
|
|
|
<el-form-item label="验证码"> |
|
|
|
<div class="flex-between"> |
|
|
|
<div class="flex-between"> |
|
|
|
<el-input v-model="phoneCode" placeholder="请输入验证码" maxlength="6"></el-input> |
|
|
|
<el-input v-model="phoneCode" placeholder="请输入验证码" maxlength="6"></el-input> |
|
|
|
<el-button style="margin-left: 10px" type="text" @click="sendPhoneCode" :disabled="phoneDisabled">{{ phoneBtnText }}</el-button> |
|
|
|
<el-button style="margin-left: 10px" type="text" @click="sendPhoneCode" :disabled="phoneDisabled">{{ phoneBtnText }}</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="phoneVisible = false">取 消</el-button> |
|
|
|
<el-button @click="phoneVisible = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="phoneSubmit">确 定</el-button> |
|
|
|
<el-button type="primary" @click="phoneSubmit">确 定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog |
|
|
|
<el-dialog |
|
|
|
title="更换密码" |
|
|
|
title="更换密码" |
|
|
|
:visible.sync="passwordVisible" |
|
|
|
:visible.sync="passwordVisible" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-click-modal="false" |
|
|
|
@close="closePassword" |
|
|
|
@close="closePassword" |
|
|
|
width="30%"> |
|
|
|
width="30%"> |
|
|
|
<el-form ref="passwordForm" :model="form" label-width="60px"> |
|
|
|
<el-form ref="passwordForm" :model="form" label-width="60px"> |
|
|
|
<el-form-item label="原密码"> |
|
|
|
<el-form-item label="原密码"> |
|
|
|
<el-input type="password" v-model="passwordForm.password" placeholder="请输入原密码"></el-input> |
|
|
|
<el-input type="password" v-model="passwordForm.password" placeholder="请输入原密码"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="新密码"> |
|
|
|
<el-form-item label="新密码"> |
|
|
|
<el-input type="password" v-model="passwordForm.newPassword" placeholder="请输入新密码" @keyup.enter.native="editPassword"></el-input> |
|
|
|
<el-input type="password" v-model="passwordForm.newPassword" placeholder="请输入新密码" @keyup.enter.native="editPassword"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="新密码"> |
|
|
|
<el-form-item label="新密码"> |
|
|
|
<el-input type="password" v-model="passwordForm.reNewPassword" placeholder="请确认新密码" @keyup.enter.native="editPassword"></el-input> |
|
|
|
<el-input type="password" v-model="passwordForm.reNewPassword" placeholder="请确认新密码" @keyup.enter.native="editPassword"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="passwordVisible = false">取 消</el-button> |
|
|
|
<el-button @click="passwordVisible = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="editPassword">确 定</el-button> |
|
|
|
<el-button type="primary" @click="editPassword">确 定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
|
|
|
|
import Setting from "@/setting"; |
|
|
|
import util from "@/libs/util"; |
|
|
|
import util from "@/libs/util"; |
|
|
|
import { mapState, mapActions } from "vuex"; |
|
|
|
import { mapState, mapActions } from "vuex"; |
|
|
|
|
|
|
|
|
|
|
@ -1045,12 +1049,42 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}).catch(res => { |
|
|
|
}).catch(res => { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
goBack() { |
|
|
|
|
|
|
|
this.$router.go(-1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
|
|
|
|
.topBack { |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
top: 0; |
|
|
|
|
|
|
|
left: 0; |
|
|
|
|
|
|
|
right: 0; |
|
|
|
|
|
|
|
background-color: #ffffff; |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
height: 60px; |
|
|
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
|
|
color: #333; |
|
|
|
|
|
|
|
.back { |
|
|
|
|
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
line-height: 60px; |
|
|
|
|
|
|
|
height: 60px; |
|
|
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
|
|
margin-left: 20px; |
|
|
|
|
|
|
|
i { |
|
|
|
|
|
|
|
color: #9278ff; |
|
|
|
|
|
|
|
font-size: 20px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
.arrowTransform { |
|
|
|
.arrowTransform { |
|
|
|
transition: 0.5s; |
|
|
|
transition: 0.5s; |
|
|
|
transform-origin: center; |
|
|
|
transform-origin: center; |
|
|
@ -1066,6 +1100,7 @@ export default { |
|
|
|
.wrap { |
|
|
|
.wrap { |
|
|
|
margin: -24px -24px 20px; |
|
|
|
margin: -24px -24px 20px; |
|
|
|
padding-top: 170px; |
|
|
|
padding-top: 170px; |
|
|
|
|
|
|
|
padding-bottom: 40px; |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
flex-direction: column; |
|
|
|
flex-direction: column; |
|
|
|