fourPayProject/51pay-uni/homePages/Agent/Details.vue
2025-03-31 10:14:11 +08:00

445 lines
10 KiB
Vue

<template>
<view class="content">
<u-overlay :show="overlayShow"></u-overlay>
<view class="container">
<headers :titles="titles"><uni-icons type="arrow-left" color="#fff" size="22px"></uni-icons></headers>
<view class="h-box">
<view class="">代理商名称</view>
<view class="right-input">
<input type="text" placeholder="请输入代理商名称" v-model="agentInfo.agentName" />
</view>
</view>
<view class="h-box">
<view class="">法人姓名</view>
<view class="right-input">
<input type="text" placeholder="请输入法人姓名" v-model="agentInfo.corpName" />
</view>
</view>
<view class="h-box">
<view class="">法人手机号</view>
<view class="right-input">
<input type="text" placeholder="请输入法人手机号" v-model="agentInfo.corpPhone" />
</view>
</view>
<view class="h-box">
<view class="">结算卡号</view>
<view class="right-input">
<input type="text" placeholder="请输入结算卡号" v-model="agentInfo.accNo" />
</view>
</view>
<view class="h-box">
<view class="">账户名称</view>
<view class="right-input">
<input type="text" placeholder="请输入账户名称" v-model="agentInfo.accName" />
</view>
</view>
<view class="h-box">
<view class="">银行名称</view>
<!-- <view class="d-s" @click="show= true">
<view class="hui-size">请选择银行</view>
<u-icon name="arrow-right" size="16"></u-icon>
</view> -->
<view class="d-s" @click="gobankList()">
<view class="hui-size">{{this.agentInfo.bankName}}</view>
<u-icon name="arrow-right" size="16"></u-icon>
</view>
</view>
<view class="h-box">
<view class="">预留手机号</view>
<view class="right-input">
<input type="text" placeholder="请输入预留手机号" v-model="agentInfo.mobile" />
</view>
</view>
<view class="h-box">
<view class="">员工工号</view>
<view class="right-input">
<input type="text" placeholder="员工工号(非必填)" v-model="agentInfo.mobile" />
</view>
</view>
<view class="bs-img">
<view class="">
<u-upload :fileList="fileList1" @afterRead="addInfoImg" @delete="deletePic" name="1" :maxCount="1"
width="160" height="80">
<image src="/static/imgs/ghimg.png" mode="widthFix" style="width: 160px;height: 80px;"></image>
</u-upload>
</view>
<view class="">
<u-upload :fileList="fileList2" @afterRead="addInfoImg" @delete="deletePic" name="2" multiple
:maxCount="1" width="160" height="80">
<image src="/static/imgs/ghimg.png" mode="widthFix" style="width: 160px;height: 80px;"></image>
</u-upload>
</view>
</view>
<view class="bs-img">
<view class="">
<u-upload :fileList="fileList3" @afterRead="addInfoImg" @delete="deletePic" name="3" multiple
:maxCount="1" width="160" height="80">
<image src="/static/imgs/ghimg.png" mode="widthFix" style="width: 160px;height: 80px;"></image>
</u-upload>
</view>
</view>
<view class="bs-img">
</view>
<view class="bottom_a" v-if="canAudit==1">
<view class="a_" @click="auditAgent(2)">审核通过</view>
<view class="a_" @click="showl=true">审核拒绝</view>
</view>
<view class="bottom_">
<view class="left-b" v-if="auditStatus==0&&canUpdate==1" @click="editTwoAgent()">补全信息</view>
<view class="right-b" v-if="auditStatus==0||auditStatus==2" @click="goRate()">费率设置</view>
</view>
<!-- <view class="annniu">
提交
</view> -->
<u-popup :show="showl" mode="center" :round="10" @close="showl = false" @open="open">
<view class="pop-box">
<image src="../../static/imgs/shjj.png" mode=""></image>
<view class="pop-title">审核拒绝</view>
<u--textarea v-model="auditInfo.remarks" placeholder="请填写拒绝理由"></u--textarea>
<view class="pop-anniu" @click="auditAgent(3)">提交</view>
</view>
</u-popup>
<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="cancel"></u-picker>
</view>
</view>
</template>
<script>
import request from '../../utils/request.js'
import headers from '../../components/header/headers.vue'
import upload from '@/utils/upload.js'
export default {
data() {
return {
overlayShow: false,
showl: false,
bankName: '',
agentInfo: {},
agentImg: {},
objectId: '',
canAudit: null,
canUpdate: null,
auditStatus: null,
titles: "添加代理商",
fileList1: [],
fileList2: [],
fileList3: [],
show: false,
columns: [
['银行', '银行', '银行']
],
auditInfo: {
agentId: null,
auditStatus: null,
remarks: null
}
}
},
onShow() {},
onLoad(option) {
this.bankName = option.bankName;
this.objectId = option.objectId;
this.getAgentInfo()
uni.$on('bankIdzx', (res) => {
this.agentInfo.bankName = res
console.log('zx监听到了', res)
})
},
components: {
headers
},
methods: {
auditAgent(audit) {
if (audit == 3) {
if (!this.auditInfo.remarks) {
uni.showToast({
title: "请填写拒绝理由"
})
return
}
}
this.auditInfo.auditStatus = audit
request({
url: '/app/uaAgent/auditAgent',
method: 'post',
data: this.auditInfo
}).then(res => {
uni.navigateBack()
})
},
editTwoAgent() {
request({
url: '/app/uaAgent/editTwoAgent',
method: 'post',
data: this.agentInfo
}).then(res => {
uni.navigateBack()
})
},
async uploadFile(url, fileName, type) {
uni.showLoading({
title: '上传中'
});
this.overlayShow = true
upload({
url: 'app/base/upload',
filePath: url,
name: 'test'
}).then((res) => {
let that = this
if (res.code == 0) {
if (type == 1) {
this.agentInfo.idCardZ = res.url
} else if (type == 2) {
this.agentInfo.idCardF = res.url
} else if (type == 3) {
this.agentInfo.idCardInPerson = res.url
}
}
}).finally((res) => {
this.overlayShow = false
uni.hideLoading();
})
},
deletePic(event) {
this[`fileList${event.name}`].splice(event.index, 1)
},
//银行卡信息
async addInfoImg(event) {
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFile(lists[i].url, lists[i].name, event.name)
let item = this[`fileList${event.name}`][fileListLen]
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
message: '',
url: result
}))
fileListLen++
}
},
//获取代理商详情
getAgentInfo() {
request({
url: '/app/uaAgent/agentInfo',
method: 'post',
data: {
objectId: this.objectId
}
}).then(res => {
this.agentInfo = res.agentInfo
this.agentImg = res.agentImg
this.canAudit = res.canAudit
this.canUpdate = res.canUpdate
this.auditStatus = res.agentInfo.auditStatus
this.auditInfo.agentId = this.agentInfo.id
//处理图片问题
if (this.agentImg.idCardZ) {
this.fileList1 = []
let tempImg1 = {
url: this.agentImg.idCardZ,
}
this.fileList1.push(tempImg1)
this.agentInfo.idCardZ = this.agentImg.idCardZ
}
if (this.agentImg.idCardF) {
this.fileList2 = []
let tempImg2 = {
url: this.agentImg.idCardF
}
this.fileList2.push(tempImg2)
this.agentInfo.idCardF = this.agentImg.idCardF
}
if (this.agentImg.idCardInPerson) {
this.fileList3 = []
let tempImg3 = {
url: this.agentImg.idCardInPerson
}
this.fileList3.push(tempImg3)
this.agentInfo.idCardInPerson = this.agentImg.idCardInPerson
}
})
},
gobankList() {
uni.navigateTo({
url: '/homePages/Agent/bankList'
})
},
confirm() {
this.show = false
},
cancel() {
this.show = false
},
goback() {
uni.navigateBack()
},
goRate() {
uni.navigateTo({
url: '/homePages/Agent/Rate?agentId=' + this.agentInfo.id
})
}
}
}
</script>
<style scoped lang="scss">
.content {
background: #fff;
height: 100vh;
}
.container {
width: 100%;
background: #fff;
box-sizing: border-box;
padding-top: 88px;
}
.h-box {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 15px;
border-bottom: 1px solid #e3e3e3;
}
.d-s {
display: flex;
align-items: center;
}
.right-input {
text-align: right;
}
.hui-size {
color: #a3a3a3;
}
.bs-img {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 15px;
}
.annniu {
width: 100%;
height: 45px;
display: flex;
align-items: center;
justify-content: center;
background: #E4612E;
color: white;
}
.bottom_ {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.bottom_a {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
}
.a_ {
width: 150px;
height: 40px;
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
color: white;
background: #E4612E;
}
.pop-anniu {
width: 150px;
height: 25px;
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
color: white;
background: #E4612E;
margin: 15px auto;
}
.pop-title {
margin: 10px auto;
font-size: 18px;
font-weight: bold;
text-align: center;
margin-top: 0px;
margin-bottom: 20px;
}
.left-b {
width: 50%;
height: 40px;
background: #E4612E;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-weight: bold;
}
.right-b {
width: 50%;
height: 40px;
background: #22ad38;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-weight: bold;
}
.pop-box {
text-align: center;
width: 300px;
box-sizing: border-box;
padding: 15px;
border-radius: 8px;
background: #fff;
image {
width: 45px;
height: 45px;
}
}
</style>