Show final calculate rate in workflow list

This commit is contained in:
wkc
2026-05-18 10:56:25 +08:00
parent a4f927fdcb
commit a6e7ef6105
21 changed files with 209 additions and 34 deletions

View File

@@ -72,7 +72,7 @@
</el-col>
<el-col :span="12" v-if="isStockTransfer">
<el-form-item label="历史贷款利率" prop="loanRateHistory">
<el-input v-model="form.loanRateHistory" placeholder="请选择历史贷款合同" :readonly="true"/>
<el-input :value="formatRate(form.loanRateHistory, '')" placeholder="请选择历史贷款合同" :readonly="true"/>
</el-form-item>
</el-col>
</el-row>
@@ -130,6 +130,7 @@
<script>
import {createCorporateWorkflow, queryHistoryContracts} from "@/api/loanPricing/workflow"
import HistoryContractSelector from "./HistoryContractSelector"
import {formatRate} from "@/utils/rate"
export default {
name: "CorporateCreateDialog",
@@ -295,6 +296,7 @@ export default {
}
},
methods: {
formatRate,
/** 表单重置 */
reset() {
this.form = {

View File

@@ -81,7 +81,7 @@
<el-descriptions-item label="担保方式">{{ detailData.guarType }}</el-descriptions-item>
<el-descriptions-item label="申请金额">{{ detailData.applyAmt }} </el-descriptions-item>
<el-descriptions-item label="业务种类">{{ detailData.businessType || '-' }}</el-descriptions-item>
<el-descriptions-item label="历史贷款利率">{{ detailData.loanRateHistory || '-' }}</el-descriptions-item>
<el-descriptions-item label="历史贷款利率">{{ formatRate(detailData.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="绿色贷款">{{ formatBoolean(detailData.isGreenLoan) }}</el-descriptions-item>
<el-descriptions-item label="贸易和建筑业企业">{{ formatBoolean(detailData.isTradeBuildEnt) }}</el-descriptions-item>
<el-descriptions-item label="抵质押类型">{{ detailData.collType || '-' }}</el-descriptions-item>
@@ -110,6 +110,7 @@
import {setExecuteRate} from "@/api/loanPricing/workflow"
import ModelOutputDisplay from "./ModelOutputDisplay.vue"
import BargainingPoolDisplay from "./BargainingPoolDisplay.vue"
import {formatRate} from "@/utils/rate"
export default {
name: "CorporateWorkflowDetail",
@@ -140,12 +141,13 @@ export default {
watch: {
'detailData.executeRate': {
handler(newVal) {
this.executeRateInput = newVal || ''
this.executeRateInput = formatRate(newVal, '')
},
immediate: true
}
},
methods: {
formatRate,
/** 格式化布尔值为中文 */
formatBoolean(value) {
if (value === 'true' || value === true || value === '1' || value === 1) return '是'
@@ -154,7 +156,7 @@ export default {
},
/** 获取基准利率 */
getBaseLoanRate() {
return this.corpOutput?.baseLoanRate || '-'
return this.formatRate(this.corpOutput?.baseLoanRate)
},
/** 获取浮动BP */
getTotalBp() {
@@ -162,7 +164,7 @@ export default {
},
/** 获取最终测算利率 */
getCalculateRate() {
return this.corpOutput?.finalCalculateRate || '-'
return this.formatRate(this.corpOutput?.finalCalculateRate)
},
/** 设定执行利率 */
handleSetExecuteRate() {

View File

@@ -18,7 +18,11 @@
<el-table-column label="历史贷款合同号" prop="loan_contract_history" align="center" :show-overflow-tooltip="true"/>
<el-table-column label="历史贷款担保方式" prop="guar_type_history" align="center"/>
<el-table-column label="历史贷款产品代码" prop="product_code_history" align="center"/>
<el-table-column label="历史贷款利率" prop="loan_rate_history" align="center"/>
<el-table-column label="历史贷款利率" prop="loan_rate_history" align="center">
<template slot-scope="scope">
<span>{{ formatRate(scope.row.loan_rate_history) }}</span>
</template>
</el-table-column>
<el-table-column label="历史贷款金额" prop="loan_amount_history" align="center"/>
<el-table-column label="历史贷款签订时间" prop="loan_sign_date_history" align="center" width="150"/>
</el-table>
@@ -30,6 +34,8 @@
</template>
<script>
import {formatRate} from "@/utils/rate"
export default {
name: "HistoryContractSelector",
props: {
@@ -63,6 +69,7 @@ export default {
}
},
methods: {
formatRate,
contractRadioValue(row, index) {
return row.loan_contract_history || `${row.cust_isn || ''}-${index}`
},

View File

@@ -13,7 +13,7 @@
<el-descriptions-item label="客户名称">{{ retailOutput.custName || '-' }}</el-descriptions-item>
<el-descriptions-item label="证件类型">{{ retailOutput.idType || '-' }}</el-descriptions-item>
<el-descriptions-item label="证件号码">{{ retailOutput.idNum || '-' }}</el-descriptions-item>
<el-descriptions-item label="基准利率"><span class="rate-value">{{ retailOutput.baseLoanRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="基准利率"><span class="rate-value">{{ formatRate(retailOutput.baseLoanRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="灰黑名单客户">{{ formatOutputValue(retailOutput.greyBlackCust) }}</el-descriptions-item>
</el-descriptions>
</div>
@@ -22,12 +22,12 @@
<h4 class="section-title">测算结果</h4>
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="浮动BP"><span class="total-bp-value">{{ retailOutput.totalBp || '-' }}</span></el-descriptions-item>
<el-descriptions-item label="测算利率"><span class="calculate-rate">{{ retailOutput.calculateRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="历史利率">{{ retailOutput.loanRateHistory || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品最低利率下限">{{ retailOutput.minRateProduct || '-' }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ retailOutput.smoothRange || '-' }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ retailOutput.referenceRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="最终测算利率"><span class="calculate-rate">{{ retailOutput.finalCalculateRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="测算利率"><span class="calculate-rate">{{ formatRate(retailOutput.calculateRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="历史利率">{{ formatRate(retailOutput.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="产品最低利率下限">{{ formatRate(retailOutput.minRateProduct) }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ formatRate(retailOutput.smoothRange) }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ formatRate(retailOutput.referenceRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="最终测算利率"><span class="calculate-rate">{{ formatRate(retailOutput.finalCalculateRate) }}</span> %</el-descriptions-item>
</el-descriptions>
</div>
@@ -49,7 +49,7 @@
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="存款年日均">{{ retailOutput.balanceAvg || '-' }}</el-descriptions-item>
<el-descriptions-item label="贷款年日均">{{ retailOutput.loanAvg || '-' }}</el-descriptions-item>
<el-descriptions-item label="派生率">{{ retailOutput.derivationRate || '-' }}</el-descriptions-item>
<el-descriptions-item label="派生率">{{ formatRate(retailOutput.derivationRate) }}</el-descriptions-item>
<el-descriptions-item label="TOTAL_BP_贡献度"><span class="total-bp-value">{{ retailOutput.totalBpContribution || '-' }}</span></el-descriptions-item>
</el-descriptions>
</div>
@@ -112,7 +112,7 @@
<el-descriptions-item label="客户名称">{{ corpOutput.custName || '-' }}</el-descriptions-item>
<el-descriptions-item label="证件类型">{{ corpOutput.idType || '-' }}</el-descriptions-item>
<el-descriptions-item label="证件号码">{{ corpOutput.idNum || '-' }}</el-descriptions-item>
<el-descriptions-item label="基准利率"><span class="rate-value">{{ corpOutput.baseLoanRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="基准利率"><span class="rate-value">{{ formatRate(corpOutput.baseLoanRate) }}</span> %</el-descriptions-item>
</el-descriptions>
</div>
@@ -120,12 +120,12 @@
<h4 class="section-title">测算结果</h4>
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="浮动BP"><span class="total-bp-value">{{ corpOutput.totalBp || '-' }}</span></el-descriptions-item>
<el-descriptions-item label="测算利率"><span class="calculate-rate">{{ corpOutput.calculateRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="历史利率">{{ corpOutput.loanRateHistory || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品最低利率下限">{{ corpOutput.minRateProduct || '-' }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ corpOutput.smoothRange || '-' }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ corpOutput.referenceRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="最终测算利率"><span class="calculate-rate">{{ corpOutput.finalCalculateRate || '-' }}</span> %</el-descriptions-item>
<el-descriptions-item label="测算利率"><span class="calculate-rate">{{ formatRate(corpOutput.calculateRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="历史利率">{{ formatRate(corpOutput.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="产品最低利率下限">{{ formatRate(corpOutput.minRateProduct) }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ formatRate(corpOutput.smoothRange) }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ formatRate(corpOutput.referenceRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="最终测算利率"><span class="calculate-rate">{{ formatRate(corpOutput.finalCalculateRate) }}</span> %</el-descriptions-item>
</el-descriptions>
</div>
@@ -145,7 +145,7 @@
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="存款年日均">{{ corpOutput.balanceAvg || '-' }}</el-descriptions-item>
<el-descriptions-item label="贷款年日均">{{ corpOutput.loanAvg || '-' }}</el-descriptions-item>
<el-descriptions-item label="派生率">{{ corpOutput.derivationRate || '-' }}</el-descriptions-item>
<el-descriptions-item label="派生率">{{ formatRate(corpOutput.derivationRate) }}</el-descriptions-item>
<el-descriptions-item label="TOTAL_BP_贡献度"><span class="total-bp-value">{{ corpOutput.totalBpContribution || '-' }}</span></el-descriptions-item>
</el-descriptions>
</div>
@@ -209,6 +209,8 @@
</template>
<script>
import {formatRate} from "@/utils/rate"
export default {
name: "ModelOutputDisplay",
props: {
@@ -226,6 +228,7 @@ export default {
}
},
methods: {
formatRate,
/** 格式化布尔值为中文 */
formatBoolean(value) {
if (value === 'true' || value === true || value === '1' || value === 1) return '是'

View File

@@ -72,7 +72,7 @@
</el-col>
<el-col :span="12" v-if="isStockTransfer">
<el-form-item label="历史贷款利率" prop="loanRateHistory">
<el-input v-model="form.loanRateHistory" placeholder="请选择历史贷款合同" :readonly="true"/>
<el-input :value="formatRate(form.loanRateHistory, '')" placeholder="请选择历史贷款合同" :readonly="true"/>
</el-form-item>
</el-col>
</el-row>
@@ -122,6 +122,7 @@
<script>
import {createPersonalWorkflow, queryHistoryContracts} from "@/api/loanPricing/workflow"
import HistoryContractSelector from "./HistoryContractSelector"
import {formatRate} from "@/utils/rate"
export default {
name: "PersonalCreateDialog",
@@ -272,6 +273,7 @@ export default {
}
},
methods: {
formatRate,
/** 表单重置 */
reset() {
this.form = {

View File

@@ -81,7 +81,7 @@
<el-descriptions-item label="申请金额">{{ detailData.applyAmt }} </el-descriptions-item>
<el-descriptions-item label="贷款用途">{{ formatLoanPurpose(detailData.loanPurpose) }}</el-descriptions-item>
<el-descriptions-item label="业务种类">{{ detailData.businessType || '-' }}</el-descriptions-item>
<el-descriptions-item label="历史贷款利率">{{ detailData.loanRateHistory || '-' }}</el-descriptions-item>
<el-descriptions-item label="历史贷款利率">{{ formatRate(detailData.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="借款期限">{{ detailData.loanTerm || '-' }}</el-descriptions-item>
<el-descriptions-item label="是否有经营佐证">{{
formatBoolean(detailData.bizProof)
@@ -114,6 +114,7 @@
import {setExecuteRate} from "@/api/loanPricing/workflow"
import ModelOutputDisplay from "./ModelOutputDisplay.vue"
import BargainingPoolDisplay from "./BargainingPoolDisplay.vue"
import {formatRate} from "@/utils/rate"
export default {
name: "PersonalWorkflowDetail",
@@ -144,12 +145,13 @@ export default {
watch: {
'detailData.executeRate': {
handler(newVal) {
this.executeRateInput = newVal || ''
this.executeRateInput = formatRate(newVal, '')
},
immediate: true
}
},
methods: {
formatRate,
/** 格式化布尔值为中文 */
formatBoolean(value) {
if (value === 'true' || value === true || value === '1' || value === 1) return '是'
@@ -164,7 +166,7 @@ export default {
},
/** 获取基准利率 */
getBaseLoanRate() {
return this.retailOutput?.baseLoanRate || '-'
return this.formatRate(this.retailOutput?.baseLoanRate)
},
/** 获取浮动BP */
getTotalBp() {
@@ -172,7 +174,7 @@ export default {
},
/** 获取最终测算利率 */
getCalculateRate() {
return this.retailOutput?.finalCalculateRate || '-'
return this.formatRate(this.retailOutput?.finalCalculateRate)
},
/** 设定执行利率 */
handleSetExecuteRate() {

View File

@@ -46,12 +46,21 @@
<el-table v-loading="loading" :data="workflowList">
<el-table-column label="业务方流水号" align="center" prop="serialNum" width="180" :show-overflow-tooltip="true" />
<el-table-column label="客户内码" align="center" prop="custIsn" width="140" :show-overflow-tooltip="true" />
<el-table-column label="客户名称" align="center" prop="custName" :show-overflow-tooltip="true" />
<el-table-column label="客户类型" align="center" prop="custType" width="100" />
<el-table-column label="担保方式" align="center" prop="guarType" width="100" />
<el-table-column label="申请金额(元)" align="center" prop="applyAmt" width="120" />
<el-table-column label="测算利率(%)" align="center" prop="calculateRate" width="100" />
<el-table-column label="执行利率(%)" align="center" prop="executeRate" width="100" />
<el-table-column label="最终测算利率(%)" align="center" prop="calculateRate" width="120">
<template slot-scope="scope">
<span>{{ formatRate(scope.row.calculateRate) }}</span>
</template>
</el-table-column>
<el-table-column label="执行利率(%)" align="center" prop="executeRate" width="100">
<template slot-scope="scope">
<span>{{ formatRate(scope.row.executeRate) }}</span>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
@@ -110,6 +119,7 @@ import CustomerTypeSelector from "./components/CustomerTypeSelector"
import CustomerMapSelector from "./components/CustomerMapSelector"
import PersonalCreateDialog from "./components/PersonalCreateDialog"
import CorporateCreateDialog from "./components/CorporateCreateDialog"
import {formatRate} from "@/utils/rate"
export default {
name: "LoanPricingWorkflow",
@@ -170,6 +180,7 @@ export default {
}
},
methods: {
formatRate,
/** 查询利率定价流程列表 */
getList() {
this.loading = true