feat: 新增银行基础信息管理,信用卡储蓄卡新增字段。

This commit is contained in:
tianyongbao
2026-01-29 15:19:10 +08:00
parent a7baf9ef18
commit 66bb8bfbfe
4 changed files with 481 additions and 11 deletions

View File

@@ -6,6 +6,16 @@
<el-form-item label="储蓄账户名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入储蓄账户名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="银行" prop="bankId">
<el-select v-model="queryParams.bankId" placeholder="请选择银行" clearable filterable>
<el-option v-for="item in bankList" :key="item.id" :label="item.bankName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="卡片等级" prop="cardTier">
<el-select v-model="queryParams.cardTier" placeholder="请选择卡片等级" clearable>
<el-option v-for="dict in card_tier" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="账户状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择账户状态" clearable>
<el-option v-for="dict in account_status" :key="dict.value" :label="dict.label" :value="dict.value" />
@@ -35,25 +45,32 @@
<el-table v-loading="loading" :data="bankcardList" @selection-change="handleSelectionChange" height="calc(100% - 0.62rem)">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" :index="indexMethod" width="50"></el-table-column>
<el-table-column label="储蓄账户名称" align="center" width="180" prop="name" />
<el-table-column label="储蓄账户名称" align="center" width="120" prop="name" />
<el-table-column label="储蓄账户卡号" align="center" prop="code" />
<el-table-column label="余额" align="center" prop="balance" />
<el-table-column label="储蓄账户类型" width="150" align="center" prop="debitType">
<el-table-column label="卡片等级" align="center" width="100" prop="cardTier">
<template #default="scope">
<dict-tag :options="card_tier" :value="scope.row.cardTier" />
</template>
</el-table-column>
<el-table-column label="余额" align="center" width="100" prop="balance" />
<el-table-column label="储蓄账户类型" width="120" align="center" prop="debitType">
<template #default="scope">
<dict-tag :options="debit_type" :value="scope.row.debitType" />
</template>
</el-table-column>
<el-table-column label="账户状态" align="center" prop="status">
<el-table-column label="账户状态" align="center" width="100" prop="status">
<template #default="scope">
<dict-tag :options="account_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="开户行" align="center" prop="openingBank" />
<el-table-column label="开户日期" align="center" prop="activationDate" width="150">
<template #default="scope">
<span>{{ parseTime(scope.row.activationDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="卡面" align="center" width="100" prop="cardFace" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
@@ -78,6 +95,11 @@
<!-- 添加或修改储蓄账户信息对话框 -->
<el-dialog :title="title" v-model="open" width="880px" append-to-body>
<el-form ref="bankcardRef" :model="form" :inline="true" :rules="rules" label-width="120px">
<el-form-item label="银行" prop="bankId">
<el-select v-model="form.bankId" placeholder="请选择银行" clearable filterable @change="handleBankChange">
<el-option v-for="item in bankList" :key="item.id" :label="item.bankName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="储蓄账户名称" prop="name">
<el-input v-model="form.name" placeholder="请输入储蓄账户名称" />
</el-form-item>
@@ -94,9 +116,15 @@
<el-option v-for="dict in account_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="卡片等级" prop="cardTier">
<el-select v-model="form.cardTier" placeholder="请选择卡片等级" clearable>
<el-option v-for="dict in card_tier" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="余额" prop="balance">
<el-input v-model="form.balance" type="number" placeholder="请输入余额" />
</el-form-item>
<!-- <el-form-item label="可用额度" prop="availableLimit">
<el-input v-model="form.availableLimit" placeholder="请输入可用额度" />
</el-form-item> -->
@@ -109,6 +137,9 @@
<el-form-item label="有效期" prop="effectiveDate">
<el-date-picker clearable v-model="form.effectiveDate" type="date" value-format="YYYY-MM-DD" placeholder="请选择有效期"> </el-date-picker>
</el-form-item>
<el-form-item label="卡面" prop="cardFace">
<el-input v-model="form.cardFace" placeholder="请输入卡面" />
</el-form-item>
<el-form-item label="备注" style="width: 792px" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
</el-form-item>
@@ -199,10 +230,11 @@
<script setup name="BankcardLend">
import { listBankcardLend, getBankcardLend, delBankcardLend, addBankcardLend, updateBankcardLend } from '@/api/invest/bankcardlend'
import { listLimitHistory, getLimitHistory, delLimitHistory, addLimitHistory, updateLimitHistory } from '@/api/invest/limitHistory'
import { listBankBaseInfo } from '@/api/invest/bankBaseInfo'
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { bank_card_type, debit_type, account_status } = proxy.useDict('bank_card_type', 'debit_type', 'account_status')
const { bank_card_type, debit_type, account_status, card_tier } = proxy.useDict('bank_card_type', 'debit_type', 'account_status', 'card_tier')
const { limit_history_type, adjust_type } = proxy.useDict('limit_history_type', 'adjust_type')
const bankcardList = ref([])
const open = ref(false)
@@ -220,6 +252,7 @@ const titleDetail = ref('')
const limitHistoryList = ref([])
const currentcardId = ref('')
const currentBeforeLimit = ref('0')
const bankList = ref([])
const operateList = ref([
{ id: 'view', icon: 'View', title: '查看', hasPermi: ['invest:bankcard:query'] },
@@ -240,12 +273,15 @@ const data = reactive({
pageSize: 10,
name: null,
status: null,
bankId: null,
cardTier: null,
debitType: null,
type: '1'
},
rules: {
name: [{ required: true, message: '储蓄账户名称不能为空', trigger: 'blur' }],
code: [{ required: true, message: '储蓄账户卡号不能为空', trigger: 'blur' }],
bankId: [{ required: true, message: '银行不能为空', trigger: 'blur' }],
status: [{ required: true, message: '账户状态不能为空', trigger: 'blur' }],
debitType: [{ required: true, message: '储蓄账户类型不能为空', trigger: 'blur' }],
balance: [{ required: true, message: '余额不能为空', trigger: 'blur' }]
@@ -368,6 +404,9 @@ function resetDetail() {
afterLimit: null,
createBy: null,
createTime: null,
bankId: null,
cardTier: '0',
cardFace: null,
updateBy: null,
updateTime: null,
delFlag: null,
@@ -430,7 +469,9 @@ function reset() {
delFlag: null,
remark: null,
debitType: null,
status: null
status: null,
cardFace: null,
bankId: null
}
proxy.resetForm('bankcardRef')
}
@@ -486,6 +527,17 @@ function handleAdd() {
title.value = '添加储蓄账户信息'
}
/** 银行选择变更 */
function handleBankChange(bankId) {
// 只在新增时自动填充名称
if (title.value === '添加储蓄账户信息' && bankId) {
const selectedBank = bankList.value.find((bank) => bank.id === bankId)
if (selectedBank) {
form.value.name = selectedBank.bankName
}
}
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset()
@@ -544,5 +596,13 @@ function handleExport() {
)
}
/** 获取银行列表 */
function getBankList() {
listBankBaseInfo({ pageNum: 1, pageSize: 1000 }).then((response) => {
bankList.value = response.rows
})
}
getList()
getBankList()
</script>