额度限制去除,计费后额度允许为负

This commit is contained in:
luojiaquan
2026-09-18 18:14:41 +08:00
parent 9a26ba373a
commit f529067ae3
5 changed files with 69 additions and 67 deletions
@@ -295,13 +295,14 @@
<el-table-column label="时间" align="center" prop="createTime" width="160">
<template #default="scope">{{ formatDateTime(scope.row.createTime) }}</template>
</el-table-column>
<el-table-column label="额度类型" align="center" prop="creditType" width="100">
<template #default="scope">
<el-tag :type="scope.row.creditType === 'TEMP' ? 'warning' : ''">
{{ formatOption(creditTypeOptions, scope.row.creditType) }}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="额度类型" align="center" prop="creditType" width="100">-->
<!-- <template #default="scope">-->
<!-- <el-tag :type="scope.row.creditType === 'TEMP' ? 'warning' : ''">-->
<!-- {{ formatOption(creditTypeOptions, scope.row.creditType) }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="业务单号" align="center" prop="bizNo" width="190" />
<el-table-column label="变动类型" align="center" prop="changeType" width="100">
<template #default="scope">
<el-tag :type="creditChangeTag(scope.row.changeType)">
@@ -22,11 +22,6 @@
<el-option v-for="c in currencyOptions" :key="c" :label="c" :value="c" />
</el-select>
</el-form-item>
<el-form-item label="汇率类型">
<el-select v-model="calc.rateType" style="width: 110px;">
<el-option v-for="d in rateTypeOptions" :key="d.value" :label="d.label" :value="d.value" />
</el-select>
</el-form-item>
<el-form-item label="业务日期">
<el-date-picker v-model="calc.bizDate" type="date" value-format="YYYY-MM-DD" placeholder="默认今天" style="width: 150px;" />
</el-form-item>
@@ -43,7 +38,7 @@
<el-divider direction="vertical" />
<span style="font-size: 12px; color: #909399;">
汇率 1 {{ calcResult.fromCurrency }} = {{ calcResult.rate }} {{ calcResult.toCurrency }}
({{ ratePathText(calcResult.ratePath) }},{{ rateTypeText(calcResult.rateType) }},{{ calcResult.bizDate }})
({{ ratePathText(calcResult.ratePath) }},即期汇率,{{ calcResult.bizDate }})
</span>
</template>
</el-alert>
@@ -61,11 +56,6 @@
<el-option v-for="c in currencyOptions" :key="c" :label="c" :value="c" />
</el-select>
</el-form-item>
<el-form-item label="汇率类型" prop="rateType">
<el-select v-model="queryParams.rateType" clearable style="width: 120px;" placeholder="全部">
<el-option v-for="d in rateTypeOptions" :key="d.value" :label="d.label" :value="d.value" />
</el-select>
</el-form-item>
<el-form-item label="来源" prop="source">
<el-input v-model="queryParams.source" placeholder="汇率来源" clearable style="width: 140px;" @keyup.enter="handleQuery" />
</el-form-item>
@@ -97,11 +87,6 @@
<el-tag size="small" type="success">{{ scope.row.toCurrency }}</el-tag>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="rateType" width="100">
<template #default="scope">
<el-tag :type="rateTypeTag(scope.row.rateType)">{{ rateTypeText(scope.row.rateType) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="汇率值(1源=?目标)" align="center" prop="exchangeRate" width="170">
<template #default="scope">
<span class="rate-value">{{ formatRate(scope.row.exchangeRate) }}</span>
@@ -149,10 +134,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇率类型" prop="rateType">
<el-select v-model="form.rateType" style="width: 100%;">
<el-option v-for="d in rateTypeOptions" :key="d.value" :label="d.label" :value="d.value" />
</el-select>
<el-form-item label="汇率类型">
<el-tag type="danger">即期汇率</el-tag>
<span style="margin-left: 8px; font-size: 12px; color: #909399;">当前仅支持即期</span>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -213,13 +197,8 @@ const title = ref('')
const open = ref(false)
const calcResult = ref(null)
const rateTypeOptions = [
{ value: '0', label: '即期汇率' }
// ,
// { value: '1', label: '月初汇率' },
// { value: '2', label: '月末汇率' },
// { value: '3', label: '固定汇率' }
]
// 当前系统仅启用即期汇率(rateType 固定 '0'),不再维护类型字典;
// 后续启用月初/月末/固定汇率时,再恢复 rateTypeOptions 及各处类型选择器。
/** 常用币种兜底 + 从国家资料(币种)去重加载 */
const currencyOptions = ref(['CNY', 'USD', 'EUR', 'GBP', 'HKD', 'JPY'])
@@ -237,7 +216,6 @@ const queryParams = reactive({
pageSize: 10,
fromCurrency: '',
toCurrency: '',
rateType: '',
source: ''
})
@@ -245,7 +223,6 @@ const calc = reactive({
amount: 100,
fromCurrency: 'USD',
toCurrency: 'CNY',
rateType: '0',
bizDate: ''
})
@@ -253,18 +230,10 @@ const form = ref({})
const rules = {
fromCurrency: [{ required: true, message: '源币种不能为空', trigger: 'change' }],
toCurrency: [{ required: true, message: '目标币种不能为空', trigger: 'change' }],
rateType: [{ required: true, message: '请选择汇率类型', trigger: 'change' }],
exchangeRate: [{ required: true, message: '汇率值不能为空', trigger: 'blur' }],
effectiveDate: [{ required: true, message: '生效日期不能为空', trigger: 'change' }]
}
function rateTypeText(v) {
const o = rateTypeOptions.find(d => d.value === String(v))
return o ? o.label : v
}
function rateTypeTag(v) {
return { '0': 'danger', '1': 'warning', '2': '', '3': 'success' }[v] || 'info'
}
function formatRate(v) {
const num = Number(v)
return isNaN(num) ? '-' : num.toFixed(8).replace(/0+$/, '').replace(/\.$/, '')
@@ -348,7 +317,7 @@ function submitForm() {
}
function handleDelete(row) {
proxy.$modal.confirm('是否确认删除汇率【' + row.fromCurrency + ' → ' + row.toCurrency + ' / ' + rateTypeText(row.rateType) + '】?').then(() => {
proxy.$modal.confirm('是否确认删除汇率【' + row.fromCurrency + ' → ' + row.toCurrency + '(即期)】?').then(() => {
return delExchangeRate(row.rateId)
}).then(() => {
getList()
@@ -369,7 +338,6 @@ function handleConvert() {
amount: calc.amount,
fromCurrency: calc.fromCurrency,
toCurrency: calc.toCurrency,
rateType: calc.rateType,
bizDate: calc.bizDate || undefined
}).then(res => {
calcResult.value = res.data
@@ -384,7 +352,6 @@ function handleToBase() {
convertToBase({
amount: calc.amount,
currency: calc.fromCurrency,
rateType: calc.rateType,
bizDate: calc.bizDate || undefined
}).then(res => {
calcResult.value = res.data