123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471 |
- <template>
- <view class="page">
- <headerline shownav=true isback="true" @tapnav="tapnav" :navstyle="navstyle" :navitem="navitem"
- :navselect="navselect" :statusbarheight='statusBarHeight'></headerline>
- <view v-if="navselect==0">
- <ul class="cardManage clearFix" id="_bankList" style="clear: both;margin-top: 10px;">
- <li class="bank_item" v-for="(value,index) in bank" :key='index'>
- <dl>
- <dd><span> {{value['bankname']}}</span><span>持卡人:{{value['realname']}}</span></dd>
- <dd><span>卡号:{{value['number']}}</span></dd>
- </dl>
- <p class="bank_bottom">绑定时间:{{$action.timestampToTime(value['time'])}}<span></span></p>
- <span class="bank_default" v-if="value.default==1">
- <image src="../../static/img/bank_img.png" style="height:60px;width:60px;">
- </span>
- </li>
- </ul>
- <div class="nodata" style="color: #666;clear: both;margin-top: 10px;text-align: center">
- 最多可以绑定<span style="color: #ff0000">{{system['bank_num']}}</span>张银行卡
- </div>
- </view>
- <view v-else>
- <ul class="profile">
- <li>姓 名:</li>
- <li>
- <block v-if="banklen>0">
- {{realname}}
- </block>
- <input v-else v-model="realname" class="input1" />
- </li>
- </ul>
- <ul class="profile">
- <li>卡 号:</li>
- <li><input name="banknum" id="banknum" type="digit" v-model="banknum" class="input1">
- </li>
- </ul>
- <ul class="profile">
- <li>选择银行:</li>
- <li>
- <picker @change="bindbankChange" :value="bankid" :range="banklist">
- <view class="uni-input">{{bankname}}</view>
- </picker>
- </li>
- </ul>
- <ul class="profile">
- <li>所在地区:</li>
- <li>
- <picker mode="multiSelector" @cancel="oncancel()" @columnchange="bindMultiPickerColumnChange"
- :value="multiIndex" :range="area">
- <view class="uni-input" @tap="tapaddress();">{{item.province}},{{item.city}}</view>
- </picker>
- </li>
- </ul>
- <ul class="profile">
- <li>支行名称:</li>
- <li>
- <input type="text" name="mark" v-model="mark" class="input1" id="mark">
- </li>
- </ul>
- <ul class="profile">
- <li>首 选 卡:</li>
- <li>
- <picker @change="binddefaultChange" :value="isdefault" :range="default_arr">
- <view class="uni-input">{{default_arr[isdefault]}}</view>
- </picker>
- </li>
- </ul>
- <ul class="profile">
- <li>资金密码:</li>
- <li>
- <input type="password" name='pwd' id='pwd' v-model='pwd' class="input1" maxlength="6">
- </li>
- </ul>
- <view style="margin:15px auto;display:block;width: 80%;">
- <button class="button1" @tap="click_bind()">
- 确认并提交
- </button>
- </view>
- </view>
- </view>
- </template>
- <script>
- import api from "../../library/index.js"
- import headerline from '../../components/header.vue'
- import http from "../../library/http.js"
- import uniIcons from '../../components/uni-icons/uni-icons.vue'
- import address from '../../library/address.js'
- var statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
- export default {
- components: {
- uniIcons,
- headerline,
- },
- data() {
- return {
- statusBarHeight: statusBarHeight + 'px',
- navitem: ['我的银行卡', '新增银行卡'],
- navselect: 0,
- navstyle: "width:60%;left:20%",
- user: uni.getStorageSync('userInfo'),
- system: uni.getStorageSync('system'),
- bank: uni.getStorageSync('bank'),
- banklen: 0,
- banklist: uni.getStorageSync('banklist'),
- realname: '',
- default_arr: ['否', '是'],
- isdefault: 1,
- province: [],
- city: [],
- multiIndex: [0, 0],
- area: [
- ['省份'],
- ['城市']
- ],
- showarea: 0,
- provice1: '',
- city1: '',
- provice2: '',
- city2: '',
- c1: 0,
- c2: 0,
- item: {
- 'province': '省份',
- 'city': '城市'
- },
- bankname: '工商银行',
- banknum: '',
- pwd: '',
- mark: '',
- bankid: 0,
- }
- },
- methods: {
- tapnav(num) {
- if (num == 0 && this.banklen == 0) {
- uni.showToast({
- title: '您还没有绑定任何银行卡',
- icon: 'none'
- })
- } else {
- if (this.banklen >= this.system['bank_num']) {
- uni.showToast({
- title: '每个用户最多只能绑定' + this.system['bank_num'] + '张银行卡',
- icon: 'none'
- })
- } else
- this.navselect = num;
- }
- },
- binddefaultChange(e) {
- this.isdefault = e.target.value
- },
- bindbankChange(e) {
- var num = e.target.value;
- this.bankname = this.banklist[num]
- this.bankid = num;
- },
- setbanknum(num) {
- },
- tapaddress() {
- // console.log( this.sex);
- // console.log( this.area[0]);
- // console.log( this.area[1]);
- this.provice2 = this.item.province;
- this.city2 = this.item.city;
- },
- bindMultiPickerColumnChange(e) {
- var detail = e.detail;
- detail.value = parseInt(detail.value);
- if (detail.column == 0) {
- // console.log(this.city[detail.value].city);
- this.c1 = detail.value;
- this.area[1] = this.city[detail.value].city;
- this.multiIndex[0] = detail.value;
- this.provice1 = this.city[detail.value].province;
- this.city1 = this.area[1][this.c2];
- } else {
- this.c2 = detail.value;
- this.multiIndex[1] = detail.value;
- this.city1 = this.area[1][detail.value];
- }
- this.item.province = this.provice1
- this.item.city = this.city1
- },
- oncancel() {
- this.item.province = this.provice2
- this.item.city = this.city2
- },
- getAddress() {
- if (!this.item.province || this.item.province == null) this.item.province = '省份';
- if (!this.item.city || this.item.city == null) this.item.city = '城市';
- var c1 = 0;
- address.forEach(item => {
- this.province.push(item.provinceName);
- // console.log(this.item.province,item.provinceName);
- if (this.item.province == item.provinceName) this.multiIndex[0] = parseInt(c1);
- c1++;
- var arr = {};
- arr.province = item.provinceName;
- var city1 = [];
- var c2 = 0;
- item.city.forEach(c => {
- if (c.cityName != '')
- city1.push(c.cityName)
- if (this.item.province == item.provinceName && this.item.city == c.cityName)
- this.multiIndex[1] = parseInt(c2);
- c2++;
- })
- arr.city = city1;
- this.city.push(arr)
- })
- // console.log(this.province);
- // this.area=[];
- this.area[0] = this.province;
- this.area[1] = this.city[this.multiIndex[0]].city;
- this.showarea = 1;
- },
- getuserinfo() {
- var postdata = {
- id: uni.getStorageSync('access_token')
- };
- http.setWait(false).post('user.php?act=userinfo', postdata).then(res => {
- this.user = res.data;
- uni.setStorageSync('userInfo', this.user)
- })
- },
- getbank() {
- var postdata = {
- userid: uni.getStorageSync('access_token')
- };
- http.setWait(false).post('user.php?act=mybank', postdata).then(res => {
- this.bank = res.data;
- uni.setStorageSync('bank', this.bank)
- if (res.num < 1) this.tapnav(1);
- else {
- this.realname = res.data[0].realname;
- this.isdefault = 0;
- }
- this.banklen = res.num;
- var banklist = [];
- for (var ii in res.banklist) {
- banklist.push(res.banklist[ii])
- }
- this.banklist = banklist;
- uni.setStorageSync('banklist', banklist);
- this.getuserinfo();
- })
- },
- click_bind() {
- if (this.realname == '') {
- uni.showToast({
- title: '请输入开户姓名',
- icon: 'none'
- })
- return false;
- }
- // if (this.realname.length < 2 || this.realname.length > 4) {
- // uni.showToast({
- // title: '开户姓名最多四个字',
- // icon: 'none'
- // })
- // return false;
- // }
- var reglx = /^[\u0391-\uFFE5]+$/;
- if (!reglx.test(this.realname)) {
- uni.showToast({
- title: '开户姓名只能包含中文',
- icon: 'none'
- })
- return false;
- }
- if (this.banknum == "") {
- uni.showToast({
- title: '请输入银行卡号',
- icon: 'none'
- })
- return false;
- }
- if (this.banknum.length < 15 || this.banknum.length > 19) {
- uni.showToast({
- title: '银行卡号长度必须在15到19之间',
- icon: 'none'
- })
- return false;
- }
- var num = /^\d*$/;
- //全数字
- if (!num.exec(this.banknum)) {
- uni.showToast({
- title: '银行卡号必须全为数字',
- icon: 'none'
- })
- return false;
- }
- // var regExp = /^([1-9]{1})(\d{14}|\d{15}|\d{16}|\d{17}|\d{18}|\d{19})$/;
- // if(!regExp.test(this.banknum)){
- // uni.showToast({
- // title:'银行卡号格式不正确',
- // icon:'none'
- // })
- // return false;
- // }
- if (this.item.city == '城市') {
- uni.showToast({
- title: '请输选择开户行所在地区',
- icon: 'none'
- })
- return false;
- }
- if (this.mark == "") {
- uni.showToast({
- title: '请输入支行名称',
- icon: 'none'
- })
- return false;
- }
- if (this.pwd == "") {
- uni.showToast({
- title: '请输入资金密码',
- icon: 'none'
- })
- return false;
- }
- if (parseInt(this.pwd) > 0 && parseInt(this.pwd) < 1000000 && this.pwd.length == 6) {
- } else {
- uni.showToast({
- title: '资金密码必须为6位数字',
- icon: 'none'
- })
- return false;
- }
- if (this.$action.check_userlock() == false) return false;
- http.setWait(true).post('user.php?act=bank_add', {
- userid: this.user.id,
- bankname: this.bankname,
- realname: this.realname,
- banknum: this.banknum,
- province: this.item.province,
- city: this.item.city,
- mark: this.mark,
- default: this.isdefault,
- pwd: this.pwd
- }).then(res => {
- this.getbank();
- this.navselect = 0
- uni.showToast({
- icon: 'none',
- title: '银行卡绑定成功',
- duration: 1000
- })
- })
- }
- },
- onLoad(opts) {
- this.getbank();
- this.getAddress();
- }
- }
- </script>
- <style lang="scss" scoped>
- @import "@/static/css/user.css";
- .page {
- background-color: #fafafa;
- }
- .profile,
- .login-lines1 {
- background-color: #fff;
- margin: 10px auto;
- width: 100%;
- vertical-align: middle;
- }
- .profile li {
- vertical-align: middle;
- }
- .profile li:first-child {
- width: 100px
- }
- .profile li:last-child {
- width: calc(100% - 130px)
- }
- </style>
|