个人中心、数据分类等修复

dev
Jo 3 years ago
parent bc4b696dd7
commit fc8f44b6d8
  1. BIN
      src/assets/img/trash.png
  2. 30
      src/layouts/footer/index.vue
  3. 9
      src/layouts/home/index.vue
  4. 31
      src/pages/account/login/index.vue
  5. 16
      src/pages/data/list/index.vue
  6. 50
      src/pages/setting/person/info.vue

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

@ -1,14 +1,18 @@
<!-- <!--
* @Author: your name * @Author: Yujialong
* @Date: 2021-11-03 14:33:21 * @Date: 2021-11-03 14:33:21
* @LastEditTime: 2021-11-04 14:00:37 * @LastEditTime: 2021-11-04 14:00:37
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: \questionnaired:\code\FE_huoran_data\src\layouts\footer\index.vue
--> -->
<template> <template>
<div> <div class="footer">
<div class="info">
<span class="m-r-20">客服邮箱service@huorantech.cn</span>
<span>联系人林经理 18818574533</span>
</div>
<div class="copyright"> <div class="copyright">
<span>© Copyright 2021 Dataforward 数据前瞻</span>
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">粤ICP备20072679号</a> <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">粤ICP备20072679号</a>
</div> </div>
</div> </div>
@ -29,17 +33,31 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.footer{
padding: 17px 0 9px;
text-align: center;
background-color: #0F1D2E;
.info{
margin-bottom: 7px;
font-size: 14px;
line-height: 20px;
color: #D7DFE7;
}
.copyright{ .copyright{
padding: 18px 0;
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
background-color: #F3F6FA; line-height: 17px;
span{
margin-right: 20px;
color: #757F8A;
}
a{ a{
color:#B1B4B8; color:#757F8A;
font-size: 12px; font-size: 12px;
&:hover{ &:hover{
opacity: .8; opacity: .8;
} }
} }
} }
}
</style> </style>

