Commit f94e10e0 authored by 许珑标's avatar 许珑标

签约信息中的代发账户管理

parent 37d74f4f
......@@ -9,6 +9,15 @@ export function listAccInfo(query) {
})
}
// 查询商户付款账户列表-无部门过滤
export function listLaborAcc(query) {
return request({
url: '/business/accInfo/labor/accList',
method: 'get',
params: query
})
}
// 查询商户付款账户所有列表
export function listAllAccInfo(query) {
return request({
......
......@@ -60,11 +60,12 @@ export function agreeSign(id) {
})
}
// 删除代发合约签订
export function giveAccToLabor(laborId) {
// 分配代发账户
export function giveAccToLabor(data) {
return request({
url: '/business/unitInfo/acc/give/' + laborId,
method: 'post'
url: '/business/unitInfo/acc/give',
method: 'post',
data: data
})
}
......
......@@ -95,7 +95,7 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="企业名称" prop="companyName">
<el-input v-model="form.companyName" disabled placeholder="请输入通道标识" />
<el-input v-model="form.companyName" disabled placeholder="企业名称" />
</el-form-item>
<el-form-item label="企业类型" prop="unitType">
<el-select disabled v-model="form.unitType" placeholder="请选择企业类型">
......
......@@ -735,9 +735,13 @@ export default {
this.aliQRCodeRechargeOpen = false
if (200 === res.code) {
if (1 === this.aliQRCodeRechargeForm.bindType) {
this.qrPayPanel.payUrl = res.data.msg
this.qrPayPanel.open = true
this.$forceUpdate()
if (res.data.status) {
this.qrPayPanel.payUrl = res.data.msg
this.qrPayPanel.open = true
this.$forceUpdate()
} else {
this.$modal.msgWarning(res.data.msg)
}
} else {
this.$modal.msgSuccess("充值成功!");
}
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="medium" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="代发账户" prop="payAccNo">
<el-input
v-model="queryParams.payAccNo"
placeholder="请输入账户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="支付通道" prop="channelCode">
<el-select v-model="queryParams.channelCode" placeholder="请选择支付通道" clearable>
<el-option v-for="(item, index) in sysPayChannelList" :label="item.channelName" :value="item.channelCode" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:post:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="accList">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属企业" align="center" prop="companyName" />
<el-table-column label="代发账户信息" align="center">
<el-table-column label="户名" align="center" prop="payAccName" />
<el-table-column label="账号" align="center" prop="payAccNo" />
<el-table-column label="所属通道" align="center" prop="channelCode">
<template slot-scope="scope">
{{ sysPayChannelMap.get(scope.row.channelCode) }}
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-info"
@click="viewDetail(scope.row)"
>账户详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="updateRate(scope.row)"
>设置费率</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 账户详情弹窗 -->
<el-dialog title="账号信息查询" :visible.sync="accDetail.panel" width="30%" center>
<el-descriptions :title="accDetail.companyName" :column="1" :label-style="accDetail.label_style"
:contentStyle="accDetail.content_style">
<el-descriptions-item label="账号">{{ accDetail.info.cardNo }}</el-descriptions-item>
<el-descriptions-item label="户名">{{ accDetail.info.bankAccName }}</el-descriptions-item>
<el-descriptions-item label="银行">{{ accDetail.info.cardBank }}</el-descriptions-item>
<el-descriptions-item label="支行">{{ accDetail.info.cardBranch }}</el-descriptions-item>
<el-descriptions-item label="开户地">{{ accDetail.info.cardLocation }}</el-descriptions-item>
<el-descriptions-item label="联行号">{{ accDetail.info.cardDeposit }}</el-descriptions-item>
<!-- <el-descriptions-item label="备付金余额">{{ offlineRecharge.availableAmount }}</el-descriptions-item>-->
<el-descriptions-item label="可转账金额">{{ accDetail.info.availableTransferAmount }}</el-descriptions-item>
<el-descriptions-item label="可用服务费">{{ accDetail.info.availableFeeAmount }}</el-descriptions-item>
<el-descriptions-item label="到卡费率">{{ accDetail.info.toBankRate }}</el-descriptions-item>
<el-descriptions-item label="到户费率">{{ accDetail.info.toAlipayRate }}</el-descriptions-item>
</el-descriptions>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="accDetail.panel = false">确 定</el-button>
</div>
</el-dialog>
<!-- 设置费率-->
<el-dialog title="费率设置" :visible.sync="configRatePanel" width="30%" center>
<el-descriptions :title="configRateForm.companyName" :column="1" :label-style="label_style"
:contentStyle="content_style">
</el-descriptions>
<el-descriptions :title="'外卡卡号:' + configRateForm.alipayCardNo" :column="1">
</el-descriptions>
<el-form ref="configRateForm" :model="configRateForm" :rules="configRateFormRules" label-width="150px">
<el-form-item label="转账到支付宝费率" prop="toAlipayRate">
<el-input-number v-model="configRateForm.toAlipayRate" placeholder="请输入到支付宝费率" :step="0.001" :precision="3" :min="0" :max="1"
style="width: 200px"/>
</el-form-item>
<el-form-item label="转账到银行卡费率" prop="toBankRate">
<el-input-number v-model="configRateForm.toBankRate" placeholder="请输入到银行卡费率" :step="0.001" :precision="3" :min="0" :max="1"
style="width: 200px"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="configRatePanel = false">关 闭</el-button>
<el-button type="primary" @click="configRateSubmit">确 定</el-button>
</div>
</el-dialog>
<!-- 添加或修改企业支付通道对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="addForm" :model="addForm" label-width="120px">
<el-form-item label="对方企业名称" prop="inviterName">
<el-input v-model="addForm.inviterName" disabled placeholder="企业名称" />
</el-form-item>
<el-form-item label="对方信用代码" prop="inviterCode">
<el-input v-model="addForm.inviterCode" disabled placeholder="信用代码" />
</el-form-item>
<el-form-item label="分配账户通道" prop="channelCode">
<el-select v-model="addForm.channelCode" placeholder="请选择支付通道">
<el-option v-for="(item, index) in taxUnitPayChannelList" :label="item.channelName" :value="item.channelCode" />
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitAdd">确 定</el-button>
<el-button @click="open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getAccAliInfo, listLaborAcc } from '@/api/business/accInfo'
import { listAllPayChannel } from '@/api/business/payChannel'
import { listAllCompanyPayChannel } from '@/api/business/companyPayChannel'
import { getLaborSign, giveAccToLabor } from '@/api/business/laborSign'
import companyPayChannel from '@/views/business/companyPayChannel/index.vue'
import fa from 'element-ui/src/locale/lang/fa'
export default {
name: "LaborAcc",
computed: {
fa() {
return fa
},
companyPayChannel() {
return companyPayChannel
}
},
data() {
return {
// 遮罩层
loading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 表格数据
accList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
laborSignId: null,
channelCode: undefined,
payAccNo: undefined
},
// 账户详情
accDetail: {
content_style: {
'font-size': '16px',
},
label_style: {
'font-size': '16px',
},
panel: false,
info: {}
},
// 设置费率相关
label_style: {
'font-size': '16px',
},
content_style: {
'font-size': '16px',
},
configRatePanel: false,
configRateForm: {
toAlipayRate: 0,
toBankRate: 0
},
configRateFormRules: {
toAlipayRate: [
{ required: true, message: '请输入转账到支付宝的费率', trigger: 'blur' }
],
toBankRate: [
{ required: true, message: '请输入转账到银行卡的费率', trigger: 'blur' }
],
},
sysPayChannelList: [],
sysPayChannelMap: undefined,
taxUnitPayChannelList: [],
addForm: {
channelCode: null,
}
};
},
watch: {
$route(route) {
this.queryParams.laborSignId = this.$route.query.signId
this.getList();
}
},
mounted() {
this.queryParams.laborSignId = this.$route.query.signId
this.getList();
},
methods: {
async getList() {
if (this.queryParams.laborSignId) {
if (!this.sysPayChannelList || 0 >= this.sysPayChannelList.length) {
await this.sysPayChannelAll()
}
this.loading = true;
await listLaborAcc(this.queryParams).then(resp => {
this.accList = resp.rows
}).finally(() => {
this.loading = false;
})
}
},
sysPayChannelAll() {
listAllPayChannel().then(resp => {
this.sysPayChannelList = resp.data
this.sysPayChannelMap = new Map(resp.data.map(value => [value.channelCode, value.channelName]));
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
viewDetail(card) {
this.$modal.loading("正在查询...")
getAccAliInfo(card.payAccNo).then(resp => {
if (200 === resp.code) {
this.accDetail.companyName = card.accName
this.accDetail.info = resp.data
this.accDetail.panel = true
}
}).finally(() => {
this.$modal.closeLoading()
})
},
// 打开设置费率弹窗
updateRate(cardInfo){
this.$modal.loading("正在查询...")
getAccAliInfo(cardInfo.payAccNo).then(resp => {
if (200 === resp.code) {
this.configRateForm.companyName = cardInfo.accName
this.configRateForm.toAlipayRate = resp.data.toAlipayRate
this.configRateForm.toBankRate = resp.data.toBankRate
this.configRateForm.alipayCardNo = cardInfo.payAccNo
this.configRatePanel = true
}
}).finally(() => {
this.$modal.closeLoading()
})
},
configRateSubmit() {
this.$refs['configRateForm'].validate(valid => {
if (valid) {
this.$modal.msgSuccess("操作成功")
this.configRatePanel = false
let params = {
sysMerchantId: this.configRateForm.sysMerchantId,
toAlipayRate: Number(this.configRateForm.toAlipayRate),
toBankRate: Number(this.configRateForm.toBankRate)
}
}
})
},
/** 新增按钮操作 */
async handleAdd() {
this.open = true;
this.title = "分配代发账户";
const channelQuery = {
unitType: 2,
isEnter: 3,
status: 1
}
await getLaborSign(this.queryParams.laborSignId).then(resp => {
channelQuery.compaynId = resp.data.taxUnitId
this.addForm.inviterName = resp.data.inviterName
this.addForm.inviterCode = resp.data.inviterCode
})
if (channelQuery.compaynId) {
await listAllCompanyPayChannel(channelQuery).then(resp => {
this.taxUnitPayChannelList = resp.data
})
}
},
submitAdd() {
if (this.accList && this.accList.length > 0) {
const hasChannel = this.accList.some(acc => acc.channelCode === this.addForm.channelCode);
if (hasChannel) {
const channelName = this.sysPayChannelMap.get(this.addForm.channelCode);
const msg = `${channelName}:该支付通道已有分配记录,是否继续?`
this.$confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.addForm.laborSignId = this.queryParams.laborSignId;
this.givPayAcc()
})
}
}
},
givPayAcc() {
this.$modal.loading("处理中...")
giveAccToLabor(this.addForm).then(resp => {
if (200 === resp.code) {
if (200 === resp.data.code) {
this.$modal.msgSuccess("操作成功")
this.getList()
} else if (202 === resp.data.code) {
this.$confirm('未签约支付协议,暂无法进行此操作', '操作提示', {
distinguishCancelAndClose: true,
confirmButtonText: '去签约',
cancelButtonText: '取消'
}).then(() => {
this.$router.push({ path: "/taxUnit/payAcc" });
}).catch(action => {
});
}
}
}).finally(() => {
this.open = false;
this.$modal.closeLoading()
})
}
}
};
</script>
......@@ -45,7 +45,7 @@
</el-button>
<el-button size="mini" type="text" icon="el-icon-lollipop" @click="givePayAcc(scope.row)"
v-if="scope.row.signStatus && 2 === scope.row.signStatus && !scope.row.payAccNo"
v-hasPermi="['business:unitInfo:add']">分配账户
v-hasPermi="['business:unitInfo:add']">代发账户
</el-button>
</template>
</el-table-column>
......@@ -148,33 +148,7 @@ export default {
this.doAgreePanelVisible = false
},
givePayAcc(row) {
this.$confirm(`确认给[${row.inviterName}]分配付款专户吗?`, '操作提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$modal.loading("处理中...")
giveAccToLabor(row.id).then(resp => {
if (200 === resp.code) {
if (200 === resp.data.code) {
this.$modal.msgSuccess("操作成功")
this.getList()
} else if (202 === resp.data.code) {
this.$confirm(row.taxUnitName + ':未签约支付协议,暂无法进行此操作', '操作提示', {
distinguishCancelAndClose: true,
confirmButtonText: '去签约',
cancelButtonText: '取消'
}).then(() => {
this.$router.push({ path: "/taxUnit/payAcc" });
}).catch(action => {
});
}
}
}).finally(() => {
this.$modal.closeLoading()
})
}).catch(() => { });
this.$router.push({ path: '/business/laborAcc', query: { signId: row.id } })
}
}
}
......
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