Преглед изворни кода

伙伴商银行加入银行id关联

hurx пре 2 недеља
родитељ
комит
d2bec8a01a

+ 1 - 0
src/api/partner/bank/types.ts

@@ -19,6 +19,7 @@ export interface PartnerBankForm {
   partnerId: number | string;
   partnerId: number | string;
   account: string;
   account: string;
   registrationNumber?: string;
   registrationNumber?: string;
+  bankId?: number | string;
   accountBankName?: string;
   accountBankName?: string;
   bankNumber?: string;
   bankNumber?: string;
   bankLocation?: string;
   bankLocation?: string;

+ 45 - 14
src/views/partner/merchant/components/BankDialog.vue

@@ -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>

+ 1 - 1
src/views/partner/merchant/components/ContactDialog.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <el-dialog v-model="dialogVisible" title="联系人管理" width="600px" append-to-body @close="handleClose">
+  <el-dialog v-model="dialogVisible" title="联系人管理" width="800px" append-to-body @close="handleClose">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
       <el-row :gutter="20">
       <el-row :gutter="20">
         <el-col :span="12">
         <el-col :span="12">

+ 1 - 1
src/views/partner/merchant/components/QualificationDialog.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <el-dialog v-model="dialogVisible" title="资质管理" width="600px" append-to-body @close="handleClose">
+  <el-dialog v-model="dialogVisible" title="资质管理" width="800px" append-to-body @close="handleClose">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
       <el-row :gutter="20">
       <el-row :gutter="20">
         <el-col :span="12">
         <el-col :span="12">

+ 1 - 1
src/views/partner/merchant/components/UserDialog.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <el-dialog v-model="dialogVisible" title="用户账号管理" width="600px" append-to-body @close="handleClose">
+  <el-dialog v-model="dialogVisible" title="用户账号管理" width="800px" append-to-body @close="handleClose">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
       <el-row :gutter="20">
       <el-row :gutter="20">
         <el-col :span="12">
         <el-col :span="12">

+ 1 - 1
src/views/partner/merchant/components/WarehouseDialog.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <!-- 仓库管理对话框组件 -->
   <!-- 仓库管理对话框组件 -->
-  <el-dialog v-model="dialogVisible" title="仓库管理" width="600px" append-to-body @close="handleClose">
+  <el-dialog v-model="dialogVisible" title="仓库管理" width="800px" append-to-body @close="handleClose">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
     <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
       <el-row :gutter="20">
       <el-row :gutter="20">
         <el-col :span="12">
         <el-col :span="12">

+ 3 - 0
src/views/partner/merchant/index.vue

@@ -743,6 +743,7 @@ const submitForm = () => {
               partnerId: currentPartnerId.value,
               partnerId: currentPartnerId.value,
               account: itemAny.account,
               account: itemAny.account,
               registrationNumber: itemAny.registrationNumber,
               registrationNumber: itemAny.registrationNumber,
+              bankId: itemAny.bankId,
               accountBankName: itemAny.accountBankName,
               accountBankName: itemAny.accountBankName,
               bankNumber: itemAny.bankNumber,
               bankNumber: itemAny.bankNumber,
               bankLocation: itemAny.bankLocation,
               bankLocation: itemAny.bankLocation,
@@ -759,6 +760,7 @@ const submitForm = () => {
               partnerId: currentPartnerId.value,
               partnerId: currentPartnerId.value,
               account: itemAny.account,
               account: itemAny.account,
               registrationNumber: itemAny.registrationNumber,
               registrationNumber: itemAny.registrationNumber,
+              bankId: itemAny.bankId,
               accountBankName: itemAny.accountBankName,
               accountBankName: itemAny.accountBankName,
               bankNumber: itemAny.bankNumber,
               bankNumber: itemAny.bankNumber,
               bankLocation: itemAny.bankLocation,
               bankLocation: itemAny.bankLocation,
@@ -1115,6 +1117,7 @@ const handleAddBank = () => {
     partnerId: 0,
     partnerId: 0,
     account: '',
     account: '',
     registrationNumber: '',
     registrationNumber: '',
+    bankId: 0,
     accountBankName: '',
     accountBankName: '',
     bankNumber: '',
     bankNumber: '',
     bankLocation: '',
     bankLocation: '',