433 lines
17 KiB
Vue
433 lines
17 KiB
Vue
<template>
|
||
<view class="pad-x120">
|
||
<!-- 头部 -->
|
||
<status-nav navBarTitle="基本信息"></status-nav>
|
||
<view class="content" :style="{'padding-top':statusHeight+50+'px'}" v-if="isLoding">
|
||
<view class="notice-tips color-red font24" v-if="userInfo.check_info.status==-1">
|
||
<text>温馨提示:资料修改不通过,原因是{{userInfo.check_info.refund_reason}}</text>
|
||
</view>
|
||
<view class="information-from font24">
|
||
<view class="item">
|
||
<view class="title">头像</view>
|
||
<view class="cover" @tap="changeImg('cover')">
|
||
<image :src="userInfo.headimgurl" mode="aspectFill"></image>
|
||
</view>
|
||
</view>
|
||
<view class="item" @tap="editEv(0,'nickname')">
|
||
<view class="title">昵称</view>
|
||
<view class="msg font24">{{userInfo.nickname}}</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">技术岗位</view>
|
||
<view class="msg picker-msg font24">
|
||
{{userInfo.position_name}}
|
||
<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.position_name!==userInfo.check_info.position_name">{{userInfo.check_info.position_name}}</text>
|
||
<picker mode="selector" :range="positionList" @change="bindPositionChange" :value="positionIndex" :range-key="'name'">
|
||
<view class="name">
|
||
<text class="font26">{{positionList[positionIndex].name}}</text>
|
||
<image src="/static/icon/icon-arrow-02.png" mode="aspectFit"></image>
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">班组</view>
|
||
<view class="msg picker-msg font24">
|
||
{{userInfo.team_name}}
|
||
<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.team_name!==userInfo.check_info.team_name">{{userInfo.check_info.team_name}}</text>
|
||
<picker mode="selector" :range="teamList" @change="bindTeamChange" :value="teamIndex" :range-key="'name'">
|
||
<view class="name">
|
||
<text class="font26">{{teamList[teamIndex].name}}</text>
|
||
<image src="/static/icon/icon-arrow-02.png" mode="aspectFit"></image>
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
|
||
<view class="item" @tap="editEv(12,'certificate')" v-if="userInfo.role==1">
|
||
<view class="title">证书名称</view>
|
||
<view class="msg font24">{{userInfo.certificate}}</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(2,'pay')" v-if="userInfo.role==1">
|
||
<view class="title">工资</view>
|
||
<view class="msg font24">{{userInfo.pay}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.pay!==userInfo.check_info.pay">{{userInfo.check_info.pay}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(3,'real_name')" v-if="userInfo.role==1">
|
||
<view class="title">姓名</view>
|
||
<view class="msg font24">{{userInfo.real_name}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.real_name!==userInfo.check_info.real_name">{{userInfo.check_info.real_name}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(4,'mobile')" v-if="userInfo.role==1">
|
||
<view class="title">电话号码</view>
|
||
<view class="msg font24">{{userInfo.mobile}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.mobile!==userInfo.check_info.mobile">{{userInfo.check_info.mobile}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(10,'card_number')" v-if="userInfo.role==1">
|
||
<view class="title">身份证号</view>
|
||
<view class="msg font24">{{userInfo.card_number}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.card_number!==userInfo.check_info.card_number">{{userInfo.check_info.card_number}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">身份证正面</view>
|
||
<view class="msg font24" @tap="changeImg('positive')">
|
||
<image :src="baseHttps+userInfo.id_front" mode="widthFix"></image>
|
||
<view class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.id_front!==userInfo.check_info.id_front">
|
||
<image :src="baseHttps+userInfo.check_info.id_front" mode="widthFix"></image>
|
||
</view>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">身份证反面</view>
|
||
<view class="msg font24" @tap="changeImg('positive')">
|
||
<image :src="baseHttps+userInfo.id_back" mode="widthFix"></image>
|
||
<view class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.id_back!==userInfo.check_info.id_back">
|
||
<image :src="baseHttps+userInfo.check_info.id_back" mode="widthFix"></image>
|
||
</view>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(5,'emergency_contact')" v-if="userInfo.role==1">
|
||
<view class="title">紧急联系人</view>
|
||
<view class="msg font24">{{userInfo.emergency_contact}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.emergency_contact!==userInfo.check_info.emergency_contact">{{userInfo.check_info.emergency_contact}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(6,'emergency_phone')" v-if="userInfo.role==1">
|
||
<view class="title">联系人电话</view>
|
||
<view class="msg font24">{{userInfo.emergency_phone}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.emergency_phone!==userInfo.check_info.emergency_phone">{{userInfo.check_info.emergency_phone}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(7,'bank_card_name')" v-if="userInfo.role==1">
|
||
<view class="title">银行卡姓名</view>
|
||
<view class="msg font24">{{userInfo.bank_card_name}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.bank_card_name!==userInfo.check_info.bank_card_name">{{userInfo.check_info.bank_card_name}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(8,'bank_card_number')" v-if="userInfo.role==1">
|
||
<view class="title">银行卡账号</view>
|
||
<view class="msg font24">{{userInfo.bank_card_number}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.bank_card_number!==userInfo.check_info.bank_card_number">{{userInfo.check_info.bank_card_number}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(9,'bank_name')" v-if="userInfo.role==1">
|
||
<view class="title">开户行</view>
|
||
<view class="msg font24">{{userInfo.bank_name}}<text class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.bank_name!==userInfo.check_info.bank_name">{{userInfo.check_info.bank_name}}</text></view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">银行卡照片</view>
|
||
<view class="msg font24" @tap="changeImg('bank')">
|
||
<image :src="baseHttps+userInfo.bank_card_img" mode="widthFix"></image>
|
||
<view class="director-arrow" v-if="userInfo.check_info.status==0 && userInfo.bank_card_img!==userInfo.check_info.bank_card_img">
|
||
<image :src="baseHttps+userInfo.check_info.bank_card_img" mode="widthFix"></image>
|
||
</view>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(11,'work_experience')" v-if="userInfo.role==1">
|
||
<view class="title">工作经验</view>
|
||
<view class="msg font24">{{userInfo.work_experience}}</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" v-if="userInfo.role==1">
|
||
<view class="title">现住地址</view>
|
||
<view class="msg picker-msg font24">
|
||
{{userInfo.province}}{{userInfo.city}}{{userInfo.area}}
|
||
<text style="opacity: 0;" v-if="userInfo.province==''&&userInfo.city==''&&userInfo.area==''">您还未填写现住地址</text>
|
||
<picker mode="region" @change="changeAddress">
|
||
<view class="addr-input">
|
||
<view class="input-box">
|
||
<input class="input-flex clips1" type="text" v-model="userInfo.province" disabled="true">
|
||
<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
|
||
</view>
|
||
<view class="input-box">
|
||
<input class="input-flex clips1" type="text" v-model="userInfo.city" disabled="true">
|
||
<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
|
||
</view>
|
||
<view class="input-box">
|
||
<input class="input-flex clips1" type="text" v-model="userInfo.area" disabled="true">
|
||
<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
|
||
</view>
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
<view class="item" @tap="editEv(1,'address_now')" v-if="userInfo.role==1">
|
||
<view class="title">详细地址</view>
|
||
<view class="msg font24">{{userInfo.address_now}}</view>
|
||
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 修改弹窗 -->
|
||
<view class="pop-up-bg" v-if="ifShow">
|
||
<view class="edit-box bg-white">
|
||
<image class="close-btn" src="/static/icon/icon-close-btn.png" mode="aspectFit" @tap="closeEdit"></image>
|
||
<view class="title font36">{{editTitle}}</view>
|
||
<!-- 其他显示 -->
|
||
<input class="input font26" type="text" v-model="editMsg" :placeholder="`请输入${editTitle}`" placeholder-style="color:rgba(51,51,51,.4)">
|
||
<view class="submit-btn font30 color-white" @tap="submitEv">提交</view>
|
||
</view>
|
||
</view>
|
||
<!-- 尾部 -->
|
||
<tabbar :userType="userType" current="2"></tabbar>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
import tabbar from '@/components/tabbar/tabbar';
|
||
export default {
|
||
components:{
|
||
tabbar
|
||
},
|
||
data() {
|
||
return {
|
||
statusHeight:uni.getSystemInfoSync().statusBarHeight, //状态栏高度
|
||
userType:'worker', //账户类型 工人:worker 负责人:director
|
||
userInfo:{}, //用户信息
|
||
editTitle:'', //修改标题
|
||
editMsg:'', //修改内容
|
||
field:'', //修改栏目
|
||
positionList:[], //技术岗位
|
||
positionIndex:0, //当前选择
|
||
teamList:[], //班组岗位
|
||
teamIndex:0, //当前选择
|
||
ifShow:false, //是否展示弹窗
|
||
isLoding:false, //是否记载完成
|
||
baseHttps:`${getApp().globalData.hostapi}`,
|
||
}
|
||
},
|
||
onLoad() {
|
||
// 获取用户信息
|
||
this.getUserInfo();
|
||
// 获取技术岗位
|
||
this.getPositionList();
|
||
},
|
||
methods: {
|
||
// 获取用户信息
|
||
getUserInfo(){
|
||
this.$requst.post('/api/v1/user/info').then(res=>{
|
||
if(res.code==0){
|
||
console.log(res,'用户信息');
|
||
if(res.data.role!==uni.getStorageSync('worker_role')){
|
||
this.$toolAll.tools.showToast('身份已变更,正在切换');
|
||
setTimeout(()=>{
|
||
uni.reLaunch({
|
||
url:'/pages/pagehome/pagehome'
|
||
})
|
||
},2000)
|
||
}
|
||
this.userInfo = res.data;
|
||
this.isLoding = true;
|
||
// 获取班组
|
||
this.getTeamList();
|
||
this.positionIndex = this.positionList.findIndex(item=> item.id === res.data.position);
|
||
this.teamIndex = this.teamList.findIndex(item=> item.id === res.data.outsource_id);
|
||
}
|
||
})
|
||
},
|
||
|
||
// 获取技术岗位
|
||
getPositionList(){
|
||
this.$requst.get('/api/v1/common/position-list').then(res=>{
|
||
if(res.code == 0){
|
||
console.log(res,'技术岗位');
|
||
this.positionList = res.data.list;
|
||
}
|
||
})
|
||
},
|
||
|
||
// 选择技术岗位
|
||
bindPositionChange(e){
|
||
this.positionIndex = e.detail.value;
|
||
this.field = 'position';
|
||
this.editMsg = this.positionList[this.positionIndex].id;
|
||
setTimeout(()=>{
|
||
// 提交修改
|
||
this.submitEv();
|
||
},200)
|
||
},
|
||
|
||
// 获取班组
|
||
getTeamList(){
|
||
let worksite_id = this.userInfo.worksite_id;
|
||
this.$requst.get('/api/v1/common/team',{worksite_id:worksite_id}).then(res=>{
|
||
if(res.code == 0){
|
||
console.log(res,'班组');
|
||
this.teamList = res.data;
|
||
}
|
||
})
|
||
},
|
||
|
||
// 选择班组
|
||
bindTeamChange(e){
|
||
this.teamIndex = e.detail.value;
|
||
this.field = 'outsource_id';
|
||
this.editMsg = this.teamList[this.teamIndex].id;
|
||
setTimeout(()=>{
|
||
// 提交修改
|
||
this.submitEv();
|
||
},200)
|
||
},
|
||
|
||
// 打开修改弹窗
|
||
editEv(num,type){
|
||
this.ifShow = true;
|
||
this.field = type;
|
||
switch (num){
|
||
case 0:
|
||
this.editTitle = '昵称';
|
||
this.editMsg = this.userInfo.nickname;
|
||
break;
|
||
case 1:
|
||
this.editTitle = '详细地址';
|
||
this.editMsg = this.userInfo.address_now;
|
||
break;
|
||
case 2:
|
||
this.editTitle = '工资';
|
||
this.editMsg = this.userInfo.pay;
|
||
break;
|
||
case 3:
|
||
this.editTitle = '姓名';
|
||
this.editMsg = this.userInfo.real_name;
|
||
break;
|
||
case 4:
|
||
this.editTitle = '电话号码';
|
||
this.editMsg = this.userInfo.mobile;
|
||
break;
|
||
case 5:
|
||
this.editTitle = '紧急联系人';
|
||
this.editMsg = this.userInfo.emergency_contact;
|
||
break;
|
||
case 6:
|
||
this.editTitle = '联系人电话';
|
||
this.editMsg = this.userInfo.emergency_phone;
|
||
break;
|
||
case 7:
|
||
this.editTitle = '银行卡姓名';
|
||
this.editMsg = this.userInfo.bank_card_name;
|
||
break;
|
||
case 8:
|
||
this.editTitle = '银行卡账号';
|
||
this.editMsg = this.userInfo.bank_card_number;
|
||
break;
|
||
case 9:
|
||
this.editTitle = '开户行';
|
||
this.editMsg = this.userInfo.bank_name;
|
||
break;
|
||
case 10:
|
||
this.editTitle = '身份证号';
|
||
this.editMsg = this.userInfo.card_number;
|
||
break;
|
||
case 11:
|
||
this.editTitle = '工作经验';
|
||
this.editMsg = this.userInfo.work_experience;
|
||
break;
|
||
case 12:
|
||
this.editTitle = '证书名称';
|
||
this.editMsg = this.userInfo.certificate;
|
||
break;
|
||
}
|
||
},
|
||
|
||
// 关闭修改弹窗
|
||
closeEdit(){
|
||
this.ifShow = false;
|
||
this.editTitle = '';
|
||
this.field = '';
|
||
this.editMsg= '';
|
||
},
|
||
|
||
// 选择图片
|
||
changeImg(type){
|
||
uni.chooseImage({
|
||
count: 1, //默认9
|
||
sourceType: ['album','camera'], //从相册选择
|
||
success: (res)=> {
|
||
this.stagingImg = res.tempFilePaths[0];
|
||
// 上传图片
|
||
this.uploadImg(type);
|
||
}
|
||
})
|
||
},
|
||
|
||
// 上传图片
|
||
uploadImg(type){
|
||
uni.showLoading({
|
||
title: '上传中'
|
||
});
|
||
this.$requst.upload('/api/v1/file/upload/image',{path:this.stagingImg}).then(res=>{
|
||
if(res.code==0) {
|
||
this.editMsg = res.data.src
|
||
if(type=='cover'){
|
||
this.field = 'headimgurl';
|
||
}
|
||
if(type=='positive'){
|
||
this.field = 'id_front';
|
||
}
|
||
if(type=='back'){
|
||
this.field = 'id_back';
|
||
}
|
||
if(type=='bank'){
|
||
this.field = 'bank_card_img';
|
||
}
|
||
setTimeout(()=>{
|
||
// 提交修改
|
||
this.submitEv();
|
||
},200)
|
||
}
|
||
uni.hideLoading();
|
||
})
|
||
},
|
||
|
||
// 选择省市区
|
||
changeAddress(e){
|
||
this.userInfo.province = e.detail.value[0];
|
||
this.userInfo.city = e.detail.value[1];
|
||
this.userInfo.area = e.detail.value[2];
|
||
this.field = 'address';
|
||
this.editMsg = e.detail.value[0]+e.detail.value[1]+e.detail.value[2];
|
||
setTimeout(()=>{
|
||
// 提交修改
|
||
this.submitEv();
|
||
},200)
|
||
},
|
||
|
||
// 提交修改
|
||
submitEv(){
|
||
let params = {
|
||
field:this.field,
|
||
value:this.editMsg!==""?this.editMsg:this.positionList[this.positionIndex].id
|
||
}
|
||
this.$requst.post('/api/v1/worker/update-info',params).then(res=>{
|
||
if(res.code==0){
|
||
this.$toolAll.tools.showToast('提交成功');
|
||
setTimeout(()=>{
|
||
this.ifShow = false;
|
||
// 获取用户信息
|
||
this.getUserInfo();
|
||
},200)
|
||
}else{
|
||
this.$toolAll.tools.showToast(res.msg);
|
||
}
|
||
})
|
||
},
|
||
|
||
// 图片预览
|
||
previewImageEv(url) {
|
||
//uniapp预览轮播图
|
||
uni.previewImage({
|
||
current: 0, //预览图片的下标
|
||
urls: [url] //预览图片的地址,必须要数组形式,如果不是数组形式就转换成数组形式就可以
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style scoped>
|
||
|
||
</style> |