@ -17,7 +17,7 @@
</keep-alive> </keep-alive>
</transition> </transition>
<el-backtop target=".content"></el-backtop> <el-backtop target=".content"></el-backtop>
<v-footer class="footer"></v-footer> <v-footer></v-footer>
</div> </div>
</div> </div>
</div> </div>
@ -26,7 +26,6 @@
<script> <script>
import vHead from '../header' import vHead from '../header'
import vFooter from '../footer' import vFooter from '../footer'
import Setting from '@/setting'
export default { export default {
data() { data() {
return { return {
@ -47,13 +46,13 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main{ .main{
min-height: 100%; min-height: calc(100% - 64px);
.layout{ .layout{
margin-top: 64px; padding-top: 64px;
} }
.view{ .view{
min-width: $min-width; min-width: $min-width;
min-height: calc(100vh - 52px); min-height: calc(100vh - 134px);
padding: 12px 80px 0; padding: 12px 80px 0;
margin: 0 auto; margin: 0 auto;
background-color: #F3F6FA; background-color: #F3F6FA;

@ -33,7 +33,7 @@
</div> </div>
</div> </div>
<el-dialog title="绑定手机号" :visible.sync="phoneVisible" :close-on-click-modal="false" @close="closePhone" width="30%"> <el-dialog title="绑定手机号" :visible.sync="phoneVisible" :close-on-click-modal="false" width="30%">
<el-form ref="form" label-width="60px"> <el-form ref="form" label-width="60px">
<el-form-item label="手机号"> <el-form-item label="手机号">
<el-input style="width: 394px;" placeholder="请输入手机号" v-model="phone" maxlength="11"></el-input> <el-input style="width: 394px;" placeholder="请输入手机号" v-model="phone" maxlength="11"></el-input>
@ -51,7 +51,11 @@
</span> </span>
</el-dialog> </el-dialog>
<v-footer class="footer"></v-footer> <div class="footer">
<div class="copyright">
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">粤ICP备20072679号</a>
</div>
</div>
</div> </div>
</template> </template>
@ -115,6 +119,7 @@ export default {
let redirect = this.$route.query.redirect ? decodeURIComponent(this.$route.query.redirect) : '/index' let redirect = this.$route.query.redirect ? decodeURIComponent(this.$route.query.redirect) : '/index'
this.$router.replace(redirect) this.$router.replace(redirect)
}).catch(res => { }).catch(res => {
//
if(res && res.status == 30001){ if(res && res.status == 30001){
this.phoneVisible = true this.phoneVisible = true
} }
@ -149,17 +154,12 @@ export default {
},1000) },1000)
} }
}, },
closePhone(){
if(!this.emailDisabled){
this.emailCode = ''
}
},
sendPhoneCode(){ sendPhoneCode(){
if(!this.phone) return util.warningMsg('请输入手机号') if(!this.phone) return util.warningMsg('请输入手机号')
if(!/^1[3456789]\d{9}$/.test(this.phone)) return util.warningMsg('请输入正确的手机号') if(!/^1[3456789]\d{9}$/.test(this.phone)) return util.warningMsg('请输入正确的手机号')
let data = { let data = {
phone: this.phone, phone: this.phone,
types: 2 types: 2 // 12
} }
this.$post(this.api.sendPhoneOrEmailCode,data).then(res => { this.$post(this.api.sendPhoneOrEmailCode,data).then(res => {
if(res.message.opener){ if(res.message.opener){
@ -187,7 +187,7 @@ export default {
util.successMsg('绑定成功') util.successMsg('绑定成功')
this.form.phone = this.phone this.form.phone = this.phone
this.phoneVisible = false this.phoneVisible = false
//
this.$get(this.api.isClient).then(res => { this.$get(this.api.isClient).then(res => {
this.setCustomer(res.customer) this.setCustomer(res.customer)
}).catch(res => {}) }).catch(res => {})
@ -328,6 +328,7 @@ export default {
} }
} }
} }
}
.footer{ .footer{
z-index: 3; z-index: 3;
position: fixed; position: fixed;
@ -335,5 +336,17 @@ export default {
left: 0; left: 0;
width: 100%; width: 100%;
} }
.copyright{
padding: 18px 0;
font-size: 12px;
text-align: center;
background-color: #F3F6FA;
a{
color:#B1B4B8;
font-size: 12px;
&:hover{
opacity: .8;
}
}
} }
</style> </style>

@ -34,20 +34,18 @@
<template v-if="subItem3.children"> <template v-if="subItem3.children">
<el-submenu :index="subItem3.id" :key="subItem3.id"> <el-submenu :index="subItem3.id" :key="subItem3.id">
<template slot="title"> <template slot="title">
<!-- <i :class="item.icon"></i> -->
<!-- <span slot="title">{{ subItem2.title }}</span> -->
{{ subItem3.categoryName }} {{ subItem3.categoryName }}
</template> </template>
<template v-for="subItem4 in subItem3.children"> <template v-for="subItem4 in subItem3.children">
<!-- 如果第五层有子菜单则继续循环 --> <!-- 如果第五层有子菜单则继续循环 -->
<template v-if="subItem4.children"> <template v-if="subItem4.children && subItem4.children.length">
<el-submenu :index="subItem4.id" :key="subItem4.id"> <el-submenu :index="subItem4.id" :key="subItem4.id">
<template slot="title"> <template slot="title">
{{ subItem4.categoryName }} {{ subItem4.categoryName }}
</template> </template>
<el-menu-item class="level-6" v-for="(subItem5,i) in subItem4.children" :key="i" :index="subItem5.id"> <template class="level-6" v-for="subItem5 in subItem4.children" :index="subItem5.id">
<!-- 如果第六层有子菜单则继续循环 --> <!-- 如果第六层有子菜单则继续循环 -->
<template v-if="subItem5.children"> <template v-if="subItem5.children && subItem5.children.length">
<el-submenu :index="subItem5.id" :key="subItem5.id"> <el-submenu :index="subItem5.id" :key="subItem5.id">
<template slot="title"> <template slot="title">
{{ subItem5.categoryName }} {{ subItem5.categoryName }}
@ -56,8 +54,8 @@
</el-submenu> </el-submenu>
</template> </template>
<!-- 如果第五层没有子菜单 --> <!-- 如果第五层没有子菜单 -->
<el-menu-item v-else :index="subItem5.id" :key="subItem5.id">{{ subItem5.categoryName }}</el-menu-item> <el-menu-item :index="subItem5.id" :key="subItem5.id">{{ subItem5.categoryName }}</el-menu-item>
</el-menu-item> </template>
</el-submenu> </el-submenu>
</template> </template>
<!-- 如果第五层没有子菜单 --> <!-- 如果第五层没有子菜单 -->
@ -521,7 +519,6 @@ export default {
display: flex; display: flex;
/deep/.left{ /deep/.left{
margin-right: 20px; margin-right: 20px;
.menu{ .menu{
width: 200px; width: 200px;
overflow: hidden; overflow: hidden;
@ -540,6 +537,8 @@ export default {
.el-submenu.is-active{ .el-submenu.is-active{
.el-submenu__title{ .el-submenu__title{
&+.el-menu .el-submenu__title{ &+.el-menu .el-submenu__title{
height: 50px;
line-height: 50px;
background-color: rgba(147,184,255,.15); background-color: rgba(147,184,255,.15);
} }
i{ i{
@ -555,6 +554,7 @@ export default {
padding-right: 0; padding-right: 0;
.el-submenu__title { .el-submenu__title {
padding-left: 10px !important; padding-left: 10px !important;
color: #fff;
} }
} }
} }

@ -57,7 +57,7 @@
</div> </div>
<div class="line"> <div class="line">
<li> <li>
<label></label> <label>身份</label>
<div> <div>
<el-input size="small" v-model="form.idNumber" clearable></el-input> <el-input size="small" v-model="form.idNumber" clearable></el-input>
</div> </div>
@ -75,7 +75,7 @@
</div> </div>
<div class="flex j-between a-center m-r-20"> <div class="flex j-between a-center m-r-20">
<h6 class="l-title"><img src="@/assets/img/info2.png" alt=""> 个人档案</h6> <h6 class="l-title"><img src="@/assets/img/info2.png" alt=""> 个人档案</h6>
<el-button type="text" icon="el-icon-plus" @click="addArch">新增</el-button> <el-button type="text" icon="el-icon-plus" style="margin-left: 16px" @click="addArch">新增</el-button>
</div> </div>
<div class="page-content"> <div class="page-content">
<div class="archives" v-for="(archive,index) in archivesList" :key="index" v-show="index == 0 || showArch"> <div class="archives" v-for="(archive,index) in archivesList" :key="index" v-show="index == 0 || showArch">
@ -83,56 +83,45 @@
<div class="line"> <div class="line">
<li> <li>
<label>职业</label> <label>职业</label>
<div>
<el-select size="small" v-model="archive.personalCareerId" placeholder="选择职业"> <el-select size="small" v-model="archive.personalCareerId" placeholder="选择职业">
<el-option v-for="item in occupationList" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in occupationList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</div>
</li> </li>
<li> <li>
<label>国家</label> <label>所属国家</label>
<div>
<el-select size="small" v-model="form.countries" placeholder> <el-select size="small" v-model="form.countries" placeholder>
<el-option v-for="item in countryList" :key="item.value" :label="item.label" :value="item.label" ></el-option> <el-option v-for="item in countryList" :key="item.value" :label="item.label" :value="item.label" ></el-option>
</el-select> </el-select>
</div>
</li> </li>
<li> <li>
<label>学校名称</label> <label>学校名称</label>
<div>
<el-select size="small" v-model="archive.schoolId" filterable placeholder="选择学校" @change="id => getSchoolName(id,index)"> <el-select size="small" 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-option v-for="item in schoolList" :key="item.value" :label="item.schoolName" :value="item.schoolId"></el-option>
</el-select> </el-select>
</div>
</li> </li>
</div> </div>
<div class="line" style="margin-bottom: 0"> <div class="line" style="margin-bottom: 0">
<li> <li>
<label>专业学科</label> <label>专业学科</label>
<div>
<el-select size="small" v-model="archive.disciplineId" placeholder="选择专业学科" @change="id => getItemProfessionalClass(id,index)" @clear="() => clearItemClass(index)"> <el-select size="small" 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-option v-for="item in subjectList" :key="item.value" :label="item.disciplineName" :value="item.disciplineId"></el-option>
</el-select> </el-select>
</div>
</li> </li>
<li> <li>
<label>专业类</label> <label>专业类</label>
<div>
<el-select size="small" v-model="archive.professionalClassId" placeholder="选择专业类" :disabled="archive.disciplineId ? false : true" @change="id => getItemProfessional(id,index)" @clear="() => clearItemProfess(index)"> <el-select size="small" 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-option v-for="item in archive.ProfessionalClassList" :key="item.professionalClassId" :label="item.professionalClassName" :value="item.professionalClassId"></el-option>
</el-select> </el-select>
</div>
</li> </li>
<li> <li>
<label>专业</label> <label>专业</label>
<div>
<el-select size="small" v-model="archive.professionalId" placeholder="选择专业" :disabled="archive.professionalClassId ? false : true" @change="getItemStuGrade"> <el-select size="small" 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-option v-for="item in archive.ProfessionalList" :key="item.professionalId" :label="item.professionalName" :value="item.professionalId"></el-option>
</el-select> </el-select>
</div>
</li> </li>
</div> </div>
</ul> </ul>
<img class="del" src="@/assets/img/trash.png" alt="" v-if="index" @click="delArchive(index)">
</div> </div>
<div class="fold" v-if="archivesList.length > 1"> <div class="fold" v-if="archivesList.length > 1">
<span :class="{active: showArch}" @click="showArch = !showArch"> <span :class="{active: showArch}" @click="showArch = !showArch">
@ -183,7 +172,7 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<el-button size="small" v-throttle @click="save">取消</el-button> <el-button size="small" v-throttle @click="$router.back()">取消</el-button>
<el-button type="primary" size="small" v-throttle @click="save">更新</el-button> <el-button type="primary" size="small" v-throttle @click="save">更新</el-button>
</div> </div>
@ -366,6 +355,7 @@ export default {
this.getProvince() this.getProvince()
this.getSchoolData() this.getSchoolData()
this.getSubject() this.getSubject()
if (!this.archivesList.length) this.archivesList = [JSON.parse(JSON.stringify(this.archivesForm))]
}, },
methods: { methods: {
...mapActions('user', [ ...mapActions('user', [
@ -534,6 +524,9 @@ export default {
this.showArch = true this.showArch = true
this.concatArch() this.concatArch()
}, },
delArchive(i) {
this.archivesList.splice(i, 1)
},
bindEmail() { bindEmail() {
this.email = this.form.email this.email = this.form.email
this.emailVisible = true this.emailVisible = true
@ -817,8 +810,15 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.scroll{
height: calc(100vh - 202px);
overflow: auto;
}
.page{ .page{
margin-bottom: 12px; margin-bottom: 12px;
/deep/.el-input__inner{
border-color: #CACFDB;
}
.list{ .list{
.line{ .line{
display: flex; display: flex;
@ -865,15 +865,29 @@ export default {
} }
} }
} }
} }
.archives{ .archives{
position: relative;
padding: 16px 30px; padding: 16px 30px;
margin-bottom: 6px; margin-bottom: 6px;
border-radius: 4px; border-radius: 4px;
background-color: #FAFAFA; background-color: #FAFAFA;
.del{
position: absolute;
top: 48px;
right: 55px;
cursor: pointer;
}
li{
width: 30%;
margin-right: 32px;
}
.el-select{
flex: 1;
}
} }
.fold{ .fold{
margin-top: 20px;
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
color: #006EFF; color: #006EFF;
@ -889,9 +903,11 @@ export default {
} }
} }
.btns{ .btns{
width: 100%;
padding: 12px 0; padding: 12px 0;
text-align: center; text-align: center;
background-color: #fff; background-color: #fff;
box-shadow: 0px 0px 10px 0px rgba(188, 201, 218, 0.4);
.el-button{ .el-button{
width: 80px; width: 80px;
} }

Loading…
Cancel
Save