mirror of
https://gitee.com/bootx/dax-pay-h5
synced 2026-08-07 13:55:44 +08:00
feat 进件申请数据补填处理
This commit is contained in:
12
src/views/daxpay/h5/onboarded/common/Base.d.ts
vendored
12
src/views/daxpay/h5/onboarded/common/Base.d.ts
vendored
@@ -166,3 +166,15 @@ export interface OnbCardHolderProfile extends MchEntity {
|
||||
/** 非法人结算授权函图片路径 */
|
||||
letterOfAuthPicUrl?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 费率配置项
|
||||
*/
|
||||
export interface TradeRateConfigItem {
|
||||
/** 服务商成本费率 */
|
||||
isvRate?: number
|
||||
/** 代理商默认费率 */
|
||||
agentRate?: number
|
||||
/** 商户默认费率 */
|
||||
mchRate?: number
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { http } from '@/utils/http/axios'
|
||||
import type {MchEntity, Result} from '#/axios'
|
||||
import type { MchEntity, Result } from '#/axios'
|
||||
import type {
|
||||
OnbBankAccountProfile,
|
||||
OnbCardHolderProfile,
|
||||
@@ -7,6 +7,7 @@ import type {
|
||||
OnbLicenseProfile,
|
||||
OnbMerchantProfile,
|
||||
OnbShopProfile,
|
||||
TradeRateConfigItem,
|
||||
} from '@/views/daxpay/h5/onboarded/common/Base'
|
||||
|
||||
/**
|
||||
@@ -84,6 +85,10 @@ export interface MerchantApply {
|
||||
cardHolder: OnbCardHolderProfile
|
||||
/** 其他申请信息 */
|
||||
other: OtherApply
|
||||
/** 结算产品信息 */
|
||||
settle: SettleProfile
|
||||
/** 费率 */
|
||||
rate: HkrtMchRateConfig
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -119,3 +124,119 @@ export interface MccConst {
|
||||
/** 子类目 */
|
||||
children?: MccConst[]
|
||||
}
|
||||
|
||||
/**
|
||||
* 海科融通入驻结算信息
|
||||
*/
|
||||
export interface SettleProfile {
|
||||
// 申请ID
|
||||
applyId?: string
|
||||
// 结算周期
|
||||
settlementCycle?: string
|
||||
// 提现费率
|
||||
withdrawalRate?: number
|
||||
// 最小提现费用
|
||||
withdrawalFeeMin?: number
|
||||
// 对公提现费率
|
||||
publicWithdrawalRate?: number
|
||||
// 对公最小提现费用
|
||||
publicWithdrawalFeeMin?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 海科商户费率配置
|
||||
*/
|
||||
export interface HkrtMchRateConfig {
|
||||
// 微信费率
|
||||
wechatRate?: number
|
||||
// 支付宝费率
|
||||
alipayRate?: number
|
||||
// 银行卡借记卡费率
|
||||
bankDebitRate?: number
|
||||
// 银行卡贷记卡费率
|
||||
bankCreditRate?: number
|
||||
// 银联二维码借记卡费率
|
||||
unionDebitRate?: number
|
||||
// 银联二维码贷记卡费率
|
||||
unionCreditRate?: number
|
||||
// 银联二维码1000以下费率
|
||||
unionMixRate?: number
|
||||
// 银行卡借记卡封顶手续费
|
||||
bankDebitMax?: number
|
||||
// 银联二维码借记卡封顶手续费
|
||||
unionDebitMax?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理商权限配置
|
||||
*/
|
||||
export interface AgentPermConfig {
|
||||
/** 是否可用代理商API接口 */
|
||||
agentApi?: boolean
|
||||
/** 是否可以查询商户订单信息(界面) */
|
||||
queryOrder?: boolean
|
||||
/** 是否可以代商户退款(界面) */
|
||||
refund?: boolean
|
||||
/** 是否可以创建商户订单(界面) */
|
||||
createOrder?: boolean
|
||||
/** 是否可以创建进件商户 */
|
||||
createOnbMch?: boolean
|
||||
/** 是否可以代商户进行交易(API) */
|
||||
tradeApi?: boolean
|
||||
/** 是否可以设置商户结算周期 */
|
||||
settleCycle?: boolean
|
||||
/** 是否可以操作商户应用 */
|
||||
setupMchApp?: boolean
|
||||
/** 是否可以查看商户应用信息 */
|
||||
mchAppInfo?: boolean
|
||||
/** 设置商户分账规则 */
|
||||
setupMchProfit?: boolean
|
||||
/** 可用通道 */
|
||||
availableChannel?: string[]
|
||||
/** 可用接口 */
|
||||
availableApi?: string[]
|
||||
}
|
||||
|
||||
/**
|
||||
* 海科费率配置
|
||||
*/
|
||||
export interface HkrtRateConfig {
|
||||
// 微信费率
|
||||
wechatRate: TradeRateConfigItem
|
||||
// 支付宝费率
|
||||
alipayRate: TradeRateConfigItem
|
||||
// 银行卡借记卡费率
|
||||
bankDebitRate: TradeRateConfigItem
|
||||
// 银行卡贷记卡费率
|
||||
bankCreditRate: TradeRateConfigItem
|
||||
// 银联二维码借记卡费率
|
||||
unionDebitRate: TradeRateConfigItem
|
||||
// 银联二维码贷记卡费率
|
||||
unionCreditRate: TradeRateConfigItem
|
||||
// 银联二维码1000以下费率
|
||||
unionMixRate: TradeRateConfigItem
|
||||
// 银行卡借记卡封顶手续费
|
||||
bankDebitMax: TradeRateConfigItem
|
||||
// 银联二维码借记卡封顶手续费
|
||||
unionDebitMax: TradeRateConfigItem
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询代理商权限
|
||||
*/
|
||||
export function getAgentPermConfig() {
|
||||
return http.request<Result<AgentPermConfig>>({
|
||||
method: 'get',
|
||||
url: '/agent/perm/config/get',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理端获取代理费率
|
||||
*/
|
||||
export function getConfig() {
|
||||
return http.request<Result<HkrtRateConfig>>({
|
||||
method: 'get',
|
||||
url: '/hkrt/rate/agent/getConfig',
|
||||
})
|
||||
}
|
||||
|
||||
@@ -606,11 +606,164 @@
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<!-- 费率配置模块 -->
|
||||
<template v-if="clientCode === 'dax-pay-agent' && currentPage.currentIndex === 4">
|
||||
<div class="commonTitle">
|
||||
费率配置
|
||||
</div>
|
||||
<van-cell-group inset>
|
||||
<!-- 微信费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.wechatRate"
|
||||
label-align="top"
|
||||
name="wechatRate"
|
||||
placeholder="请输入微信费率"
|
||||
label="微信费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入微信费率' }]"
|
||||
:min="agentRate.wechatRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 支付宝费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.alipayRate"
|
||||
label-align="top"
|
||||
name="alipayRate"
|
||||
placeholder="请输入支付宝费率"
|
||||
label="支付宝费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入支付宝费率' }]"
|
||||
:min="agentRate.alipayRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银行卡借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.bankDebitRate"
|
||||
label-align="top"
|
||||
name="bankDebitRate"
|
||||
placeholder="请输入银行卡借记卡费率"
|
||||
label="银行卡借记卡费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银行卡借记卡费率' }]"
|
||||
:min="agentRate.bankDebitRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银行卡贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.bankCreditRate"
|
||||
label-align="top"
|
||||
name="bankCreditRate"
|
||||
placeholder="请输入银行卡贷记卡费率"
|
||||
label="银行卡贷记卡费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银行卡贷记卡费率' }]"
|
||||
:min="agentRate.bankCreditRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银联二维码借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionDebitRate"
|
||||
label-align="top"
|
||||
name="unionDebitRate"
|
||||
placeholder="请输入银联二维码借记卡费率"
|
||||
label="银联二维码借记卡费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联二维码借记卡费率' }]"
|
||||
:min="agentRate.unionDebitRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银联二维码贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionCreditRate"
|
||||
label-align="top"
|
||||
name="unionCreditRate"
|
||||
placeholder="请输入银联二维码贷记卡费率"
|
||||
label="银联二维码贷记卡费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联二维码贷记卡费率' }]"
|
||||
:min="agentRate.unionCreditRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银联二维码1000以下费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionMixRate"
|
||||
label-align="top"
|
||||
name="unionMixRate"
|
||||
placeholder="请输入银联二维码1000以下费率"
|
||||
label="银联二维码1000以下费率(%)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联二维码1000以下费率' }]"
|
||||
:min="agentRate.unionMixRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银行卡借记卡封顶手续费 -->
|
||||
<van-field
|
||||
v-model="form.rate.bankDebitMax"
|
||||
label-align="top"
|
||||
name="bankDebitMax"
|
||||
placeholder="请输入银行卡借记卡封顶手续费"
|
||||
label="银行卡借记卡封顶手续费(元)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银行卡借记卡封顶手续费' }]"
|
||||
:min="agentRate.bankDebitMax?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
<!-- 银联二维码借记卡封顶手续费 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionDebitMax"
|
||||
label-align="top"
|
||||
name="unionDebitMax"
|
||||
placeholder="请输入银联二维码借记卡封顶手续费"
|
||||
label="银联二维码借记卡封顶手续费(元)"
|
||||
type="number"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联二维码借记卡封顶手续费' }]"
|
||||
:min="agentRate.unionDebitMax?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
/>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</van-form>
|
||||
</div>
|
||||
<div class="btnContain">
|
||||
<div class="btnBox">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" type="" block @click="readMch">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" block @click="readMch">
|
||||
读取商户信息
|
||||
</van-button>
|
||||
<van-button v-if="currentPage.currentIndex > 1" type="primary" block @click="prevClick">
|
||||
@@ -635,9 +788,9 @@
|
||||
<script setup lang="ts">
|
||||
import { showConfirmDialog, showDialog, showNotify } from 'vant'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { onMounted, ref } from 'vue'
|
||||
import type { MccConst, MerchantApply } from './HkrtApply.api'
|
||||
import { findById, findH5ById, mccTree, save, saveH5 } from './HkrtApply.api'
|
||||
import { computed, onMounted, reactive, ref } from 'vue'
|
||||
import type { AgentPermConfig, HkrtRateConfig, MccConst, MerchantApply } from './HkrtApply.api'
|
||||
import { findById, findH5ById, getAgentPermConfig, getConfig, mccTree, save, saveH5 } from './HkrtApply.api'
|
||||
import {
|
||||
submit,
|
||||
submitH5,
|
||||
@@ -647,8 +800,8 @@ import BUpload from '@/components/BUpload.vue'
|
||||
import router from '@/router'
|
||||
import { initMerchantProfile } from '@/views/daxpay/h5/onboarded/common/OnbMchApplyUtil'
|
||||
import { useTokenStore } from '@/store/modules/token'
|
||||
import {bankCardOcr, idCardOcr, licenseOcr, Region} from '@/api/System.api'
|
||||
import { findAllProvinceAndCityAndArea } from '@/api/System.api'
|
||||
import type { Region } from '@/api/System.api'
|
||||
import { bankCardOcr, findAllProvinceAndCityAndArea, idCardOcr, licenseOcr } from '@/api/System.api'
|
||||
|
||||
const route = useRoute()
|
||||
// sign 作为H5独立访问时, 用来给数据验证访问做的安全措施
|
||||
@@ -681,6 +834,13 @@ const currentPage = reactive({
|
||||
index: 3,
|
||||
title: '结算账户',
|
||||
},
|
||||
// 只有当clientCode为dax-pay-agent时才显示费率配置步骤
|
||||
...(clientCode === 'dax-pay-agent'
|
||||
? [{
|
||||
index: 4,
|
||||
title: '费率配置',
|
||||
}]
|
||||
: []),
|
||||
],
|
||||
currentTitle: computed(() => {
|
||||
return currentPage.date.find(item => item.index === currentPage.currentIndex).title
|
||||
@@ -694,6 +854,22 @@ const loading = ref<boolean>(false)
|
||||
const pca = ref<Region[]>([])
|
||||
const mccCodes = ref<MccConst[]>([])
|
||||
|
||||
// 代理商权限配置
|
||||
const agentPerm = ref<AgentPermConfig>({})
|
||||
|
||||
// 代理商费率配置
|
||||
const agentRate = ref<HkrtRateConfig>({
|
||||
wechatRate: {},
|
||||
alipayRate: {},
|
||||
bankDebitRate: {},
|
||||
bankCreditRate: {},
|
||||
unionDebitRate: {},
|
||||
unionCreditRate: {},
|
||||
unionMixRate: {},
|
||||
bankDebitMax: {},
|
||||
unionDebitMax: {},
|
||||
})
|
||||
|
||||
// 表单数据对象
|
||||
const form = ref<MerchantApply>({
|
||||
merchant: {},
|
||||
@@ -703,6 +879,8 @@ const form = ref<MerchantApply>({
|
||||
bankAccount: {},
|
||||
cardHolder: {},
|
||||
other: {},
|
||||
settle: {},
|
||||
rate: {},
|
||||
})
|
||||
|
||||
/**
|
||||
@@ -725,6 +903,17 @@ function initData() {
|
||||
findAllProvinceAndCityAndArea().then(({ data }) => {
|
||||
pca.value = data
|
||||
})
|
||||
|
||||
// 获取权限配置和费率配置
|
||||
Promise.all([
|
||||
getAgentPermConfig(),
|
||||
getConfig(),
|
||||
]).then(([permRes, rateRes]) => {
|
||||
agentPerm.value = permRes.data
|
||||
agentRate.value = rateRes.data
|
||||
}).catch(() => {
|
||||
showNotify({ type: 'danger', message: '获取权限或费率配置失败' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -746,7 +935,16 @@ function getInfo() {
|
||||
* 点击上一步
|
||||
*/
|
||||
function prevClick() {
|
||||
currentPage.currentIndex--
|
||||
// 如果当前是第4步且clientCode不是dax-pay-agent,则回到第3步
|
||||
if (currentPage.currentIndex === 4 && clientCode !== 'dax-pay-agent') {
|
||||
currentPage.currentIndex = 3
|
||||
return
|
||||
}
|
||||
|
||||
// 其他情况,正常回到上一步
|
||||
if (currentPage.currentIndex > 1) {
|
||||
currentPage.currentIndex--
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -755,17 +953,28 @@ function prevClick() {
|
||||
function nextClick() {
|
||||
// 如果是查看模式,直接跳转到下一步,不进行表单验证
|
||||
if (showable.value) {
|
||||
// 如果是最后一步,不执行任何操作
|
||||
if (currentPage.currentIndex >= currentPage.date.length) {
|
||||
return
|
||||
}
|
||||
currentPage.currentIndex++
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// 表单验证
|
||||
formRef.value.validate()
|
||||
.then(() => {
|
||||
// 如果是最后一步,则提交
|
||||
if (currentPage.currentIndex >= currentPage.date.length) {
|
||||
submitClick()
|
||||
return
|
||||
}
|
||||
|
||||
// 执行下一步操作
|
||||
currentPage.currentIndex++
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
@@ -791,13 +1000,15 @@ function saveTemp() {
|
||||
* 提交
|
||||
*/
|
||||
function submitClick() {
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(() => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(async () => {
|
||||
// 先进行数据校验
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
// 校验通过后弹窗确认
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(async () => {
|
||||
loading.value = true
|
||||
// 执行下一步操作
|
||||
const savePromise = clientCode ? save(form.value) : saveH5(form.value, sign)
|
||||
@@ -829,10 +1040,10 @@ function submitClick() {
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -617,7 +617,7 @@
|
||||
</div>
|
||||
<div class="btnContain">
|
||||
<div class="btnBox">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" type="" block @click="readMch">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" block @click="readMch">
|
||||
读取商户信息
|
||||
</van-button>
|
||||
<van-button v-if="currentPage.currentIndex > 1" type="primary" block @click="prevClick">
|
||||
@@ -761,14 +761,14 @@ function nextClick() {
|
||||
currentPage.currentIndex++
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
formRef.value.validate()
|
||||
.then(() => {
|
||||
// 执行下一步操作
|
||||
currentPage.currentIndex++
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
@@ -793,13 +793,15 @@ function saveTemp() {
|
||||
* 提交
|
||||
*/
|
||||
function submitClick() {
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(() => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(async () => {
|
||||
// 先进行数据校验
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
// 校验通过后弹窗确认
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(async () => {
|
||||
loading.value = true
|
||||
// 执行下一步操作
|
||||
const savePromise = clientCode ? save(form.value) : saveH5(form.value, sign)
|
||||
@@ -831,10 +833,10 @@ function submitClick() {
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -493,7 +493,7 @@
|
||||
<!-- 底部按钮 -->
|
||||
<div class="btnContain">
|
||||
<div class="btnBox">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" type="" block @click="readMch">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" block @click="readMch">
|
||||
读取商户信息
|
||||
</van-button>
|
||||
<van-button v-if="currentPage.currentIndex > 1" type="primary" block @click="prevClick">
|
||||
@@ -528,8 +528,8 @@ import {
|
||||
import router from '@/router'
|
||||
import { initMerchantProfile } from '@/views/daxpay/h5/onboarded/common/OnbMchApplyUtil'
|
||||
import { useTokenStore } from '@/store/modules/token'
|
||||
import {idCardOcr, licenseOcr, Region} from '@/api/System.api'
|
||||
import { findAllProvinceAndCityAndArea } from '@/api/System.api'
|
||||
import type { Region } from '@/api/System.api'
|
||||
import { findAllProvinceAndCityAndArea, idCardOcr, licenseOcr } from '@/api/System.api'
|
||||
|
||||
const route = useRoute()
|
||||
const { id: applyId, sign, token, clientCode, show } = route.query
|
||||
@@ -640,7 +640,7 @@ function nextClick() {
|
||||
updateCurrentTitle()
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
formRef.value.validate()
|
||||
.then(() => {
|
||||
// 执行下一步操作
|
||||
@@ -648,7 +648,7 @@ function nextClick() {
|
||||
updateCurrentTitle()
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
@@ -674,13 +674,15 @@ function saveTemp() {
|
||||
* 提交
|
||||
*/
|
||||
function submitClick() {
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(() => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(async () => {
|
||||
// 先进行数据校验
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
// 校验通过后弹窗确认
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(async () => {
|
||||
loading.value = true
|
||||
// 执行下一步操作
|
||||
const savePromise = clientCode ? save(form.value) : saveH5(form.value, sign)
|
||||
@@ -712,10 +714,10 @@ function submitClick() {
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { http } from '@/utils/http/axios'
|
||||
import type {MchEntity, Result} from '#/axios'
|
||||
import type { MchEntity, Result } from '#/axios'
|
||||
import type {
|
||||
OnbBankAccountProfile,
|
||||
OnbCardHolderProfile,
|
||||
@@ -7,6 +7,7 @@ import type {
|
||||
OnbLicenseProfile,
|
||||
OnbMerchantProfile,
|
||||
OnbShopProfile,
|
||||
TradeRateConfigItem,
|
||||
} from '@/views/daxpay/h5/onboarded/common/Base'
|
||||
|
||||
/**
|
||||
@@ -64,6 +65,26 @@ export function mccTree() {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取代理商权限配置
|
||||
*/
|
||||
export function getAgentPermConfig() {
|
||||
return http.request<Result<any>>({
|
||||
method: 'get',
|
||||
url: '/vbill/rate/agent/getPermConfig',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取代理商费率配置
|
||||
*/
|
||||
export function getConfig() {
|
||||
return http.request<Result<VbillRateConfig>>({
|
||||
method: 'get',
|
||||
url: '/vbill/rate/agent/getConfig',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 随行付商户申请参数
|
||||
*/
|
||||
@@ -85,7 +106,7 @@ export interface MerchantApply {
|
||||
/** 其他申请信息 */
|
||||
other: OtherApply
|
||||
/** 费率配置信息 */
|
||||
rate?: RateProfile
|
||||
rate: RateProfile
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,6 +171,82 @@ export interface RateProfile {
|
||||
quickDebitRate?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 随行付费率配置
|
||||
*/
|
||||
export interface VbillRateConfig extends MchEntity {
|
||||
/** 微信贷记卡费率 */
|
||||
wechatCreditRate: TradeRateConfigItem
|
||||
/** 微信借记卡费率 */
|
||||
wechatDebitRate: TradeRateConfigItem
|
||||
/** 微信借记卡封顶手续费 */
|
||||
wechatDebitMaxFee: TradeRateConfigItem
|
||||
/** 支付宝贷记卡费率 */
|
||||
alipayCreditRate: TradeRateConfigItem
|
||||
/** 支付宝借记卡费率 */
|
||||
alipayDebitRate: TradeRateConfigItem
|
||||
/** 支付宝借记卡封顶手续费 */
|
||||
alipayDebitMaxFee: TradeRateConfigItem
|
||||
/** 银联单笔小于1000贷记卡费率 */
|
||||
unionCreditMinRate: TradeRateConfigItem
|
||||
/** 银联单笔小于1000借记卡费率 */
|
||||
unionDebitMinRate: TradeRateConfigItem
|
||||
/** 银联单笔大于1000贷记卡费率 */
|
||||
unionCreditMaxRate: TradeRateConfigItem
|
||||
/** 银联单笔大于1000借记卡费率 */
|
||||
unionDebitMaxRate: TradeRateConfigItem
|
||||
/** 贷记卡费率 */
|
||||
creditRate: TradeRateConfigItem
|
||||
/** 借记卡费率 */
|
||||
cardDebitRate: TradeRateConfigItem
|
||||
/** 借记卡手续费封顶值 */
|
||||
cardDebitCap: TradeRateConfigItem
|
||||
/** 手机闪付贷记卡费率 */
|
||||
quickCreditRate: TradeRateConfigItem
|
||||
/** 手机闪付借记卡费率 */
|
||||
quickDebitRate: TradeRateConfigItem
|
||||
/** 服务商号 */
|
||||
isvNo?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 随行付商户费率配置
|
||||
*/
|
||||
export interface VbillMchRateConfig extends MchEntity {
|
||||
/** 微信贷记卡费率 */
|
||||
wechatCreditRate?: number
|
||||
/** 微信借记卡费率 */
|
||||
wechatDebitRate?: number
|
||||
/** 微信借记卡封顶手续费 */
|
||||
wechatDebitMaxFee?: number
|
||||
/** 支付宝贷记卡费率 */
|
||||
alipayCreditRate?: number
|
||||
/** 支付宝借记卡费率 */
|
||||
alipayDebitRate?: number
|
||||
/** 支付宝借记卡封顶手续费 */
|
||||
alipayDebitMaxFee?: number
|
||||
/** 银联单笔小于1000贷记卡费率 */
|
||||
unionCreditMinRate?: number
|
||||
/** 银联单笔小于1000借记卡费率 */
|
||||
unionDebitMinRate?: number
|
||||
/** 银联单笔大于1000贷记卡费率 */
|
||||
unionCreditMaxRate?: number
|
||||
/** 银联单笔大于1000借记卡费率 */
|
||||
unionDebitMaxRate?: number
|
||||
/** 贷记卡费率 */
|
||||
creditRate?: number
|
||||
/** 借记卡费率 */
|
||||
cardDebitRate?: number
|
||||
/** 借记卡手续费封顶值 */
|
||||
cardDebitCap?: number
|
||||
/** 手机闪付贷记卡费率 */
|
||||
quickCreditRate?: number
|
||||
/** 手机闪付借记卡费率 */
|
||||
quickDebitRate?: number
|
||||
/** 进件商户号 */
|
||||
onbMchNo?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 随行付经营类目
|
||||
*/
|
||||
|
||||
@@ -684,11 +684,260 @@
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<!-- 费率配置模块 -->
|
||||
<template v-if="currentPage.currentIndex === 4 && clientCode === 'dax-pay-agent'">
|
||||
<div class="commonTitle">
|
||||
费率配置
|
||||
</div>
|
||||
<van-cell-group inset>
|
||||
<!-- 微信贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.wechatCreditRate"
|
||||
label-align="top"
|
||||
name="wechatCreditRate"
|
||||
placeholder="请输入微信贷记卡费率"
|
||||
label="微信贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.wechatCreditRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入微信贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 微信借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.wechatDebitRate"
|
||||
label-align="top"
|
||||
name="wechatDebitRate"
|
||||
placeholder="请输入微信借记卡费率"
|
||||
label="微信借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.wechatDebitRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入微信借记卡费率' }]"
|
||||
/>
|
||||
<!-- 微信借记卡封顶手续费 -->
|
||||
<van-field
|
||||
v-model="form.rate.wechatDebitMaxFee"
|
||||
label-align="top"
|
||||
name="wechatDebitMaxFee"
|
||||
placeholder="请输入微信借记卡封顶手续费"
|
||||
label="微信借记卡封顶手续费(元)"
|
||||
type="number"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入微信借记卡封顶手续费' }]"
|
||||
/>
|
||||
<!-- 支付宝贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.alipayCreditRate"
|
||||
label-align="top"
|
||||
name="alipayCreditRate"
|
||||
placeholder="请输入支付宝贷记卡费率"
|
||||
label="支付宝贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.alipayCreditRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入支付宝贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 支付宝借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.alipayDebitRate"
|
||||
label-align="top"
|
||||
name="alipayDebitRate"
|
||||
placeholder="请输入支付宝借记卡费率"
|
||||
label="支付宝借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.alipayDebitRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入支付宝借记卡费率' }]"
|
||||
/>
|
||||
<!-- 支付宝借记卡封顶手续费 -->
|
||||
<van-field
|
||||
v-model="form.rate.alipayDebitMaxFee"
|
||||
label-align="top"
|
||||
name="alipayDebitMaxFee"
|
||||
placeholder="请输入支付宝借记卡封顶手续费"
|
||||
label="支付宝借记卡封顶手续费(元)"
|
||||
type="number"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入支付宝借记卡封顶手续费' }]"
|
||||
/>
|
||||
<!-- 银联单笔小于1000贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionCreditMinRate"
|
||||
label-align="top"
|
||||
name="unionCreditMinRate"
|
||||
placeholder="请输入银联单笔小于1000贷记卡费率"
|
||||
label="银联单笔小于1000贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.unionCreditMinRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联单笔小于1000贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 银联单笔小于1000借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionDebitMinRate"
|
||||
label-align="top"
|
||||
name="unionDebitMinRate"
|
||||
placeholder="请输入银联单笔小于1000借记卡费率"
|
||||
label="银联单笔小于1000借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.unionDebitMinRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联单笔小于1000借记卡费率' }]"
|
||||
/>
|
||||
<!-- 银联单笔大于1000贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionCreditMaxRate"
|
||||
label-align="top"
|
||||
name="unionCreditMaxRate"
|
||||
placeholder="请输入银联单笔大于1000贷记卡费率"
|
||||
label="银联单笔大于1000贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.unionCreditMaxRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联单笔大于1000贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 银联单笔大于1000借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.unionDebitMaxRate"
|
||||
label-align="top"
|
||||
name="unionDebitMaxRate"
|
||||
placeholder="请输入银联单笔大于1000借记卡费率"
|
||||
label="银联单笔大于1000借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.unionDebitMaxRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入银联单笔大于1000借记卡费率' }]"
|
||||
/>
|
||||
<!-- 贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.creditRate"
|
||||
label-align="top"
|
||||
name="creditRate"
|
||||
placeholder="请输入贷记卡费率"
|
||||
label="贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.creditRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.cardDebitRate"
|
||||
label-align="top"
|
||||
name="cardDebitRate"
|
||||
placeholder="请输入借记卡费率"
|
||||
label="借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.cardDebitRate?.mchRate || 0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入借记卡费率' }]"
|
||||
/>
|
||||
<!-- 借记卡手续费封顶值 -->
|
||||
<van-field
|
||||
v-model="form.rate.cardDebitCap"
|
||||
label-align="top"
|
||||
name="cardDebitCap"
|
||||
placeholder="请输入借记卡手续费封顶值"
|
||||
label="借记卡手续费封顶值(元)"
|
||||
type="number"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入借记卡手续费封顶值' }]"
|
||||
/>
|
||||
<!-- 手机闪付贷记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.quickCreditRate"
|
||||
label-align="top"
|
||||
name="quickCreditRate"
|
||||
placeholder="请输入手机闪付贷记卡费率"
|
||||
label="手机闪付贷记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.quickCreditRate.mchRate"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入手机闪付贷记卡费率' }]"
|
||||
/>
|
||||
<!-- 手机闪付借记卡费率 -->
|
||||
<van-field
|
||||
v-model="form.rate.quickDebitRate"
|
||||
label-align="top"
|
||||
name="quickDebitRate"
|
||||
placeholder="请输入手机闪付借记卡费率"
|
||||
label="手机闪付借记卡费率(%)"
|
||||
type="number"
|
||||
:min="agentRate.quickDebitRate.mchRate"
|
||||
:max="100"
|
||||
:step="0.01"
|
||||
:precision="2"
|
||||
clearable
|
||||
:disabled="showable"
|
||||
:rules="[{ required: true, message: '请输入手机闪付借记卡费率' }]"
|
||||
/>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</van-form>
|
||||
</div>
|
||||
<div class="btnContain">
|
||||
<div class="btnBox">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" type="" block @click="readMch">
|
||||
<van-button v-if="!showable && currentPage.currentIndex === 1 && clientCode" block @click="readMch">
|
||||
读取商户信息
|
||||
</van-button>
|
||||
<van-button v-if="currentPage.currentIndex > 1" type="primary" block @click="prevClick">
|
||||
@@ -714,8 +963,8 @@
|
||||
import { showConfirmDialog, showDialog, showNotify } from 'vant'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { ref } from 'vue'
|
||||
import type { MccConst, MerchantApply } from './VbillApply.api'
|
||||
import { findById, findH5ById, mccTree, save, saveH5 } from './VbillApply.api'
|
||||
import type { MccConst, MerchantApply, VbillRateConfig } from './VbillApply.api'
|
||||
import { findById, findH5ById, getConfig, mccTree, save, saveH5 } from './VbillApply.api'
|
||||
import {
|
||||
submit,
|
||||
submitH5,
|
||||
@@ -725,8 +974,8 @@ import BUpload from '@/components/BUpload.vue'
|
||||
import router from '@/router'
|
||||
import { initMerchantProfile } from '@/views/daxpay/h5/onboarded/common/OnbMchApplyUtil'
|
||||
import { useTokenStore } from '@/store/modules/token'
|
||||
import {bankCardOcr, idCardOcr, licenseOcr, Region} from '@/api/System.api'
|
||||
import { findAllProvinceAndCityAndArea } from '@/api/System.api'
|
||||
import type { Region } from '@/api/System.api'
|
||||
import { bankCardOcr, findAllProvinceAndCityAndArea, idCardOcr, licenseOcr } from '@/api/System.api'
|
||||
|
||||
const route = useRoute()
|
||||
const { id: applyId, sign, token, clientCode, show } = route.query
|
||||
@@ -755,6 +1004,13 @@ const currentPage = reactive({
|
||||
index: 3,
|
||||
title: '结算账户',
|
||||
},
|
||||
// 当clientCode为dax-pay-agent时显示费率配置
|
||||
...(clientCode === 'dax-pay-agent'
|
||||
? [{
|
||||
index: 4,
|
||||
title: '费率配置',
|
||||
}]
|
||||
: []),
|
||||
],
|
||||
currentTitle: computed(() => {
|
||||
return currentPage.date.find(item => item.index === currentPage.currentIndex).title
|
||||
@@ -768,6 +1024,25 @@ const loading = ref<boolean>(false)
|
||||
const pca = ref<Region[]>([])
|
||||
const mccCodes = ref<MccConst[]>([])
|
||||
|
||||
// 代理商费率配置
|
||||
const agentRate = ref<VbillRateConfig>({
|
||||
wechatCreditRate: {},
|
||||
wechatDebitRate: {},
|
||||
wechatDebitMaxFee: {},
|
||||
alipayCreditRate: {},
|
||||
alipayDebitRate: {},
|
||||
alipayDebitMaxFee: {},
|
||||
unionCreditMinRate: {},
|
||||
unionDebitMinRate: {},
|
||||
unionCreditMaxRate: {},
|
||||
unionDebitMaxRate: {},
|
||||
creditRate: {},
|
||||
cardDebitRate: {},
|
||||
cardDebitCap: {},
|
||||
quickCreditRate: {},
|
||||
quickDebitRate: {},
|
||||
})
|
||||
|
||||
// 表单数据对象
|
||||
const form = ref<MerchantApply>({
|
||||
merchant: {},
|
||||
@@ -777,6 +1052,7 @@ const form = ref<MerchantApply>({
|
||||
bankAccount: {},
|
||||
cardHolder: {},
|
||||
other: {},
|
||||
rate: {},
|
||||
})
|
||||
|
||||
/**
|
||||
@@ -799,6 +1075,36 @@ function initData() {
|
||||
findAllProvinceAndCityAndArea().then(({ data }) => {
|
||||
pca.value = data
|
||||
})
|
||||
|
||||
// 获取权限配置和费率配置
|
||||
Promise.all([
|
||||
getConfig(),
|
||||
]).then(([rateRes]) => {
|
||||
agentRate.value = rateRes.data
|
||||
|
||||
// 初始化费率配置
|
||||
if (clientCode === 'dax-pay-agent' && agentRate.value) {
|
||||
form.value.rate = {
|
||||
wechatCreditRate: agentRate.value.wechatCreditRate?.mchRate || 0,
|
||||
wechatDebitRate: agentRate.value.wechatDebitRate?.mchRate || 0,
|
||||
wechatDebitMaxFee: agentRate.value.wechatDebitMaxFee?.mchRate || 0,
|
||||
alipayCreditRate: agentRate.value.alipayCreditRate?.mchRate || 0,
|
||||
alipayDebitRate: agentRate.value.alipayDebitRate?.mchRate || 0,
|
||||
alipayDebitMaxFee: agentRate.value.alipayDebitMaxFee?.mchRate || 0,
|
||||
unionCreditMinRate: agentRate.value.unionCreditMinRate?.mchRate || 0,
|
||||
unionDebitMinRate: agentRate.value.unionDebitMinRate?.mchRate || 0,
|
||||
unionCreditMaxRate: agentRate.value.unionCreditMaxRate?.mchRate || 0,
|
||||
unionDebitMaxRate: agentRate.value.unionDebitMaxRate?.mchRate || 0,
|
||||
creditRate: agentRate.value.creditRate?.mchRate || 0,
|
||||
cardDebitRate: agentRate.value.cardDebitRate?.mchRate || 0,
|
||||
cardDebitCap: agentRate.value.cardDebitCap?.mchRate || 0,
|
||||
quickCreditRate: agentRate.value.quickCreditRate?.mchRate || 0,
|
||||
quickDebitRate: agentRate.value.quickDebitRate?.mchRate || 0,
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
showNotify({ type: 'danger', message: '获取配置信息失败' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -811,6 +1117,22 @@ function getInfo() {
|
||||
router.replace({ name: 'payFail', query: { msg, title: '获取信息失败' } })
|
||||
return
|
||||
}
|
||||
|
||||
// 处理费率配置
|
||||
if (data.rate && clientCode === 'dax-pay-agent') {
|
||||
// 确保费率配置对象存在
|
||||
if (!form.value.rate) {
|
||||
form.value.rate = {}
|
||||
}
|
||||
|
||||
// 将返回的费率数据赋值给表单
|
||||
Object.keys(data.rate).forEach((key) => {
|
||||
if (data.rate[key] !== null && data.rate[key] !== undefined) {
|
||||
form.value.rate[key] = data.rate[key]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
form.value = data
|
||||
})
|
||||
}
|
||||
@@ -819,7 +1141,13 @@ function getInfo() {
|
||||
* 点击上一步
|
||||
*/
|
||||
function prevClick() {
|
||||
currentPage.currentIndex--
|
||||
// 特殊处理费率配置页面
|
||||
if (currentPage.currentIndex === 5 && clientCode === 'dax-pay-agent') {
|
||||
currentPage.currentIndex = 4
|
||||
}
|
||||
else {
|
||||
currentPage.currentIndex--
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -831,14 +1159,26 @@ function nextClick() {
|
||||
currentPage.currentIndex++
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// 特殊处理费率配置页面
|
||||
if (currentPage.currentIndex === 4 && clientCode === 'dax-pay-agent') {
|
||||
// 验证费率配置是否完整
|
||||
if (!form.value.rate || Object.keys(form.value.rate).length === 0) {
|
||||
showNotify({
|
||||
type: 'warning',
|
||||
message: '请完成费率配置',
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
formRef.value.validate()
|
||||
.then(() => {
|
||||
// 执行下一步操作
|
||||
currentPage.currentIndex++
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
@@ -863,13 +1203,15 @@ function saveTemp() {
|
||||
* 提交
|
||||
*/
|
||||
function submitClick() {
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(() => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(async () => {
|
||||
// 先进行数据校验
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
// 校验通过后弹窗确认
|
||||
showConfirmDialog({
|
||||
title: '提示',
|
||||
message: '确定要提交进件申请!',
|
||||
}).then(async () => {
|
||||
loading.value = true
|
||||
// 执行下一步操作
|
||||
const savePromise = clientCode ? save(form.value) : saveH5(form.value, sign)
|
||||
@@ -901,10 +1243,10 @@ function submitClick() {
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '还有必填项未填写,请仔细检查!' })
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
showNotify({ type: 'danger', message: '表单校验未通过,请仔细检查!' })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user