|
@@ -1,51 +1,53 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <el-dialog v-model="dialogVisible" title="银行账户管理" width="600px" append-to-body @close="handleClose">
|
|
|
|
|
- <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
|
|
|
|
|
|
|
+ <el-dialog v-model="dialogVisible" title="银行账户管理" width="850px" append-to-body @close="handleClose">
|
|
|
|
|
+ <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="开户名称" prop="account">
|
|
<el-form-item label="开户名称" prop="account">
|
|
|
- <el-input v-model="formData.account" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.account" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="财务登记号">
|
|
<el-form-item label="财务登记号">
|
|
|
- <el-input v-model="formData.registrationNumber" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.registrationNumber" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="开户银行名称">
|
|
|
|
|
- <el-input v-model="formData.accountBankName" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-form-item label="开户银行名称" prop="bankId">
|
|
|
|
|
+ <el-select v-model="form.bankId" placeholder="请选择" class="w-full" filterable @change="handleBankChange">
|
|
|
|
|
+ <el-option v-for="bank in bankList" :key="bank.id" :label="`${bank.bnId} , ${bank.bnName}`" :value="bank.id" />
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="银行账号">
|
|
<el-form-item label="银行账号">
|
|
|
- <el-input v-model="formData.bankNumber" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.bankNumber" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="开户银行所在地">
|
|
<el-form-item label="开户银行所在地">
|
|
|
- <el-input v-model="formData.bankLocation" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.bankLocation" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="银行联行号">
|
|
<el-form-item label="银行联行号">
|
|
|
- <el-input v-model="formData.bankInterbankNumber" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.bankInterbankNumber" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="电话">
|
|
<el-form-item label="电话">
|
|
|
- <el-input v-model="formData.phone" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.phone" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="地址">
|
|
<el-form-item label="地址">
|
|
|
- <el-input v-model="formData.address" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.address" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -58,9 +60,11 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { ref, computed } from 'vue';
|
|
|
|
|
|
|
+import { ref, computed, watch } from 'vue';
|
|
|
import type { PartnerBankForm } from '@/api/partner/bank/types';
|
|
import type { PartnerBankForm } from '@/api/partner/bank/types';
|
|
|
-
|
|
|
|
|
|
|
+import { listBank } from '@/api/company/bank';
|
|
|
|
|
+import { BankVO } from '@/api/company/bank/types';
|
|
|
|
|
+const bankList = ref<BankVO[]>([]);
|
|
|
interface Props {
|
|
interface Props {
|
|
|
visible: boolean;
|
|
visible: boolean;
|
|
|
formData: PartnerBankForm;
|
|
formData: PartnerBankForm;
|
|
@@ -85,6 +89,21 @@ const rules = {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const formRef = ref();
|
|
const formRef = ref();
|
|
|
|
|
+const form = ref<PartnerBankForm>({ ...props.formData });
|
|
|
|
|
+
|
|
|
|
|
+watch(
|
|
|
|
|
+ () => props.formData,
|
|
|
|
|
+ (newVal) => {
|
|
|
|
|
+ form.value = { ...newVal };
|
|
|
|
|
+ },
|
|
|
|
|
+ { deep: true }
|
|
|
|
|
+);
|
|
|
|
|
+
|
|
|
|
|
+const handleBankChange = (bankId: string | number) => {
|
|
|
|
|
+ const bank = bankList.value.find((b) => b.id === bankId);
|
|
|
|
|
+ form.value.accountBankName = bank?.bnName || '';
|
|
|
|
|
+ form.value.bankLocation = bank?.bnAddr || '';
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const handleClose = () => {
|
|
const handleClose = () => {
|
|
|
emit('update:visible', false);
|
|
emit('update:visible', false);
|
|
@@ -94,8 +113,20 @@ const handleClose = () => {
|
|
|
const handleSubmit = () => {
|
|
const handleSubmit = () => {
|
|
|
formRef.value?.validate((valid: boolean) => {
|
|
formRef.value?.validate((valid: boolean) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
- emit('submit', props.formData);
|
|
|
|
|
|
|
+ emit('submit', form.value);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
+// 获取银行列表
|
|
|
|
|
+const getBankList = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await listBank({ pageNum: 1, pageSize: 9999, isShow: '0' });
|
|
|
|
|
+ bankList.value = res.rows || [];
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取银行列表失败', error);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ getBankList();
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|