<template> <h-view id="choose-user" class="public-style" title="请选择登录用户"> <h-header class="bar-custom"> <div slot="left" class="h-header-btn"> <img src="@/assets/userBind/arrow.png" @click="$router.replace('/login')" /> </div> <div slot="center" class="top-word">请选择登录用户</div> </h-header> <scroll ref="scrollLists" :updateData="[prolists]" :pullUp="false"> <div class="scroll-box"> <div class="box" v-for="item of list" :key="item.bp_id" @click="doCheck(item.bp_id)" > <div class="name"> <img v-if="item.bp_class == 'NP'" src="../assets/login/person.png" alt="自然人" /> <img v-else src="../assets/login/bank.png" alt="bank" /> <span>{{ item.bp_name }}</span> </div> <div v-show="item.checked"> <img src="../assets/login/gou2.png" alt="gou2" /> </div> </div> </div> </scroll> <button class="submit" :class="{ checked: hasChecked > -1 }" @click="next"> <img src="../assets/login/gou1.png" alt="自然人" /> 确 认 </button> </h-view> </template> <script> export default { name: 'choose-user', data() { return { prolists: [], list: [] } }, computed: { hasChecked() { return this.list.findIndex(item => item.checked); }, }, created() { this.getList(); }, methods: { async getList() { let url = process.env.basePath + 'user_bp_query'; let params = { app_user_id: window.localStorage.getItem('app_user_id') }; try { hlsPopup.showLoading('请稍等'); let query = await this.hlsHttp.post(url, params); if (query.result == 'S') { this.hlsPopup.hideLoading(); // 自己添加认证文字 let register = { NP_NO: "个人待认证", NP_YES: "个人认证通过", ORG_YES: "企业认证通过", ORG_NO: "企业待认证", ORG_L_NO: "法人待认证", ORG_L_YES: "法人认证通过", ORG_AUTH_NO: "授权人待认证", ORG_AUTH_YES: "授权人认证通过" } query.lists = query.lists.map(item => { item.bp_identity_name = register[item.bp_identity]; return item; }) window.localStorage.setItem('bind-user-list', JSON.stringify(query.lists)); this.list = query.lists; // 一个都没有,直接跳过 if (!this.list.length) { window.localStorage.setItem('now_user_bp_bind_id', JSON.stringify({})); this.$router.push('tab'); } // 如果只有一个,就不用选,直接跳 if (this.list.length === 1) { this.list[0].checked = true; this.next(); } } else { this.hlsPopup.hideLoading(); this.hlsPopup.showLongCenter(res.message); } } catch (error) { this.hlsPopup.hideLoading(); } }, doCheck(id) { this.list = this.list.map(item => { item.checked = item.bp_id == id; return item; }) }, next() { let index = this.hasChecked; if (index > -1) { window.localStorage.setItem('now_user_bp_bind_id', JSON.stringify(this.list[index])); this.$router.push('tab'); } else { this.hlsPopup.showLongCenter('请选择'); } } }, } </script> <style lang='less'> #choose-user { background-color: rgb(242, 242, 242); .scrollContent { background-color: rgb(242, 242, 242); } .scroll-box { padding: 8px; .box { display: flex; justify-content: space-between; align-items: center; width: 99.9%; height: 60px; padding: 0 20px 0 10px; background-color: #fff; border-radius: 8px; font-size: 80%; color: rgb(58, 58, 58); margin-bottom: 0.15rem; img { height: 20px; vertical-align: text-bottom; } } } .submit { position: absolute; box-sizing: border-box; height: 35px; bottom: 10px; left: 50%; transform: translateX(-50%); color: white; padding: 6px 40px; font-size: 85%; border-radius: 20px; background-color: rgb(194, 199, 204); img { height: 18px; vertical-align: text-bottom; } } .checked { background-color: #1d3fff; } .content { position: absolute; top: 0; } .scrollContent { //padding-top: 1.92rem; padding-bottom: 20px; } } .platform-ios { #query { .scrollContent { padding-top: 2.32rem; } } } // iPhoneX适配 @media (device-width: 375px) and (device-height: 812px) and (-webkit-min-device-pixel-ratio: 3) { .platform-ios { #query { .scrollContent { padding-top: 2.72rem; } } } #choose-user .submit { bottom: 44px; } } // iPhoneXR适配 @media (device-width: 414px) and (device-height: 896px) { .platform-ios { #query { .scrollContent { padding-top: 2.72rem; } } } #choose-user .submit { bottom: 44px; } } </style>