实名认证修改
This commit is contained in:
		| @@ -41,7 +41,7 @@ | ||||
|           <input class="input" type="text" placeholder="请输入姓名" v-model="form.name"/> | ||||
|           <div class="form_name"><span class="red">*</span>身份证号</div> | ||||
|           <input class="input" type="idcard" placeholder="请输入18位身份证号" v-model="form.idNumber"/> | ||||
|           <div class="form_name"><span class="red">*</span>地区</div> | ||||
|           <div class="form_name"><span class="red">*</span>地区<span class="mini-text">(本地人员填户籍所在地,外地人员填常住地)</span></div> | ||||
|           <AiAreaPicker class="ai-area" v-model="form.areaId" :areaId="$areaId" :fullName.sync="form.areaName"> | ||||
|             <div class="ai-area__wrapper"> | ||||
|               <div> | ||||
| @@ -324,6 +324,10 @@ export default { | ||||
|         .red { | ||||
|           color: #FF4466; | ||||
|         } | ||||
|         .mini-text { | ||||
|           color: #999; | ||||
|           font-size: 24px; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .input { | ||||
|   | ||||
| @@ -4,46 +4,66 @@ | ||||
|       <div class="item-content mar-b8"> | ||||
|         <div class="item solid"> | ||||
|           <p class="mar-t22">头像</p> | ||||
|           <button class="user-img-div" open-type="chooseAvatar" @chooseavatar="handleWeixinSync"> | ||||
|             <img v-if="user.avatarUrl" :src="user.avatarUrl" class="user-img"> | ||||
|             <img v-else src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="" class="user-img"> | ||||
|           <button class="user-img-div" v-if="editAvatarUrl" open-type="chooseAvatar" @chooseavatar="handleWeixinSync"> | ||||
|             <img v-if="user.avatarUrl && !avatar" :src="user.avatarUrl" class="user-img"> | ||||
|             <img v-if="avatar" :src="avatar" alt="" class="user-img"> | ||||
|             <img v-if="!user.avatarUrl && !avatar" src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="" class="user-img"> | ||||
|           </button> | ||||
|           <div class="user-img-div" v-else> | ||||
|             <img v-if="user.avatarUrl && !avatar" :src="user.avatarUrl" class="user-img"> | ||||
|             <img v-else src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="" class="user-img"> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="item"> | ||||
|           <p>用户昵称</p> | ||||
|           <div class="item-right" v-if="!editNickName" @click="editNickName=true, userName = user.nickName"> | ||||
|             <div class="name">{{ user.nickName }}</div> | ||||
|           <div class="item-right" v-if="!editNickName"> | ||||
|             <p class="name">{{ user.nickName }}</p> | ||||
|           </div> | ||||
|           <input class="item-right" v-else type="text" v-model="userName" @blur="handleWeixinSync"> | ||||
|           <input class="item-right" v-else type="text" v-model="userName"> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="item-content mar-b8"> | ||||
|         <div class="item"> | ||||
|           <p>手机号</p> | ||||
|           <div class="item-right" v-if="!!!editPhone" @click="editPhone = true, userPhone = user.phone"> | ||||
|             <p class="name">{{ user.phone || '' }}</p> | ||||
|           <div class="item-right" v-if="!!!editPhone"> | ||||
|             <p class="name">{{ user.phone || ''}}</p> | ||||
|           </div> | ||||
|           <input class="item-right" v-else type="number" v-model="userPhone" @blur="handleWeixin" maxlength="11"> | ||||
|           <input class="item-right" v-else type="number" v-model="userPhone" maxlength="11"> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="item-content mar-b8" v-if="user.areaId"> | ||||
|  | ||||
|       <div class="item-content mar-b8"> | ||||
|         <div class="item solid"> | ||||
|           <p>姓名</p> | ||||
|           <div class="item-right">{{ user.realName || '' }}</div> | ||||
|           <div class="item-right" v-if="!editRealName"> | ||||
|             <p class="name">{{ user.realName || '' }}</p> | ||||
|           </div> | ||||
|           <input class="item-right" v-else type="text" v-model="userRealName" @input="idNumberInput"> | ||||
|         </div> | ||||
|         <div class="item solid"> | ||||
|           <p>身份证号</p> | ||||
|           <div class="item-right">{{ user.idNumber || '' }}</div> | ||||
|           <div class="item-right" v-if="!editIdNumber"> | ||||
|             <p class="name">{{ user.idNumber || '' }}</p> | ||||
|           </div> | ||||
|           <input class="item-right" v-else type="idNumber" v-model="userIdNumber" maxlength="18" @input="idNumberInput"> | ||||
|         </div> | ||||
|         <div class="item"> | ||||
|           <p>地区</p> | ||||
|           <div class="item-right">{{ user.areaName || '' }}</div> | ||||
|           <div class="item-right" v-if="!editArea"> | ||||
|             <p class="name">{{ user.areaName || '' }}</p> | ||||
|           </div> | ||||
|           <AiAreaPicker class="item-right" :areaId="$areaId" v-model="userAreaId" :fullName.sync="userAreaName" v-else> | ||||
|             <div class="ai-area__wrapper"> | ||||
|               <span class="label" v-if="userAreaName">{{ userAreaName }}</span> | ||||
|               <i v-else>请选择</i> | ||||
|               <u-icon name="arrow-right" color="#ddd"/> | ||||
|             </div> | ||||
|           </AiAreaPicker> | ||||
|         </div> | ||||
|          | ||||
|       </div> | ||||
|       <div class="item-content" @click="onLogout"> | ||||
|         <div class="item"> | ||||
|           <p class="login-out">退出登录</p> | ||||
|         </div> | ||||
|       <div class="btn-wrapper btn-edit"> | ||||
|         <b class="btn" @click="btnText? submit(): editBtn()">{{ btnText? '提交': '修改' }}</b> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| @@ -53,64 +73,106 @@ import {mapActions, mapState} from 'vuex' | ||||
|  | ||||
| export default { | ||||
|   name: "userInfo", | ||||
|   appName: "个人中心", | ||||
|   computed: { | ||||
|     ...mapState(['token']), | ||||
|     nickName: { | ||||
|       set(v) { | ||||
|         this.userName = v | ||||
|       }, | ||||
|       get() { | ||||
|         const {nickName} = this.user | ||||
|         return nickName | ||||
|       } | ||||
|     }, | ||||
|     phone: { | ||||
|       set(v) { | ||||
|         this.userPhone = v | ||||
|       }, | ||||
|       get() { | ||||
|         const { phone } = this.user | ||||
|         return phone | ||||
|       } | ||||
|     } | ||||
|     ...mapState(['user', 'token']), | ||||
|   }, | ||||
|   onLoad() { | ||||
|     uni.setNavigationBarTitle({  | ||||
|   onLoad(o) { | ||||
|     this.isFromTabbar = o.isFromTabbar | ||||
|     this.path = o.path | ||||
|     this.getUserInfo('qujing')  | ||||
|     uni.setNavigationBarTitle({ | ||||
|       title: '个人中心' | ||||
|     }) | ||||
|     uni.setNavigationBarColor({ | ||||
|       frontColor: "#000000", | ||||
|       backgroundColor: "#F4F6FA", | ||||
|     }) | ||||
|     this.getUserInfo() | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       editAvatarUrl: false, | ||||
|       editNickName: false, | ||||
|       user: {}, | ||||
|       editPhone: false, | ||||
|       editRealName: false, | ||||
|       editIdNumber: false, | ||||
|       editArea: false, | ||||
|       avatar: '', | ||||
|       userName: '', | ||||
|       userPhone: '' | ||||
|       userPhone: '', | ||||
|       userRealName: '', | ||||
|       userIdNumber: '', | ||||
|       userAreaId: '', | ||||
|       userAreaName: '', | ||||
|       btnText: false, | ||||
|       isFromTabbar: '', | ||||
|       path: '', | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     ...mapActions(['autoLogin']), | ||||
|     updateInfo() { | ||||
|       this.$instance.post(`/app/appwechatuser/update-nickName`, null, { | ||||
|         params: { | ||||
|           id: this.user.id, | ||||
|           nickName: this.userName ? this.userName : this.user.nickName, | ||||
|           avatarUrl: this.avatar ? this.avatar : this.user.avatarUrl, | ||||
|           phone: this.userPhone ? this.userPhone : this.user.phone, | ||||
|           areaId: this.userAreaId? this.userAreaId : this.user.areaId, | ||||
|           areaName: this.userAreaName ? this.userAreaName : this.user.areaName, | ||||
|         } | ||||
|       }).then(res => { | ||||
|         if (res?.code == 0) { | ||||
|     ...mapActions(['getUserInfo', 'autoLogin']), | ||||
|     editBtn() { | ||||
|       this.btnText = true | ||||
|       this.editAvatarUrl = true; | ||||
|       this.avatar = this.user.avatarUrl | ||||
|       this.editNickName = true; | ||||
|       this.userName = this.user.nickName | ||||
|       this.editPhone = true; | ||||
|       this.userPhone = this.user.phone | ||||
|       this.editRealName = true; | ||||
|       this.userRealName = this.user.realName | ||||
|       this.editIdNumber = true; | ||||
|       this.userIdNumber = this.user.idNumber | ||||
|       this.editArea = true | ||||
|       this.userAreaId = this.user.areaId | ||||
|       this.userAreaName = this.user.areaName | ||||
|     }, | ||||
|     submit() { | ||||
|       if(this.flag) return | ||||
|       // if(!this.avatar) { | ||||
|       //   return this.$u.toast('请上传头像') | ||||
|       // } | ||||
|       // if (!this.userName) { | ||||
|       //   return this.$u.toast('请输入用户昵称') | ||||
|       // } | ||||
|       // if (this.userName == '微信用户') { | ||||
|       //   return this.$u.toast('请修改用户昵称') | ||||
|       // } | ||||
|       // if (!this.userPhone) { | ||||
|       //   return this.$u.toast('请输入手机号') | ||||
|       // } | ||||
|       if (!this.userRealName) { | ||||
|         return this.$u.toast('请输入姓名') | ||||
|       } | ||||
|       if (!this.userIdNumber) { | ||||
|         return this.$u.toast('请输入身份证号') | ||||
|       } | ||||
|       if (!this.$idCardNoUtil.checkIdCardNo(this.userIdNumber)) { | ||||
|         return this.$u.toast('请输入正确的身份证号码') | ||||
|       } | ||||
|       if (!this.userAreaId) { | ||||
|         return this.$u.toast('请选择地区') | ||||
|       } | ||||
|  | ||||
|       this.flag = true | ||||
|       this.$instance.post(`/app/appwechatuserqujing/idNumberEdit`, { | ||||
|         avatarUrl: this.avatar, | ||||
|         nickName: this.userName, | ||||
|         phone: this.userPhone, | ||||
|         name: this.userRealName, | ||||
|         idNumber: this.userIdNumber, | ||||
|         areaId: this.userAreaId, | ||||
|         areaName: this.userAreaName | ||||
|       }).then(res=> { | ||||
|         if(res?.code==0) { | ||||
|           this.$u.toast('提交成功') | ||||
|           this.autoLogin({ loginWay:'qujing'}) | ||||
|           uni.$emit('auth') | ||||
|           setTimeout(() => { | ||||
|             if (this.isFromTabbar == 1) { | ||||
|               uni.switchTab({ url: this.path }) | ||||
|             } else { | ||||
|               uni.navigateBack() | ||||
|             } | ||||
|           }, 600); | ||||
|         } | ||||
|       }).catch(err=> { | ||||
|         this.$u.toast(err.msg) | ||||
|       }) | ||||
|     }, | ||||
|     upLoad(img) { | ||||
| @@ -133,54 +195,31 @@ export default { | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|     onLogout() { | ||||
|       uni.showModal({ | ||||
|         title: '提示', | ||||
|         content: "是否要退出登录", | ||||
|         success: res => { | ||||
|           if (res.confirm) { | ||||
|             this.$store.commit('logout') | ||||
|             this.$toast('退出成功'); | ||||
|             setTimeout(() => { | ||||
|               uni.switchTab({ | ||||
|                 url: '/pages/AppMine/AppMine' | ||||
|               }) | ||||
|             }, 500) | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     handleWeixin({ detail }) { | ||||
|       if (detail.value) { | ||||
|         this.phone = detail.value | ||||
|         this.updateInfo() | ||||
|       } | ||||
|       setTimeout(() => { | ||||
|         this.getUserInfo() | ||||
|       }, 500) | ||||
|     }, | ||||
|     handleWeixinSync({detail}) { | ||||
|       const {value: nickName, avatarUrl} = detail | ||||
|       this.autoLogin({nickName, avatarUrl}) | ||||
|       if (avatarUrl?.length) { | ||||
|         this.upLoad(avatarUrl).then(() => { | ||||
|           this.updateInfo() | ||||
|         }) | ||||
|       const { avatarUrl } = detail | ||||
|       if(avatarUrl?.length) { | ||||
|         this.upLoad(avatarUrl) | ||||
|       } | ||||
|       if (nickName) { | ||||
|         this.updateInfo() | ||||
|       } | ||||
|       setTimeout(()=> { | ||||
|         this.getUserInfo() | ||||
|       }, 500) | ||||
|     }, | ||||
|     getUserInfo() { | ||||
|       this.$instance.post(`/app/appwechatuserqujing/check`).then(res=> { | ||||
|         if(res?.data) { | ||||
|           this.user = res.data | ||||
|     handleSelectArea(v) { | ||||
|       this.userAreaName = v.areaName | ||||
|       this.userAreaId = v.id | ||||
|     }, | ||||
|     idNumberInput() { | ||||
|       if(this.userIdNumber.length == 18 && this.userRealName) { | ||||
|         if(!this.userAreaId) { | ||||
|           this.$instance.post(`/app/appresidentapplet/queryDetailByIdNumberAndName`,{ | ||||
|             name: this.userRealName, | ||||
|             idNumber: this.userIdNumber | ||||
|           }).then(res=> { | ||||
|             if(res.data && res.data.id) { | ||||
|               this.userAreaId = res.data.id | ||||
|               this.userAreaName = res.data.areaName | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @@ -189,7 +228,7 @@ export default { | ||||
|  | ||||
| .page { | ||||
|   width: 100%; | ||||
|   background-color: #F4F5FA; | ||||
|   background-color: #F5F5F5; | ||||
|  | ||||
|   .info-list { | ||||
|     padding: 50px 32px 0 32px; | ||||
| @@ -227,6 +266,31 @@ export default { | ||||
|         p { | ||||
|           width: 100%; | ||||
|         } | ||||
|  | ||||
|         .ai-area__wrapper { | ||||
|           display: flex; | ||||
|           align-items: center; | ||||
|           padding-left: 100px; | ||||
|  | ||||
|           span { | ||||
|             color: #333; | ||||
|             font-size: 30px; | ||||
|           } | ||||
|  | ||||
|           i { | ||||
|             color: #999; | ||||
|             font-size: 30px; | ||||
|           } | ||||
|  | ||||
|           image { | ||||
|             width: 16px; | ||||
|             height: 8px; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       ::v-deep .AiAreaPicker { | ||||
|         float: right; | ||||
|       } | ||||
|  | ||||
|       .user-img-div { | ||||
| @@ -251,14 +315,13 @@ export default { | ||||
|       .mar-t22 { | ||||
|         margin-top: 44px; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|       .login-out { | ||||
|         width: 100%; | ||||
|         font-size: 34px; | ||||
|         text-align: center; | ||||
|         font-family: PingFangSC-Regular; | ||||
|         color: #4181FF; | ||||
|       } | ||||
|     .login-out { | ||||
|       width: 100%; | ||||
|       font-size: 30px; | ||||
|       text-align: center; | ||||
|       color: #4181FF; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -311,12 +374,8 @@ export default { | ||||
|     color: #197DF0; | ||||
|   } | ||||
|  | ||||
|   .editNickName { | ||||
|     text-align: right; | ||||
|     font-size: 28px; | ||||
|   } | ||||
|   .solid { | ||||
|     border-bottom: 1px solid #eee; | ||||
|   .btn-edit { | ||||
|     background: #FFF; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user