|
|
@@ -1,8 +1,8 @@
|
|
|
<!-- 账户管理-签约账号管理-签约 -->
|
|
|
<template>
|
|
|
- <app-drawer :title="bankInfo ? '修改签约账户' : '添加签约账户'" :width="400" v-model:show="show" :loading="loading"
|
|
|
+ <app-drawer :title="bankInfo ? '修改签约账户' : '添加签约账户'" :width="800" v-model:show="show" :loading="loading"
|
|
|
:refresh="refresh">
|
|
|
- <el-form ref="formRef" class="el-form--vertical" label-width="90px" :model="formData" :rules="formRules">
|
|
|
+ <el-form ref="formRef" class="el-form--horizontal" label-width="120px" :model="formData" :rules="formRules">
|
|
|
<el-form-item label="开户银行" prop="OpenBankAccId">
|
|
|
<el-select v-model="formData.OpenBankAccId">
|
|
|
<el-option :label="item.bankname" :value="item.bankid" v-for="(item, index) in banklist" :key="index" />
|
|
|
@@ -20,8 +20,24 @@
|
|
|
<el-input name="MobilePhone" readonly placeholder="请输入手机号码" v-model="formData.MobilePhone" />
|
|
|
</el-form-item>
|
|
|
<template v-for="(item, index) in configs" :key="index">
|
|
|
+ <el-form-item :label="item.fieldname" :prop="item.fieldcode"
|
|
|
+ v-if="(item.fieldcode === 'verify_code') &&
|
|
|
+ (item.usabletype === 1) ||
|
|
|
+ (item.usabletype === 2 && userStore.userInfo?.userinfotype === 2) ||
|
|
|
+ (item.usabletype === 3 && userStore.userInfo?.userinfotype === 1)">
|
|
|
+ <el-input placeholder="请输入短信验证码" type="number" v-model="item.value" :rules="formRules.vcode">
|
|
|
+ <template #append>
|
|
|
+ <el-button size="small" type="primary" :disabled="isCountdown" @click="sendVerifyCode">
|
|
|
+ <span v-if="isCountdown">重新发送({{ seconds }})</span>
|
|
|
+ <span v-else>获取验证码</span>
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item :label="item.fieldname" :prop="item.fieldcode"
|
|
|
- v-if="item.usabletype === 1 || item.usabletype === userStore.userInfo?.userinfotype">
|
|
|
+ v-else-if="(item.usabletype === 1) ||
|
|
|
+ (item.usabletype === 2 && userStore.userInfo?.userinfotype === 2) ||
|
|
|
+ (item.usabletype === 3 && userStore.userInfo?.userinfotype === 1)">
|
|
|
<el-input :name="item.fieldcode" placeholder="请必须输入" v-model="item.value" />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
@@ -37,11 +53,13 @@
|
|
|
import { ref } from 'vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
|
-import { useDoBankSign, useDoCusBankExtendConfigs } from '@/business/bank'
|
|
|
+import { useDoBankSign, useDoCusBankExtendConfigs, useT2bSMSVerificationCode } from '@/business/bank'
|
|
|
import { useErrorInfoStore } from '@/stores'
|
|
|
import { validateRules } from '@/constants/regex'
|
|
|
import { useUserStore } from '@/stores'
|
|
|
+import service from '@/services'
|
|
|
import AppDrawer from '@pc/components/base/drawer/index.vue'
|
|
|
+import { shallowRef } from 'vue'
|
|
|
|
|
|
const formRules: FormRules = {
|
|
|
OpenBankAccId: [{
|
|
|
@@ -69,17 +87,50 @@ const formRules: FormRules = {
|
|
|
|
|
|
const { formData, onSubmit, banklist, bankInfo, loading } = useDoBankSign()
|
|
|
const { configs } = useDoCusBankExtendConfigs(1)
|
|
|
+const { smsVerificationCode } = useT2bSMSVerificationCode()
|
|
|
|
|
|
const userStore = useUserStore()
|
|
|
const show = ref(true)
|
|
|
const refresh = ref(false)
|
|
|
const formRef = ref<FormInstance>()
|
|
|
+const seconds = ref(60) //倒计时剩余时间
|
|
|
+const isCountdown = ref(false) // 是否正在倒计时
|
|
|
+/// 短信验证码交易中心信息
|
|
|
+const CenterErrMsg = shallowRef('')
|
|
|
|
|
|
const onCancel = (isRefresh = false) => {
|
|
|
show.value = false
|
|
|
refresh.value = isRefresh
|
|
|
}
|
|
|
|
|
|
+// 发送手机验证码
|
|
|
+const sendVerifyCode = () => {
|
|
|
+ formRef.value?.validateField('MobilePhone', (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ service.onReady().then(() => {
|
|
|
+ smsVerificationCode().then((res) => {
|
|
|
+ if (res.CenterErrMsg != '') {
|
|
|
+ CenterErrMsg.value = res.CenterErrMsg ?? ''
|
|
|
+ }
|
|
|
+ isCountdown.value = true
|
|
|
+ // 开始倒计时
|
|
|
+ const countDown = window.setInterval(() => {
|
|
|
+ seconds.value--
|
|
|
+ if (seconds.value <= 0) {
|
|
|
+ clearInterval(countDown)
|
|
|
+ isCountdown.value = false
|
|
|
+ }
|
|
|
+ }, 1000)
|
|
|
+ }).catch(() => {
|
|
|
+ ElMessage.error('发送失败')
|
|
|
+ })
|
|
|
+ }).catch((err) => {
|
|
|
+ ElMessage.error(err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
const formSubmit = () => {
|
|
|
formRef.value?.validate((valid) => {
|
|
|
if (valid) {
|
|
|
@@ -102,6 +153,10 @@ const formSubmit = () => {
|
|
|
formData.BankCity = e.value
|
|
|
}
|
|
|
})
|
|
|
+ /// 如果需要短信验证码
|
|
|
+ if (CenterErrMsg.value != '') {
|
|
|
+ obj['smsSerialNo'] = CenterErrMsg.value
|
|
|
+ }
|
|
|
formData.extend_info = JSON.stringify(obj)
|
|
|
|
|
|
onSubmit().then(() => {
|