Commit df61538a authored by 李晓兵's avatar 李晓兵

'合成用户绑定'

parent a20ca34c
......@@ -7,7 +7,6 @@ module.exports = merge(prodEnv, {
CONFIG_ENV: JSON.stringify(process.env.CONFIG_ENV),
debug: true,
isMobilePlatform: false,
hmapUrl:'"http://hippius.hand-china.com/hmap220"',
loginPath: '"http://hlsapp.hand-china.com/core/oauth/token?client_id=hQGCtxTItRa34PUOgxaD0r7oSPeuEaIB&client_secret=7ee8338c-4a06-44a1-87cc-afa63f8e1bc3&grant_type=password&username=app&password=" ',
basePath: '"http://hlsapp.hand-china.com/core/r/api?sysName=XCMG_DEV&apiName="',
rootPath: '"http://hlsapp.hand-china.com/core/r/api"',
......
var exec = require('cordova/exec');
//人脸检测
exports.faceDetect = function(arg0, success, error) {
exec(success, error, "FacePlugin", "faceDetect", [arg0]);
};
//获取本地图片base64位字符串
exports.getLocalImage = function(arg0, success, error) {
exec(success, error, "FacePlugin", "getLocalImage", [arg0]);
};
//人脸登录
exports.faceLogin = function(arg0, success, error) {
exec(success, error, "FacePlugin", "faceLogin", [arg0]);
};
//人脸比较
exports.faceCompare = function(arg0, success, error) {
exec(success, error, "FacePlugin", "faceCompare", [arg0]);
};
//人脸搜索
exports.faceSelect = function(arg0, success, error) {
exec(success, error, "FacePlugin", "faceSelect", [arg0]);
};
src/assets/userBind/add.png

755 Bytes

src/assets/userBind/addBack.png

4.54 KB

src/assets/userBind/arrow.png

273 Bytes

src/assets/userBind/back.png

1.53 KB

src/assets/userBind/bank.png

280 Bytes

src/assets/userBind/bankIcon.png

436 Bytes

src/assets/userBind/base.png

445 Bytes

src/assets/userBind/camera.png

1.13 KB

src/assets/userBind/check1.png

7.16 KB

src/assets/userBind/check2.png

7.04 KB

src/assets/userBind/check3.png

6.72 KB

src/assets/userBind/close.png

886 Bytes

src/assets/userBind/delete.png

810 Bytes

src/assets/userBind/entr.png

643 Bytes

src/assets/userBind/front.png

1.26 KB

src/assets/userBind/info.png

838 Bytes

src/assets/userBind/nong.png

13.5 KB

src/assets/userBind/np.png

1.11 KB

src/assets/userBind/org/back.png

1.39 KB

src/assets/userBind/org/checklist.png

425 Bytes

src/assets/userBind/org/front.png

1.26 KB

src/assets/userBind/out.png

555 Bytes

src/assets/userBind/right.png

439 Bytes

src/assets/userBind/sao.png

854 Bytes

src/assets/userBind/unNong.png

13.7 KB

src/assets/userBind/uncheck1.png

8.27 KB

src/assets/userBind/uncheck2.png

7.99 KB

src/assets/userBind/uncheck3.png

7.66 KB

<template>
<div class="tab-style">
<span @click="tabNum = 0;sendTabNum()"><img :src="tabNum == 0?check1:uncheck1"></span>
<span @click="tabNum = 1;sendTabNum()"><img :src="tabNum == 1?check2:uncheck2" ></span>
<span @click="tabNum = 2;sendTabNum()"><img :src="tabNum == 2?check3:uncheck3"></span>
</div>
</template>
<script>
import check1 from '@/assets/userBind/check1.png'
import check2 from '@/assets/userBind/check2.png'
import check3 from '@/assets/userBind/check3.png'
import uncheck1 from '@/assets/userBind/uncheck1.png'
import uncheck2 from '@/assets/userBind/uncheck2.png'
import uncheck3 from '@/assets/userBind/uncheck3.png'
export default {
data () {
return {
tabNum: 0,
check1: check1,
check2: check2,
check3: check3,
uncheck1: uncheck1,
uncheck2: uncheck2,
uncheck3: uncheck3,
}
},
methods: {
sendTabNum () {
this.$emit('getTabNum', this.tabNum)
},
},
}
</script>
<style lang="less" scoped>
.tab-style{
display:flex;
justify-content: center;
padding-top:12px;
padding-bottom: 8px;
align-items: center;
box-shadow:0 2px 3px 0 rgba(220,220,221,0.50);
span{
display: block;
width:112px;
height: 32px;
border-radius:16px;
}
img{
width:112px;
height: 32px;
margin-right:5.7px;
}
span:nth-of-type(2){
margin:0 10px;
}
}
</style>
......@@ -16,34 +16,6 @@ export default {
'roleId': 1,
'roleCode': 'ADMIN',
'roleName': '管理员',
'functions': [
{
'functionId': 1,
'functionCode': '110',
'functionName': '客户创建',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/customerCreate@2x.png',
'functionState': 'PartnerCreate',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 2,
'functionCode': '120',
'functionName': '客户维护',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/customerMaintain@2x.png',
'functionState': 'PartnerList',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
],
},
{
'moduleId': 2,
......@@ -53,47 +25,6 @@ export default {
'roleId': 1,
'roleCode': 'ADMIN',
'roleName': '管理员',
'functions': [
{
'functionId': 3,
'functionCode': '210',
'functionName': '融资试算',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/finaning-main@2x.png',
'functionState': 'CalculationEnter',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 4,
'functionCode': '100',
'functionName': '租赁申请',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/applyCreate@2x.png',
'functionState': 'PrjCreate',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 5,
'functionCode': '130',
'functionName': '申请维护',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/applyMaintain@2x.png',
'functionState': 'PrjMaintenList',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
],
},
{
'moduleId': 3,
......@@ -103,34 +34,6 @@ export default {
'roleId': 1,
'roleCode': 'ADMIN',
'roleName': '管理员',
'functions': [
{
'functionId': 6,
'functionCode': '400',
'functionName': '合同维护',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/contractMaintain@2x.png',
'functionState': 'ContractMaintenList',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 7,
'functionCode': '410',
'functionName': '合同签约',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/contractSign@2x.png',
'functionState': 'ContractSignList',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
],
},
{
'moduleId': 4,
......@@ -140,60 +43,6 @@ export default {
'roleId': 1,
'roleCode': 'ADMIN',
'roleName': '管理员',
'functions': [
{
'functionId': 8,
'functionCode': '160',
'functionName': '工作流',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/workflow@2x.png',
'functionState': 'WorkflowList',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 9,
'functionCode': '170',
'functionName': 'OCR',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/ocr.png',
'functionState': 'OcrIdentify',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 45,
'functionCode': '240',
'functionName': '报表',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/chats@2x.png',
'functionState': 'Reports',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{
'functionId': 46,
'functionCode': '250',
'functionName': '启信宝',
'functionIcon': 'http://hlsapp.hand-china.com/file/hel_dev/function/qixinbao.png',
'functionState': 'QiXinBao',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
],
},
],
}
......@@ -2,10 +2,6 @@
<h-view id="home" class="public-style" title="车租易">
<h-content :cal-content="false" class="content scroll-content">
<div class="top-box">
<header class="header">
<input v-model="searchInput" placeholder="请输入功能名">
<img src="../assets/image/home/functionList@2x.png" @click="search">
</header>
<swipe :interval="5000" :showIndicators="false" class="swipe">
<swipe-item v-for="img in imgList" :key="img.pictureUrl">
<img :src="img.pictureUrl">
......@@ -15,14 +11,14 @@
<function-item
v-for="item in moduleSeparateList.slice(0,4)" :key="item.moduleId" :functionIcon="item.moduleIcon"
:functionName="item.moduleName"
:data="item" @clickFunction="goModuleFunction"/>
:data="item"/>
</div>
</div>
<div class="middle-box">
<header>常用应用</header>
<div class="function">
<function-item
v-for="item in functionList" :key="item.functionId" :functionIcon="item.functionIcon"
v-for="(item,index) in functionList" :key="index" :functionIcon="item.functionIcon"
:functionName="item.functionName"
:data="item" class="function-item vue-1px" @clickFunction="goFunctionHome"/>
</div>
......@@ -39,7 +35,7 @@
<ul id="p2"/>
</div>
</div>
<div class="bank" style="height: 60px;width: 100%"></div>
<div class="bank" style="height: 60px;width: 100%"/>
</h-content>
</h-view>
</template>
......@@ -52,8 +48,21 @@ export default {
return {
imgList: [],
moduleSeparateList: [],
functionList: [], // 全部应用
messageList: [],
functionList: [
{
functionIcon: require('@/assets/userBind/np.png'),
functionName: '用户绑定',
functionState: 'UserBind',
},
], // 全部应用
messageList: [
{
msg_body: '庆祝建国70周年',
},
{
msg_body: '祖国万岁',
},
],
area: {},
box1: {},
box2: {},
......@@ -65,34 +74,10 @@ export default {
created: function () {
this.imgList = [...functionState.bannerList]
this.moduleSeparateList = [...functionState.moduleSeparateList]
this.moduleSeparateList.forEach(item => {
this.functionList = this.functionList.concat(item.functions)
})
},
updated: function () {
},
methods: {
search () {
let vm = this
let flag = 'N'
if (vm.searchInput) {
for (let i of vm.allFunctionList) {
if (vm.searchInput === i.functionName) {
vm.$router.push({
name: i.functionState,
})
flag = 'Y'
break
}
}
} else {
vm.hlsPopup.showLongCenter('请输入功能名称')
}
if (flag === 'N') {
vm.hlsPopup.showLongCenter('没有此功能')
}
},
goModuleFunction (data) {
this.$router.push({
name: 'ModuleFunction',
......@@ -101,7 +86,6 @@ export default {
},
})
},
goFunctionHome (data) {
this.$router.push({
name: data.functionState,
......
......@@ -35,6 +35,8 @@ export default {
methods: {
login: function () {
let vm = this
vm.$router.push('tab')
/* let vm = this
// debugger;
// vm.password = CryptoJS.MD5(vm.password).toString().toUpperCase();
let md5passwprd = CryptoJS.MD5(vm.password).toString().toUpperCase()
......@@ -50,7 +52,7 @@ export default {
window.localStorage.setItem('username', vm.username.toUpperCase())
window.localStorage.setItem('password', md5passwprd)
window.localStorage.setItem('user_id', res.user_id)
if (res.bp_id && res.bp_id != 'undefined') {
if (res.bp_id && res.bp_id !== 'undefined') {
window.localStorage.setItem('bp_id', res.bp_id)
}
......@@ -66,7 +68,7 @@ export default {
vm.Jpush._jpush_config(tagOption)
}
// 极光推送
})
})*/
},
access: function () {
let vm = this
......@@ -79,6 +81,7 @@ export default {
let param = {}
vm.hlsPopup.showLoading('请稍等')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
window.localStorage.setItem('access_token', res.access_token)
vm.login()
})
......@@ -117,8 +120,8 @@ export default {
justify-content: center;
-webkit-justify-content: center;
img {
width: 276px;
height: 96px;
width: 138px;
height: 48px;
}
}
.login {
......@@ -126,20 +129,20 @@ export default {
display: flex;
display: -webkit-flex;
margin: 15% auto 0;
width: 500px;
width: 250px;
justify-content: center;
.person-icon {
margin-bottom: 18px;
margin-right: 30px;
margin-left: 6px;
margin-bottom: 9px;
margin-right: 15px;
margin-left: 3px;
img {
width: 36px;
height: 40px;
width: 18px;
height: 20px;
}
}
.admin-input {
//width: 380px;
height: 50px;
height: 25px;
display: flex;
display: -webkit-flex;
align-items: center;
......@@ -147,21 +150,21 @@ export default {
input {
width: 100%;
height: 100%;
font-size: 32px;
font-size: 16px;
color: #9e9e9e;
margin-bottom: 10px;
line-height: 44px;
margin-bottom: 5px;
line-height: 22px;
}
input::-webkit-input-placeholder {
font-size: 32px;
font-size: 16px;
color: #CDD1D3;
}
}
.delete {
img {
margin-top: 10px;
width: 24px;
height: 24px;
margin-top: 5px;
width: 12px;
height: 12px;
}
}
}
......@@ -170,19 +173,19 @@ export default {
display: flex;
display: -webkit-flex;
margin: 15% auto 0;
width: 500px;
width: 250px;
.pwd-icon {
margin-bottom: 18px;
margin-right: 30px;
margin-left: 6px;
margin-bottom: 9px;
margin-right: 15px;
margin-left: 3px;
img {
width: 36px;
height: 40px;
width: 18px;
height: 20px;
}
}
.pwd-input {
//width: 380px;
height: 50px;
height: 25px;
display: flex;
display: -webkit-flex;
align-items: center;
......@@ -190,26 +193,26 @@ export default {
input {
width: 100%;
height: 100%;
font-size: 32px;
font-size: 16px;
color: #9e9e9e;
line-height: 44px;
margin-bottom: 10px;
line-height: 22px;
margin-bottom: 5px;
}
input::-webkit-input-placeholder {
font-size: 32px;
font-size: 16px;
color: #CDD1D3;
}
}
.delete {
img {
margin-top: 10px;
width: 24px;
height: 24px;
margin-top: 5px;
width: 12px;
height: 12px;
}
}
}
.other-function {
width: 500px;
width: 250px;
display: flex;
display: -webkit-flex;
justify-content: space-between;
......@@ -217,21 +220,21 @@ export default {
margin: 8% auto 0;
.register {
color: #5D98F6;
font-size: 30px;
font-size: 15px;
}
.pwd-forgotten {
color: #5D98F6;
font-size: 30px;
font-size: 15px;
}
}
.submit {
width: 500px;
width: 250px;
opacity: 1;
background-color: #5D98F6;
border-radius: 8px;
height: 80px;
border-radius: 4px;
height: 40px;
margin: 22% auto 0;
font-size: 32px;
font-size:16px;
color: #FEFEFE;
display: flex;
display: -webkit-flex;
......
<template>
<h-content>
<div id="bank-card">
<div class="info">
<div class="info-icon">
<img src="@/assets/userBind/info.png" >
<span>温馨提示</span>
</div>
<p>推荐使用农行卡,农行卡支付免收手续费!</p>
</div>
<div class="my-card">
<div class="top">
<div class="left">
<img src="@/assets/userBind/bankIcon.png" class="icon" >
<span class="top-word">
我的卡
<span class="sum">(共4张)</span>
</span>
</div>
<img src="@/assets/userBind/add.png" class="icon-right" @click="sendFlag" >
</div>
<div class="clear" />
<div class="card-content">
<ul>
<li v-for="(item,index) in bankList" :key="index">
<item-option class="slider">
<div
:style="'background-image: url('+ changeBgImg (item) +')'"
class="my-bank-card"
>
<div class="card-info">
<span class="name">{{ item.bank_full_name }}</span>
<span class="card-type">{{ item.bank_card_type }}</span>
<span class="number">卡号</span>
<span class="card-number">**** **** **** {{ selectLast (item) }}</span>
</div>
</div>
<div slot="buttons" class="button">
<option-button text @click.native="deleteFun(item.bank_account_num)" />
</div>
</item-option>
</li>
</ul>
</div>
</div>
</div>
</h-content>
</template>
<script>
import backImg1 from '@/assets/userBind/nong.png'
import backImg2 from '@/assets/userBind/unNong.png'
export default {
data () {
return {
backImg: null,
showModalValue: true,
bankList: [
{
bank_account_num: '1231123112311231',
bank_full_name: '中国农业银行',
bank_card_type: '信用卡',
},
{
bank_account_num: '2345763456980965',
bank_full_name: '中国建设银行',
bank_card_type: '储蓄卡',
},
{
bank_account_num: '2345763456980905',
bank_full_name: '中国建设银行',
bank_card_type: '储蓄卡',
},
],
}
},
methods: {
sendFlag () {
this.showModalValue = true
this.$emit('getInfo', this.showModalValue)
},
changeBgImg (item) {
if (item.bank_full_name === '中国农业银行') {
return backImg1
} else {
return backImg2
}
},
selectLast (item) {
let num = item.bank_account_num
return num.substring(num.length - 4)
},
deleteFun (e) {
let index = this.bankList.findIndex(item => {
if (item.bank_account_num === e) {
return true
}
})
this.bankList.splice(index, 1)
},
},
}
</script>
<style lang="less" scoped>
#bank-card {
.info {
height: 70px;
background-color: rgba(142, 195, 30, 0.1);
.info-icon {
height: 20px;
padding-top: 20px;
display: flex;
align-items: center;
img {
width: 15.8px;
height: 15.8px;
margin-left: 17.1px;
}
span {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #8ec31e;
margin-left: 9px;
letter-spacing: 0.5px;
line-height: 20px;
}
}
p {
font-family: PingFangSC-Regular;
font-size: 13px;
color: #656464;
width: 310px;
margin-left: 42px;
letter-spacing: 0.4px;
line-height: 18px;
margin-top: 8px;
}
}
.my-card {
.top {
width: 320px;
margin: 0 auto;
margin-top: 13px;
.left {
height: 32px;
display: flex;
align-items: center;
float: left;
.icon {
width: 18px;
height: 20px;
margin-right: 4px;
}
.top-word {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
letter-spacing: 0.46px;
.sum {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #4d5d6c;
letter-spacing: 0.46px;
}
}
}
.icon-right {
width: 34px;
height: 34px;
float: right;
}
}
.clear {
clear: both;
}
.card-content {
width: 350px;
padding-left: 28px;
overflow: hidden;
margin-top: 16px;
li {
margin-bottom: 10px;
.slider {
height: 100%;
margin-left: -14px;
}
}
.my-bank-card {
width: 320px;
height: 190px;
box-shadow: 0 5px 20px 0 rgba(101, 101, 101, 0.25);
border-radius: 6px;
background-size: 320px 190px;
.card-info {
font-family: PingFangSC-Medium;
color: #ffffff;
margin-left: 18px;
padding-top: 15px;
.name,
.card-type {
font-size: 16px;
letter-spacing: 5.5px;
line-height: 24px;
}
.card-type {
display: block;
margin-top: 9px;
}
.number {
font-size: 12px;
letter-spacing: 0;
line-height: 16px;
margin-top: 33px;
display: block;
margin-top: 33px;
}
.card-number {
display: block;
font-family: Avenir-Heavy;
font-size: 16px;
color: #ffffff;
letter-spacing: 6px;
line-height: 24px;
}
}
}
}
}
.swipeout-list .item .function {
left: 330px;
border-radius: 6px;
width: 54px;
height: 190px;
background: url("../../../assets/userBind/delete.png") 16px 84.9px #fde5e8
no-repeat;
background-size: 20px 20px;
}
}
</style>
<template>
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name">纳税人类型</div>
<input
slot="content"
v-model="taxpayer_type_n"
type="text"
readonly
placeholder="请选择"
onfocus="this.blur()"
@click="selectTaxpayer"
>
</item>
<item :showArrow="true">
<div slot="name">发票类型</div>
<input
slot="content"
v-model="invoice_kind_n"
type="text"
readonly
placeholder="请选择"
onfocus="this.blur()"
@click="selectInvoiceType"
>
</item>
<item>
<div slot="name">发票抬头</div>
<input slot="content" v-model="invoiceInfo.invoice_title" type="text" placeholder="请输入发票抬头" >
</item>
<item>
<div slot="name">发票地址及电话</div>
<input slot="content" v-model="invoiceInfo.invoice_bp_address_phone_num" type="text" placeholder="请输入发票地址及电话" >
</item>
<item>
<div slot="name">发票开户行及账号</div>
<input
slot="content"
v-model="invoiceInfo.invoice_bp_bank_account"
type="text"
placeholder="请输入发票开户行及账号"
>
</item>
<item>
<div slot="name">纳税人识别号</div>
<input
slot="content"
v-model="invoiceInfo.organization_code" type="text" placeholder="请输入纳税人识别号" >
</item>
</list-item>
</template>
<script>
export default {
data () {
return {
taxpayer_type_n: '',
invoice_kind_n: '',
invoicList: [],
taxpayerList: [],
invoiceInfo: {
taxpayer_type: '',
invoice_kind: '',
invoice_title: '',
invoice_bp_address_phone_num: '',
invoice_bp_bank_account: '',
},
}
},
created () {
this.getInvoiceType()
this.getTaxpayer()
},
updated () {
this.sendList()
},
methods: {
getInvoiceType () {
let vm = this
let url = process.env.basePath + 'bp_invoice_kind_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.invoicList = res.lists.map(item => {
return {
code: item.invoice_kind,
code_name: item.invoice_kind_n,
}
})
}
})
},
getTaxpayer () {
let vm = this
let url = process.env.basePath + 'bp_taxpayer_type_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.taxpayerList = res.lists.map(item => {
return {
code: item.taxpayer_type,
code_name: item.taxpayer_type_n,
}
})
}
})
},
selectInvoiceType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.invoicList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.invoiceInfo.invoice_kind = obj.bp_type
vm.invoice_kind_n = obj.bp_type_n
},
})
},
selectTaxpayer (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.taxpayerList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.invoiceInfo.taxpayer_type = obj.bp_type
vm.taxpayer_type_n = obj.bp_type_n
},
})
},
sendList () {
this.$emit('getinvoiceList', this.invoiceInfo)
},
},
}
</script>
<style scoped>
input::placeholder{
color: #B4B4B5;
}
</style>
<!--
* @Description: In User Settings Edit
* @Author: liuxin
* @Date: 2019-09-19 09:18:14
* @LastEditTime: 2019-09-19 09:18:14
* @LastEditors: your name
-->
<template>
<h-view id="base-info" class="public-style" title="基本信息">
<h-header :proportion="[5,1,1]" class="header">
<div slot="left" class="h-header-btn" @click="$routeGo()">
<img src="@/assets/userBind/arrow.png" >
<span>用户绑定</span>
</div>
</h-header>
<Tab @getTabNum="getTabNum" />
<h-content class="content">
<div v-show="tabNum==0">
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name">客户类型</div>
<input
slot="content"
v-model="bp_type_n"
placeholder="请选择"
type="text"
readonly
onfocus="this.blur()"
@click="selectIdType()"
>
</item>
<item v-if="isPaople">
<div slot="name">业务经办人</div>
<input slot="content" v-model="baseInfo.agent_username" placeholder="请输入业务经办员工代码" >
</item>
<item v-else>
<div slot="name">营业执照</div>
<input slot="content" v-model="baseInfo.business_license_num" placeholder="请输入营业执照号" >
</item>
</list-item>
<div class="userInfo">客户信息</div>
<div class="upload-id-card">
<span>身份证照片上传</span>
<div class="upload-box">
<div>
<img src="@/assets/userBind/front.png" >
<p>正面</p>
</div>
<div>
<img src="@/assets/userBind/back.png" >
<p>反面</p>
</div>
</div>
</div>
<list-item :item-height="44" class="second-part">
<item>
<div slot="name">姓名</div>
<input slot="content" v-model="baseInfo.bp_name" placeholder="上传身份证自动填充" class="auto" >
</item>
<item>
<div slot="name">身份证号码</div>
<input
slot="content"
v-model="baseInfo.id_card_no"
placeholder="上传身份证自动填充"
class="auto"
>
</item>
<item>
<div slot="name">手机号码</div>
<input slot="content" v-model="baseInfo.phone" placeholder="请输入手机号码" >
</item>
<item>
<div slot="name">居住地址</div>
<input slot="content" v-model="baseInfo.living_address" placeholder="请输入居住地址" >
</item>
<item>
<div slot="name">户籍地址</div>
<input
slot="content"
v-model="baseInfo.address_on_resident_booklit"
placeholder="请输入户籍地址"
>
</item>
<item :showArrow="true">
<div slot="name">学历</div>
<input
slot="content"
v-model="academic_bg_n"
placeholder="请选择学历"
readonly
onfocus="this.blur()"
@click="selectBackType"
>
</item>
<item :showArrow="true">
<div slot="name">婚姻状况</div>
<input
slot="content"
v-model="marital_status_n"
placeholder="请选择"
readonly
onfocus="this.blur()"
@click="selectMarital"
>
</item>
</list-item>
<div class="userInfo">配偶信息</div>
<list-item :item-height="44">
<item>
<div slot="name">姓名</div>
<input slot="content" v-model="baseInfo.bp_name_sp" placeholder="请输入姓名" >
</item>
<item>
<div slot="name">手机号码</div>
<input slot="content" v-model="baseInfo.spouse_phone" placeholder="请输入手机号码" >
</item>
<item>
<div slot="name">工作单位</div>
<input slot="content" v-model="baseInfo.working_place_sp" placeholder="请输入工作单位" >
</item>
<item>
<div slot="name">居住地址</div>
<input slot="content" v-model="baseInfo.address_sp" placeholder="请输入居住地址" >
</item>
</list-item>
<div class="userInfo">资产信息</div>
<div class="card">
<span>房产证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
<div class="card">
<span>车辆证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
<div class="card">
<span>其他资产证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
</div>
<BankInfo v-show="tabNum==1" @getInfo="getInfo" />
<InvoiceInfo v-show="tabNum==2" @getinvoiceList="getinvoiceList" />
</h-content>
<bottom-tab class="footer-button">
<tab-button class="put">提交</tab-button>
<tab-button class="save" @click.native="verified">保存</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue" position="bottom" cus-class="search-modal">
<h-view>
<h-content class="modal-content">
<notify v-model="show1" content="请输入本人的银行卡" type="warning" class="notice" />
<notify v-model="show2" content="请输入完整字段" type="warning" class="notice" />
<notify v-model="show3" content="添加成功,记得保存哦" type="success" class="notice" />
<div class="modal-content-add-top">
<span>添加银行卡</span>
<img src="@/assets/userBind/close.png" @click="hideModal" >
</div>
<img src="@/assets/userBind/addBack.png" class="addBack" >
<list-item :item-height="44" class="card-Info">
<item>
<div slot="name">银行卡卡号</div>
<input slot="content" v-model="bank.bank_account_num" placeholder="银行卡卡号自动填充" >
</item>
<item>
<div slot="name">账户姓名</div>
<input slot="content" v-model="bank.bank_account_name" placeholder="请输入账户名称" >
</item>
<item>
<div slot="name">银行名称</div>
<input slot="content" v-model="bank.bank_full_name" placeholder="请输入银行名称" >
</item>
<item>
<div slot="name">支行名称</div>
<input slot="content" v-model="bank.bank_branch_name" placeholder="请输入支行名称" >
</item>
</list-item>
</h-content>
</h-view>
<bottom-tab class="add-box">
<tab-button class="add-card" @click.native="addBankInfo">添加</tab-button>
</bottom-tab>
</h-modal>
</h-view>
</template>
<script>
import Tab from '@/components/tab'
import InvoiceInfo from './invoiceInfo'
import BankInfo from './bankInfo'
export default {
components: {
Tab,
InvoiceInfo,
BankInfo,
},
data () {
return {
list: {},
isPaople: false,
isEnter: false,
show1: false,
show2: false,
show3: false,
showModalValue: false,
tabNum: 0,
bp_type_n: '',
academic_bg_n: '',
marital_status_n: '',
typeList: [],
backList: [],
maritalList: [],
bank: {
bank_account_num: '',
bank_account_name: '',
bank_card_type: '',
bank_full_name: '',
bank_branch_name: '',
},
img_url: {},
baseInfo: {
bp_type: '',
bp_class: this.$route.params.bp_class,
bp_name: '',
id_card_no: null,
phone: null,
living_address: '',
address_on_resident_booklit: '',
marital_status: '',
academic_background: '',
bp_name_sp: '',
spouse_phone: '',
working_place_sp: '',
address_sp: '',
invoice_bp_bank_account: '',
taxpayer_type: '',
invoice_title: '',
invoice_bp_address_phone_num: '',
invoice_kind: '',
},
}
},
watch: {
bp_type_n () {
let vm = this
if (vm.baseInfo.bp_type === 'TENANT' || vm.baseInfo.bp_type === 'GUTA') {
vm.isPaople = true
vm.isEnter = false
} else if (
vm.baseInfo.bp_type === 'AGENT' ||
vm.baseInfo.bp_type === 'OFFICE' ||
vm.baseInfo.bp_type === 'FACTORY'
) {
vm.isEnter = true
vm.isPaople = false
}
},
},
created () {
this.getBpType()
this.getEducationBackground()
this.getMarital()
},
updated () {
this.getinvoiceList()
},
methods: {
verified () {
let vm = this
if (!vm.baseInfo.bp_type || !vm.baseInfo.bp_name || !vm.baseInfo.id_card_no || !vm.baseInfo.phone || !vm.baseInfo.living_address ||
!vm.baseInfo.address_on_resident_booklit || !vm.baseInfo.marital_status || !vm.baseInfo.academic_background || !vm.baseInfo.bp_name_sp || !vm.baseInfo.spouse_phone ||
!vm.baseInfo.working_place_sp || !vm.baseInfo.address_sp
) {
vm.hlsPopup.showLongCenter('必输字端不能为空!')
return
}
if (!vm.hlsUtil.phoneNumber(vm.baseInfo.phone)) {
vm.hlsPopup.showLongCenter('手机号码有误!')
return
}
let url = process.env.basePath + 'bp_np_bind_save'
let param = {
'parameter': {
'master': this.baseInfo,
},
}
vm.hlsPopup.showLoading('保存中!')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
vm.hlsPopup.showSuccess('保存成功')
if (res.result === 'S') {
// console.log(res)
window.localStorage.setItem('user_id', res.bp_id)
}
})
},
showNotifyAtTop () {
if (this.show1) return
this.show1 = true
},
showNotifyAtTop1 () {
if (this.show2) return
this.show2 = true
},
showNotifyAtTopSuccess () {
if (this.show3) return
this.show3 = true
},
successCall () {
this.hideModal()
this.bank.bank_account_num = ''
this.bank.bank_account_name = ''
this.bank.bank_full_name = ''
this.bank.bank_branch_name = ''
},
addBankInfo () {
if (this.hlsUtil.isBankAccount(this.bank.bank_account_num)) {
this.hlsPopup.showLongCenter('银行卡号有误')
} else if (this.bank.bank_account_num === '' || this.bank.bank_account_name === '' || this.bank.bank_full_name === '' || this.bank.bank_branch_name === '') {
this.showNotifyAtTop1()
} else if (this.bank.bank_account_name !== this.baseInfo.bp_name) {
this.showNotifyAtTop()
} else {
let list = JSON.parse(JSON.stringify(this.bank))
// this.baseInfo.bank_lists.push(list)
this.showNotifyAtTopSuccess()
setTimeout(
this.successCall
, 2000)
}
},
hideModal () {
this.showModalValue = false
},
getInfo (i) {
this.showModalValue = i
},
showModal () {
this.showModalValue = true
},
selectIdType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.typeList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.baseInfo.bp_type = obj.bp_type
vm.bp_type_n = obj.bp_type_n
// vm.isSelected = true
},
})
},
getinvoiceList (i) {
Object.assign(this.baseInfo, i)
},
selectBackType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.backList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.baseInfo.academic_background = obj.bp_type
vm.academic_bg_n = obj.bp_type_n
},
})
},
selectMarital (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.maritalList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.baseInfo.marital_status = obj.bp_type
vm.marital_status_n = obj.bp_type_n
},
})
},
getMarital () {
let vm = this
let url = process.env.basePath + 'bp_marital_status_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.maritalList = res.lists.map(item => {
return {
code: item.marital_status,
code_name: item.marital_status_n,
}
})
}
})
},
getEducationBackground () {
let vm = this
let url = process.env.basePath + 'bp_academic_bg_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.backList = res.lists.map(item => {
return {
code: item.academic_bg,
code_name: item.academic_bg_n,
}
})
}
})
},
getTabNum (i) {
this.tabNum = i
},
fileSuccess (fileList, result) {
this.fileList = fileList
this.fileList.forEach((itemFile, index) => {
if (
result.response &&
itemFile.file &&
!itemFile.attachment_id &&
result.response.fileName === itemFile.file.name
) {
itemFile.attachment_id = result.response.attachment_id
}
})
},
getBpType () {
let vm = this
let url = process.env.basePath + 'bp_type_select'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.typeList = res.lists.map(item => {
return {
code: item.bp_type,
code_name: item.bp_type_n,
}
})
}
})
},
},
}
</script>
<style lang="less">
#base-info {
font-family: PingFangSC-Regular;
input::placeholder {
color: #b4b4b5;
}
.header {
background-color: #00469c;
color: #fff;
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.6px;
line-height: 24px;
}
}
}
.content {
margin-top: 3px;
.userInfo {
height: 45px;
line-height: 45px;
color: #00469c;
margin-top: -10px;
font-size: 15px;
margin-left: 16px;
position: relative;
}
.userInfo::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
position: absolute;
left: -15px;
top: 12px;
}
.upload-id-card {
height: 176px;
background-color: #fff;
span {
display: block;
color: #656464;
margin-left: 16px;
padding-top: 16px;
font-size: 13px;
}
.upload-box {
display: flex;
justify-content: center;
margin-top: 15px;
div {
width: 172px;
height: 120px;
border: 1px dashed #dcdcdd;
text-align: center;
font-size: 14px;
color: #b4b4b5;
.front,
.back {
width: 172px;
height: 120px;
}
}
div:nth-of-type(2) {
margin-left: 7px;
}
img {
margin-top: 32px;
width: 58px;
height: 45px;
}
p {
margin-top: 12px;
font-size: 13px;
}
}
}
.second-part {
margin-top: 9px;
.auto {
color: #b4b4b5;
}
}
.card {
padding-bottom: 8px;
height: auto;
background-color: #fff;
margin-bottom: 10px;
span {
color: #656464;
font-size: 13px;
line-height: 18px;
padding-top: 8px;
display: block;
margin-left: 16px;
}
.img-content {
display: flex;
flex-flow: row wrap;
justify-content: flex-start;
align-items: center;
}
.card-upload {
width: 88px;
height: 88px;
border: 1px dashed #dcdcdd;
display: flex;
justify-content: center;
align-items: center;
margin-top: 12px;
margin-left: 12px;
// float: left;
img {
width: 24px;
height: 24px;
}
}
}
}
.put {
width: 175px;
height: 45px;
color: #00469c;
border-radius: 4px;
border: 1px solid #00469c;
background-color: #fafafa;
}
.save {
width: 175px;
height: 45px;
color: #fff;
border-radius: 4px;
background-color: #00469c;
}
.footer-button {
height: 88px;
padding-top: 10px;
padding-bottom: 41px;
}
.front,
.photo,
.backphoto,
.back {
display: none;
}
.modal-content {
height: 71%;
position: absolute;
top: 29%;
background-color: #fff;
.modal-content-add-top {
width: 320px;
height: 34px;
line-height: 34px;
padding-top: 10px;
background-color: #fff;
padding-bottom: 40px;
position: fixed;
left: 28px;
span {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
letter-spacing: 0.47px;
}
img {
width: 34px;
height: 34px;
float: right;
}
}
.addBack {
display: block;
width: 320px;
margin: 0 auto;
margin-top: 50px;
border-radius: 6px;
margin-bottom: 17px;
}
.card-Info {
margin-bottom: 220px;
}
}
.add-card {
width: 358px;
height: 40px;
background: #00469c;
border-radius: 4px;
color: #fff;
}
}
.modal {
background-color: rgba(0, 0, 0, 0) !important;
}
.hls-notify-wrap {
height: 50px;
line-height: 34px !important;
}
</style>
<template>
<h-content>
<div id="bank-card">
<div class="info">
<div class="info-icon">
<img src="@/assets/userBind/info.png" >
<span>温馨提示</span>
</div>
<p>推荐使用农行卡,农行卡支付免收手续费!</p>
</div>
<div class="my-card">
<div class="top">
<div class="left">
<img src="@/assets/userBind/bankIcon.png" class="icon" >
<span class="top-word">
我的卡
<span class="sum">(共4张)</span>
</span>
</div>
<img src="@/assets/userBind/add.png" class="icon-right" @click="sendFlag" >
</div>
<div class="clear" />
<div class="card-content">
<ul>
<li v-for="(item,index) in bankList" :key="index">
<item-option class="slider">
<div
:style="'background-image: url('+ changeBgImg (item) +')'"
class="my-bank-card"
>
<div class="card-info">
<span class="name">{{ item.bank_full_name }}</span>
<span class="card-type">{{ item.bank_card_type }}</span>
<span class="number">卡号</span>
<span class="card-number">**** **** **** {{ selectLast (item) }}</span>
</div>
</div>
<div slot="buttons" class="button">
<option-button text @click.native="deleteFun(item.bank_account_num)" />
</div>
</item-option>
</li>
</ul>
</div>
</div>
</div>
</h-content>
</template>
<script>
import backImg1 from '@/assets/userBind/nong.png'
import backImg2 from '@/assets/userBind/unNong.png'
export default {
data () {
return {
backImg: null,
showModalValue: true,
bankList: [
{
bank_account_num: '1231123112311231',
bank_full_name: '中国农业银行',
bank_card_type: '信用卡',
},
{
bank_account_num: '2345763456980965',
bank_full_name: '中国建设银行',
bank_card_type: '储蓄卡',
},
{
bank_account_num: '2345763456980965',
bank_full_name: '中国建设银行',
bank_card_type: '储蓄卡',
},
],
}
},
methods: {
sendFlag () {
this.showModalValue = true
this.$emit('getInfo', this.showModalValue)
},
changeBgImg (item) {
if (item.bank_full_name === '中国农业银行') {
return backImg1
} else {
return backImg2
}
},
selectLast (item) {
let num = item.bank_account_num
return num.substring(num.length - 4)
},
deleteFun (e) {
let index = this.bankList.findIndex(item => {
if (item.bank_account_num === e) {
return true
}
})
this.bankList.splice(index, 1)
},
},
}
</script>
<style lang="less" scoped>
#bank-card {
.info {
height: 70px;
background-color: rgba(142, 195, 30, 0.1);
.info-icon {
height: 20px;
padding-top: 20px;
display: flex;
align-items: center;
img {
width: 15.8px;
height: 15.8px;
margin-left: 17.1px;
}
span {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #8ec31e;
margin-left: 9px;
letter-spacing: 0.5px;
line-height: 20px;
}
}
p {
font-family: PingFangSC-Regular;
font-size: 13px;
color: #656464;
width: 310px;
margin-left: 42px;
letter-spacing: 0.4px;
line-height: 18px;
margin-top: 8px;
}
}
.my-card {
.top {
width: 320px;
margin: 0 auto;
margin-top: 13px;
.left {
height: 32px;
display: flex;
align-items: center;
float: left;
.icon {
width: 18px;
height: 20px;
margin-right: 4px;
}
.top-word {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
letter-spacing: 0.46px;
.sum {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #4d5d6c;
letter-spacing: 0.46px;
}
}
}
.icon-right {
width: 34px;
height: 34px;
float: right;
}
}
.clear {
clear: both;
}
.card-content {
width: 350px;
padding-left: 28px;
overflow: hidden;
margin-top: 16px;
li {
margin-bottom: 10px;
.slider {
height: 100%;
margin-left: -14px;
}
}
.my-bank-card {
width: 320px;
height: 190px;
box-shadow: 0 5px 20px 0 rgba(101, 101, 101, 0.25);
border-radius: 6px;
background-size: 320px 190px;
.card-info {
font-family: PingFangSC-Medium;
color: #ffffff;
margin-left: 18px;
padding-top: 15px;
.name,
.card-type {
font-size: 16px;
letter-spacing: 5.5px;
line-height: 24px;
}
.card-type {
display: block;
margin-top: 9px;
}
.number {
font-size: 12px;
letter-spacing: 0;
line-height: 16px;
margin-top: 33px;
display: block;
margin-top: 33px;
}
.card-number {
display: block;
font-family: Avenir-Heavy;
font-size: 16px;
color: #ffffff;
letter-spacing: 6px;
line-height: 24px;
}
}
}
}
}
.swipeout-list .item .function {
left: 330px;
border-radius: 6px;
width: 54px;
height: 190px;
background: url("../../../assets/userBind/delete.png") 16px 84.9px #fde5e8
no-repeat;
background-size: 20px 20px;
}
}
</style>
<!--
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-09-19 09:31:19
* @LastEditTime: 2019-09-23 17:44:14
* @LastEditors: Please set LastEditors
-->
<template>
<h-view id="base-info" class="public-style" title="基本信息">
<h-header :proportion="[5,1,1]" class="header">
<div slot="left" class="h-header-btn" @click="$routeGo()">
<img src="@/assets/userBind/arrow.png" >
<span>用户绑定</span>
</div>
</h-header>
<Tab @getTabNum="getTabNum" />
<h-content class="content">
<div v-show="tabNum==0">
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name" class="font-color">客户类型</div>
<input
slot="content"
v-model="bp_type_n"
placeholder="请选择"
type="text"
readonly
@click="selectIdType()"
>
</item>
<item v-if="bp_type_flag">
<div slot="name">{{ typeName }}</div>
<input slot="content" :placeholder="type" v-model="baseInfo.agent_username" >
</item>
</list-item>
<div class="userInfo martop">企业信息</div>
<div class="upload-id-card">
<span class="font-color">营业执照照片上传</span>
<div class="upload-box1">
<!-- <div> -->
<img src="@/assets/userBind/camera.png" >
<!-- </div> -->
</div>
</div>
<!-- 营业执照识别信息 -->
<list-item :item-height="44" class="second-part">
<item>
<div slot="name" class="font-color">公司名称</div>
<input slot="content" v-model="baseInfo.bp_name" placeholder="上传营业执照自动填充" class="auto" >
</item>
<item>
<div slot="name" class="font-color">企业类型</div>
<input
slot="content"
v-model="baseInfo.legal_property"
placeholder="上传营业执照自动填充"
class="auto"
>
</item>
<item>
<div slot="name" class="font-color">统一社会信用代码</div>
<input slot="content" v-model="baseInfo.organization_code" placeholder="上传营业执照自动填充" >
</item>
<item>
<div slot="name" class="font-color">注册资本</div>
<input slot="content" v-model="baseInfo.registered_capital" placeholder="上传营业执照自动填充" >
</item>
<item>
<div slot="name" class="font-color">法定代表人</div>
<input slot="content" v-model="baseInfo.legal_person" placeholder="上传营业执照自动填充" >
</item>
<item>
<div slot="name" class="font-color">注册地址</div>
<input slot="content" v-model="baseInfo.registered_place" placeholder="请输入注册地址" >
</item>
<item>
<div slot="name" class="font-color">经营地址</div>
<input slot="content" v-model="baseInfo.park_address" placeholder="请输入经营地址" >
</item>
<item>
<div slot="name" class="font-color">固定电话</div>
<input slot="content" v-model="baseInfo.phone" placeholder="请输入固定电话" >
</item>
</list-item>
<!-- 授权切换 -->
<div class="authorize">
<p class="authorize-select font-color">是否授权</p>
<div class="authorize-checklist" @click="authorizeChange">
<div v-if="flag" />
<img v-if="!flag" src="@/assets/userBind/org/checklist.png" alt >
</div>
</div>
<div class="userInfo types">{{ text }}</div>
<div class="upload-id-cards">
<span>身份证照片上传</span>
<div class="upload-box">
<div>
<img src="@/assets/userBind/org/front.png" >
<p>正面</p>
</div>
<div>
<img src="@/assets/userBind/org/back.png" >
<p>反面</p>
</div>
</div>
</div>
<!-- 已授权 -->
<list-item v-if="!flag" :item-height="44" class="second-part">
<item>
<div slot="name" class="font-color">姓名</div>
<input
slot="content"
v-model="authMsg.auth_person_name"
readonly
placeholder="上传身份证自动填充"
>
</item>
<item>
<div slot="name" class="font-color">身份证号</div>
<input
slot="content"
v-model="authMsg.auth_person_id_card"
readonly
placeholder="上传身份证自动填充"
>
</item>
<item>
<div slot="name" class="font-color">公司职务</div>
<input slot="content" v-model="authMsg.auth_person_position" placeholder="请输入公司职务" >
</item>
<item>
<div slot="name" class="font-color">授权事项</div>
<input slot="content" v-model="authMsg.auth_person_matter" placeholder="请输入授权事项" >
</item>
</list-item>
<!-- 未授权 -->
<list-item v-if="flag" :item-height="44" class="second-part">
<item>
<div slot="name" class="font-color">姓名</div>
<input slot="content" v-model="legal_personMsg.id_card_name" placeholder="上传身份证自动填充" >
</item>
<item>
<div slot="name" class="font-color">身份证号</div>
<input slot="content" v-model="legal_personMsg.id_card_no" placeholder="上传身份证自动填充" >
</item>
<item>
<div slot="name" class="font-color">手机号</div>
<input slot="content" v-model="legal_personMsg.cell_phone" placeholder="请输入手机号" >
</item>
<item>
<div slot="name" class="font-color">居住地址</div>
<input slot="content" v-model="legal_personMsg.living_address" placeholder="请输入居住地址" >
</item>
</list-item>
<div v-if="!flag" class="upload-id-card">
<span>授权书证件上传</span>
<div class="upload-box1">
<!-- <div> -->
<img src="@/assets/userBind/camera.png" >
<!-- </div> -->
</div>
</div>
<!-- 资产信息 -->
<div :class="{martop: flag,types:!flag}" class="userInfo">资产信息</div>
<div class="card2">
<span>房产证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
<div class="card2">
<span>车辆证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
<div class="card2">
<span>其他资产证件</span>
<div class="img-content">
<div class="card-upload">
<img src="@/assets/userBind/camera.png" >
</div>
</div>
</div>
</div>
<BankInfo v-show="tabNum==1" @getInfo="getInfo" />
<InvoiceInfo v-show="tabNum==2" @getinvoiceList="getinvoiceList" />
</h-content>
<bottom-tab class="footer-button">
<tab-button class="put">提交</tab-button>
<tab-button class="save" @click.native="verified">保存</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue" position="bottom" cus-class="search-modal">
<h-content class="modal-content">
<div class="modal-content-add-top">
<span>添加银行卡</span>
<img src="@/assets/userBind/close.png" @click="hideModal" >
</div>
<img src="@/assets/userBind/addBack.png" class="addBack" >
<list-item :item-height="44" class="card-Info">
<item>
<div slot="name">银行卡卡号</div>
<input
slot="content"
v-model="bank_lists.bank_account_num"
placeholder="银行卡卡号自动填充"
>
</item>
<item>
<div slot="name">账户姓名</div>
<input
slot="content"
v-model="bank_lists.bank_account_name"
placeholder="请输入账户名称"
>
</item>
<item>
<div slot="name">银行名称</div>
<input
slot="content"
v-model="bank_lists.bank_full_name"
placeholder="请输入银行名称"
>
</item>
<item>
<div slot="name">支行名称</div>
<input
slot="content"
v-model="bank_lists.bank_branch_name"
placeholder="请输入支行名称"
>
</item>
</list-item>
</h-content>
<bottom-tab class="add-box">
<tab-button class="add-card">添加</tab-button>
</bottom-tab>
</h-modal>
</h-view>
</template>
<script>
import Tab from '@/components/tab'
import InvoiceInfo from './invoiceInfo'
import BankInfo from './bankInfo'
export default {
name: 'Enterprise',
components: {
Tab,
BankInfo,
InvoiceInfo,
},
data () {
return {
tabNum: 0,
flag: true,
img_url: {},
typeList: [],
backList: [],
lastInfo: {},
bp_type_n: '',
invoiceInfo: {},
maritalList: [],
academic_bg_n: '',
text: '法人代表信息',
bp_type_flag: false,
typeName: '业务经办',
marital_status_n: '',
showModalValue: false,
type: '请输入业务经办姓名',
legal_personMsg: {
id_card_no: null,
id_card_name: '',
cell_phone: null,
living_address: '',
},
baseInfo: {
bp_type: '',
bp_name: '',
phone: null,
auth_flag: '',
park_address: '',
legal_person: '',
legal_property: '',
agent_username: '',
registered_place: '',
organization_code: null,
registered_capital: null,
bp_class: this.$route.params.bp_class,
},
bank_lists: {
bank_account_num: '',
bank_account_name: '',
bank_card_type: '',
bank_full_name: '',
bank_branch_name: '',
},
authMsg: {
auth_person_name: '',
auth_person_matter: '',
auth_person_id_card: '',
auth_person_position: '',
},
}
},
computed: {},
watch: {
// 监听客户类型
bp_type_n () {
let vm = this
if (vm.baseInfo.bp_type === 'TENANT' || vm.baseInfo.bp_type === 'GUTA') {
vm.type = '请输入业务经办员工代码'
vm.typeName = '业务经办'
vm.bp_type_flag = true
} else if (
vm.baseInfo.bp_type === 'AGENT' ||
vm.baseInfo.bp_type === 'OFFICE' ||
vm.baseInfo.bp_type === 'FACTORY'
) {
vm.bp_type_flag = false
}
},
flag () {
if (this.flag) {
this.text = '法人代表信息'
} else {
this.text = '授权信息'
}
},
},
created () {
this.getBpType()
},
methods: {
verified () {
if (this.flag) {
this.baseInfo.auth_flag = '未授权'
this.lastInfo = { ...this.baseInfo, ...this.legal_personMsg }
} else {
this.baseInfo.auth_flag = '已授权'
this.lastInfo = { ...this.baseInfo, ...this.authMsg }
}
console.log('last', this.lastInfo)
let vm = this
for (var key in vm.lastInfo) {
if (!vm.lastInfo[key]) {
vm.hlsPopup.showLongCenter('基本信息不完整!')
return
}
}
},
hideModal () {
this.showModalValue = false
},
getInfo (i) {
this.showModalValue = i
},
getinvoiceList (val) {
console.log(val)
this.invoiceInfo = val
},
authorizeChange () {
this.flag = !this.flag
if (this.flag) {
this.auth_flag = '未授权'
} else {
this.auth_flag = '已授权'
}
},
// 客户类型下拉框
selectIdType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.typeList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.baseInfo.bp_type = obj.bp_type
vm.bp_type_n = obj.bp_type_n
},
})
},
getTabNum (i) {
this.tabNum = i
},
fileSuccess (fileList, result) {
this.fileList = fileList
this.fileList.forEach((itemFile, index) => {
if (
result.response &&
itemFile.file &&
!itemFile.attachment_id &&
result.response.fileName === itemFile.file.name
) {
itemFile.attachment_id = result.response.attachment_id
}
})
},
// 客户类型请求
getBpType () {
let vm = this
let url = process.env.basePath + 'bp_type_select'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.typeList = res.lists.map(item => {
return {
code: item.bp_type,
code_name: item.bp_type_n,
}
})
}
})
},
},
}
</script>
<style lang='less' scoped>
#base-info {
font-family: PingFangSC-Regular;
input::placeholder {
color: #b4b4b5;
}
.header {
background-color: #00469c;
color: #fff;
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.6px;
line-height: 24px;
}
}
}
.content {
margin-top: 3px;
.font-color {
color: #656464;
}
.martop {
margin-top: -10px;
}
.userInfo {
height: 40px;
line-height: 40px;
background-color: #fafafa;
color: #00469c;
font-size: 15px;
margin-left: 16px;
position: relative;
}
.userInfo::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
position: absolute;
left: -15px;
top: 10px;
}
.types {
margin-top: 0;
}
.authorize {
width: 100%;
height: 32px;
display: flex;
flex-direction: row;
align-items: center;
background: rgba(0, 70, 156, 0.03);
.authorize-select {
// width: 48px;
height: 20px;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
line-height: 20px;
margin-left: 16px;
}
.authorize-checklist {
width: 16px;
height: 16px;
margin-left: 8px;
div {
width: 100%;
height: 100%;
border: 1px solid #00469c;
border-radius: 3px;
}
}
}
.upload-id-cards {
height: 176px;
background-color: #fff;
span {
display: block;
color: #656464;
margin-left: 16px;
padding-top: 16px;
font-size: 13px;
}
.upload-box {
display: flex;
justify-content: center;
margin-top: 15px;
div {
width: 172px;
height: 120px;
border: 1px dashed #dcdcdd;
text-align: center;
font-size: 14px;
color: #b4b4b5;
.front,
.back {
width: 172px;
height: 120px;
}
}
div:nth-of-type(2) {
margin-left: 7px;
}
img {
margin-top: 32px;
width: 58px;
height: 45px;
}
p {
margin-top: 12px;
font-size: 13px;
}
}
}
.upload-id-card {
height: 122px;
background-color: #fff;
span {
display: block;
color: #656464;
margin-left: 16px;
padding-top: 16px;
font-size: 13px;
}
.upload-box1 {
width: 80px;
height: 80px;
border: 1px dashed #dcdcdd;
text-align: center;
margin-top: 8px;
margin-left: 16px;
img {
margin-top: 30px;
width: 25px;
height: 25px;
}
}
}
.second-part {
margin-top: 9px;
.auto {
color: #b4b4b5;
}
}
// .card {
// padding-bottom: 8px;
// span {
// color: #656464;
// font-size: 18px;
// }
// .card-upload {
// width: 80px;
// height: 80px;
// border: 1px dashed #dcdcdd;
// display: flex;
// justify-content: center;
// align-items: center;
// margin-top: 12px;
// }
// img {
// width: 24px;
// height: 24px;
// }
// }
.card2 {
padding-bottom: 8px;
height: auto;
background-color: #fff;
margin-bottom: 10px;
span {
color: #656464;
font-size: 13px;
line-height: 18px;
padding-top: 8px;
display: block;
margin-left: 16px;
}
.img-content {
display: flex;
flex-flow: row wrap;
justify-content: flex-start;
align-items: center;
}
.card-upload {
width: 88px;
height: 88px;
border: 1px dashed #dcdcdd;
display: flex;
justify-content: center;
align-items: center;
margin-top: 12px;
margin-left: 16px;
// float: left;
img {
width: 24px;
height: 24px;
}
}
}
}
.put {
width: 175px;
height: 45px;
color: #00469c;
border-radius: 4px;
border: 1px solid #00469c;
background-color: #fafafa;
}
.save {
width: 175px;
height: 45px;
color: #fff;
border-radius: 4px;
background-color: #00469c;
}
.footer-button {
height: 88px;
padding-top: 10px;
padding-bottom: 41px;
}
.front,
.photo,
.backphoto,
.back {
display: none;
}
}
.modal-content {
height: 71%;
position: absolute;
top: 29%;
background-color: #fff;
.modal-content-add-top {
width: 320px;
margin: 0 auto;
height: 34px;
line-height: 34px;
margin-top: 10px;
margin-bottom: 16px;
span {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
letter-spacing: 0.47px;
}
img {
width: 34px;
height: 34px;
float: right;
}
}
.addBack {
display: block;
width: 320px;
margin: 0 auto;
border-radius: 6px;
margin-bottom: 17px;
}
.card-Info {
margin-bottom: 220px;
}
}
.add-card {
width: 358px;
height: 40px;
background: #00469c;
border-radius: 4px;
color: #fff;
// margin-top:-35px;
}
// .add-box{
// height: 88px;
// }
</style>
<!--
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-09-20 09:35:11
* @LastEditTime: 2019-09-20 10:41:24
* @LastEditors: Please set LastEditors
-->
<template>
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name" class="font-color">纳税人类型</div>
<input
slot="content"
v-model="taxpayer_type_n"
type="text"
readonly
placeholder="请选择"
@click="selectTaxpayer"
>
</item>
<item :showArrow="true">
<div slot="name" class="font-color">发票类型</div>
<input
slot="content"
v-model="invoice_kind_n"
type="text"
readonly
placeholder="请选择"
@click="selectInvoiceType"
>
</item>
<item>
<div slot="name" class="font-color">发票抬头</div>
<input slot="content" v-model="invoiceInfo.invoice_title" type="text" placeholder="请输入发票抬头" >
</item>
<item>
<div slot="name" class="font-color">发票地址及电话</div>
<input slot="content" v-model="invoiceInfo.invoice_bp_address_phone_num" type="text" placeholder="请输入发票地址及电话" >
</item>
<item>
<div slot="name" class="font-color">发票开户行及账号</div>
<input
slot="content"
v-model="invoiceInfo.invoice_bp_bank_account"
type="text"
placeholder="请输入发票开户行及账号"
>
</item>
<item>
<div slot="name" class="font-color">纳税人识别号</div>
<input
slot="content"
v-model="invoiceInfo.organization_code" type="text" placeholder="请输入纳税人识别号"
>
</item>
</list-item>
</template>
<script>
export default {
name: 'InvoiceInfo',
data () {
return {
invoicList: [],
taxpayerList: [],
invoice_kind_n: '',
taxpayer_type_n: '',
invoiceInfo: {
invoice_kind: '',
taxpayer_type: '',
invoice_title: '',
organization_code: '',
invoice_bp_bank_account: '',
invoice_bp_address_phone_num: '',
},
}
},
created () {
this.getInvoiceType()
this.getTaxpayer()
},
updated () {
this.sendList()
},
methods: {
getInvoiceType () {
let vm = this
let url = process.env.basePath + 'bp_invoice_kind_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.invoicList = res.lists.map(item => {
return {
code: item.invoice_kind,
code_name: item.invoice_kind_n,
}
})
}
})
},
getTaxpayer () {
let vm = this
let url = process.env.basePath + 'bp_taxpayer_type_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.taxpayerList = res.lists.map(item => {
return {
code: item.taxpayer_type,
code_name: item.taxpayer_type_n,
}
})
}
})
},
selectInvoiceType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.invoicList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.invoiceInfo.invoice_kind = obj.bp_type
vm.invoice_kind_n = obj.bp_type_n
},
})
},
selectTaxpayer (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.taxpayerList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.invoiceInfo.taxpayer_type = obj.bp_type
vm.taxpayer_type_n = obj.bp_type_n
},
})
},
sendList () {
this.$emit('getinvoiceList', this.invoiceInfo)
},
},
}
</script>
<style scoped>
input::placeholder{
color: #B4B4B5;
}
.font-color {
color: #656464;
}
</style>
<template>
<h-view id="user-bind" class="public-style" title="用户绑定">
<h-header :proportion="[5,1,1]" class="header">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" >
<span>用户绑定</span>
</div>
</h-header>
<h-content class="content">
<div class="info">
<div class="info-icon">
<span>温馨提示</span>
<img src="@/assets/userBind/info.png" >
</div>
<p>绑定成功后,您即可使用APP中合同查询、还款查询等功能。</p>
</div>
<p>选择用户类型</p>
<h-button :class="flag==0?'nature':'org'" @click.native="flag = 0">
<img src="@/assets/userBind/np.png" class="n-img" >自然人
</h-button>
<h-button :class="flag==1?'nature':'org'" @click.native="flag = 1">
<img src="@/assets/userBind/entr.png" class="o-img" >企业
</h-button>
<h-button class="enter" @click.native="changePage">
进入
<img src="@/assets/userBind/right.png" >
</h-button>
</h-content>
</h-view>
</template>
<script>
export default {
data () {
return {
flag: 0,
}
},
created () {
},
methods: {
changePage () {
let name
let bpClass
if (this.flag === 0) {
name = 'NaturePerson'
bpClass = 'NP'
} else if (this.flag === 1) {
name = 'Enterprise'
bpClass = 'ORG'
}
this.$router.push({
name: name,
params: {
'bp_class': bpClass,
},
})
},
},
}
</script>
<style lang="less" scoped type="text/less">
#user-bind {
.header {
background-color: #00469c;
color: #fff;
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.6px;
line-height: 24px;
}
}
}
.content {
.info {
height: 88px;
background-color: rgba(142, 195, 30, 0.1);
.info-icon {
height: 20px;
padding-top: 20px;
display: flex;
align-items: center;
img {
width: 15.8px;
height: 15.8px;
margin-left: 17.1px;
}
span {
color: rgba(142, 195, 30, 1);
font-family: PingFangSC-Semibold;
font-size: 14px;
margin-left: 9px;
letter-spacing: 0.5px;
line-height: 20px;
}
}
p {
font-size: 13px;
font-family: PingFangSC-Regular;
color: rgba(101, 100, 100, 0.8);
width: 310px;
margin-left: 42px;
letter-spacing: 0.4px;
line-height: 18px;
margin-top: 8px;
}
}
p {
color: rgba(101, 100, 100, 0.4);
font-family: PingFangSC-Regular;
letter-spacing: 0.5px;
line-height: 24px;
margin-left: 16px;
margin-top: 24px;
}
.nature,
.org,
.enter {
display: block;
width: 343px;
height: 56px;
font-size: 15px;
letter-spacing: 0.5px;
line-height: 20px;
margin: 0 auto;
margin-top: 16px;
font-family: PingFangSC-Regular;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
}
.nature {
color: rgba(0, 70, 156, 1);
background-color: rgba(0, 98, 217, 0.1);
border: 1px solid rgba(0, 70, 156, 1);
}
.n-img {
width: 18.3px;
height: 21px;
margin-right: 8px;
}
.o-img {
width: 22.5px;
height: 19.5px;
margin-right: 8px;
}
.org {
background-color: rgba(220, 220, 221, 0.3);
color: rgba(101, 100, 100, 1);
border: none;
}
.enter {
background-color: rgba(0, 70, 156, 1);
color: #fff;
margin-top: 80px;
img {
width: 18px;
margin-left: 6.3px;
}
}
}
}
// iPhoneX适配
// @media (device-width: 375px) and (device-height: 812px) and (-webkit-min-device-pixel-ratio: 3) {
// .platform-ios {
// #home{
// }
// }
// }
// iPhoneX Max适配
// @media (device-width: 414px) and (device-height: 896px) {
// .platform-ios {
// .platform-ios {
// #home{
// }
// }
// }
// }
</style>
......@@ -15,6 +15,11 @@ import MyInfo from '@/pages/myInfo/my-info'
// test工具类
import HlsPopup from '@/pages/hlsPopup'
// 用户绑定
import UserBind from '@/pages/userBind/userBind'
import NaturePerson from '@/pages/userBind/np/naturePerson'
import Enterprise from '@/pages/userBind/org/enterprise'
Vue.use(Router)
export default new Router({
......@@ -74,7 +79,10 @@ export default new Router({
// test工具类
{path: '/hls-popup', component: HlsPopup, name: 'HlsPopup', meta: {keepAlive: false}},
// 用户绑定
{path: '/user-bind', component: UserBind, name: 'UserBind', meta: {keepAlive: false}},
{path: '/nature-person', component: NaturePerson, name: 'NaturePerson', meta: {keepAlive: false}},
{path: '/enterprise', component: Enterprise, name: 'Enterprise', meta: {keepAlive: false}},
],
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
......
.public-style {
.h-header .h-header-left .h-header-btn:first-of-type{
/*.h-header .h-header-left .h-header-btn:first-of-type{
padding-left: 20px;
}
}*/
.bar-custom {
background-color: @theme-color
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment