Compare commits
2 Commits
f11d20abc7
...
986383b347
| Author | SHA1 | Date | |
|---|---|---|---|
| 986383b347 | |||
| 21cde7c131 |
@@ -309,7 +309,7 @@ GET /loanPricing/workflow/20250119143025123
|
||||
"midPerFinMan": "false",
|
||||
"midPerEtc": "true",
|
||||
"bpMid": "-15",
|
||||
"totoalBpRelevance": "-50",
|
||||
"totalBpRelevance": "-50",
|
||||
"applyAmt": "500000",
|
||||
"bpLoanAmount": "0",
|
||||
"loanPurpose": "consumer",
|
||||
@@ -325,7 +325,7 @@ GET /loanPricing/workflow/20250119143025123
|
||||
"interestOverdue": "false",
|
||||
"cardOverdue": "false",
|
||||
"bpGreyOverdue": "0",
|
||||
"totoalBpRisk": "0",
|
||||
"totalBpRisk": "0",
|
||||
"totalBp": "-80",
|
||||
"calculateRate": "2.65"
|
||||
},
|
||||
@@ -364,7 +364,7 @@ GET /loanPricing/workflow/20250119143025123
|
||||
"isGreenLoan": "false",
|
||||
"isTechEnt": "true",
|
||||
"bpEntType": "-25",
|
||||
"totoalBpRelevance": "-55",
|
||||
"totalBpRelevance": "-55",
|
||||
"loanTerm": "36",
|
||||
"bpLoanTerm": "0",
|
||||
"applyAmt": "1000000",
|
||||
@@ -377,7 +377,7 @@ GET /loanPricing/workflow/20250119143025123
|
||||
"interestOverdue": "false",
|
||||
"cardOverdue": "false",
|
||||
"bpGreyOverdue": "0",
|
||||
"totoalBpRisk": "0",
|
||||
"totalBpRisk": "0",
|
||||
"totalBp": "-85",
|
||||
"calculateRate": "2.60"
|
||||
}
|
||||
|
||||
@@ -88,7 +88,8 @@ public class ModelCorpOutputFields {
|
||||
// BP_企业客户类别
|
||||
private String bpEntType;
|
||||
// TOTAL_BP_关联度
|
||||
private String totoalBpRelevance;
|
||||
@TableField("totoal_bp_relevance")
|
||||
private String totalBpRelevance;
|
||||
// 贷款期限
|
||||
private String loanTerm;
|
||||
// BP_贷款期限
|
||||
@@ -112,7 +113,8 @@ public class ModelCorpOutputFields {
|
||||
// BP_灰名单与逾期
|
||||
private String bpGreyOverdue;
|
||||
// TOTAL_BP_风险度
|
||||
private String totoalBpRisk;
|
||||
@TableField("totoal_bp_risk")
|
||||
private String totalBpRisk;
|
||||
// 浮动BP
|
||||
private String totalBp;
|
||||
// 测算利率
|
||||
|
||||
@@ -116,8 +116,9 @@ public class ModelRetailOutputFields {
|
||||
// BP_中间业务
|
||||
private String bpMid;
|
||||
|
||||
// TOTAL_BP_关联度(注意原字段名拼写错误:totoalBpRelevance,已保留原拼写)
|
||||
private String totoalBpRelevance;
|
||||
// TOTAL_BP_关联度
|
||||
@TableField("totoal_bp_relevance")
|
||||
private String totalBpRelevance;
|
||||
|
||||
// 申请金额
|
||||
private String applyAmt;
|
||||
@@ -164,8 +165,9 @@ public class ModelRetailOutputFields {
|
||||
// BP_灰名单与逾期
|
||||
private String bpGreyOverdue;
|
||||
|
||||
// TOTAL_BP_风险度(注意原字段名拼写错误:totoalBpRisk,已保留原拼写)
|
||||
private String totoalBpRisk;
|
||||
// TOTAL_BP_风险度
|
||||
@TableField("totoal_bp_risk")
|
||||
private String totalBpRisk;
|
||||
|
||||
// 浮动BP
|
||||
private String totalBp;
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"isGreenLoan": "1",
|
||||
"isTechEnt": "1",
|
||||
"bpEntType": "7.5",
|
||||
"totoalBpRelevance": "9.2",
|
||||
"totalBpRelevance": "9.2",
|
||||
"bpLoanTerm": "3.3",
|
||||
"applyAmt": "5000000.00",
|
||||
"bpLoanAmount": "5.8",
|
||||
@@ -48,7 +48,7 @@
|
||||
"prinOverdue": "0",
|
||||
"interestOverdue": "0",
|
||||
"bpGreyOverdue": "0",
|
||||
"totoalBpRisk": "1.2",
|
||||
"totalBpRisk": "1.2",
|
||||
"totalBp": "48.2",
|
||||
"baseLoanRate": "3.45",
|
||||
"calculateRate": "3.932",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"midPerFinMan": "5000.00",
|
||||
"midPerEtc": "180.00",
|
||||
"bpMid": "45",
|
||||
"totoalBpRelevance": "90",
|
||||
"totalBpRelevance": "90",
|
||||
"applyAmt": "200000.00",
|
||||
"bpLoanAmount": "60",
|
||||
"loanPurpose": "个人消费",
|
||||
@@ -51,7 +51,7 @@
|
||||
"interestOverdue": "否",
|
||||
"cardOverdue": "否",
|
||||
"bpGreyOverdue": "98",
|
||||
"totoalBpRisk": "95",
|
||||
"totalBpRisk": "95",
|
||||
"totalBp": "350",
|
||||
"calculateRate": "6.15",
|
||||
"loanRateHistory": "6.40",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<el-descriptions-item label="中间业务_个人_理财业务">{{ formatBoolean(retailOutput.midPerFinMan) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="中间业务_个人_etc">{{ formatBoolean(retailOutput.midPerEtc) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="BP_中间业务"><span class="bp-value">{{ retailOutput.bpMid || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_关联度"><span class="total-bp-value">{{ retailOutput.totoalBpRelevance || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_关联度"><span class="total-bp-value">{{ retailOutput.totalBpRelevance || '-' }}</span></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
<el-descriptions-item label="利息逾期">{{ formatBoolean(retailOutput.interestOverdue) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="信用卡逾期">{{ formatBoolean(retailOutput.cardOverdue) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="BP_灰名单与逾期"><span class="bp-value">{{ retailOutput.bpGreyOverdue || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_风险度"><span class="total-bp-value">{{ retailOutput.totoalBpRisk || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_风险度"><span class="total-bp-value">{{ retailOutput.totalBpRisk || '-' }}</span></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
@@ -164,7 +164,7 @@
|
||||
<el-descriptions-item label="代发工资户数">{{ corpOutput.payroll || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="存量贷款余额">{{ corpOutput.invLoanAmount || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="BP_代发工资"><span class="bp-value">{{ corpOutput.bpPayroll || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_关联度"><span class="total-bp-value">{{ corpOutput.totoalBpRelevance || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_关联度"><span class="total-bp-value">{{ corpOutput.totalBpRelevance || '-' }}</span></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
<el-descriptions-item label="本金逾期">{{ formatBoolean(corpOutput.prinOverdue) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="利息逾期">{{ formatBoolean(corpOutput.interestOverdue) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="BP_灰名单与逾期"><span class="bp-value">{{ corpOutput.bpGreyOverdue || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_风险度"><span class="total-bp-value">{{ corpOutput.totoalBpRisk || '-' }}</span></el-descriptions-item>
|
||||
<el-descriptions-item label="TOTAL_BP_风险度"><span class="total-bp-value">{{ corpOutput.totalBpRisk || '-' }}</span></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -3,25 +3,39 @@
|
||||
<!-- 页面头部:标题和返回按钮 -->
|
||||
<div class="page-header">
|
||||
<h2 class="page-title">流程详情</h2>
|
||||
<el-button icon="el-icon-back" size="small" @click="goBack">返回</el-button>
|
||||
<div class="page-actions">
|
||||
<el-button
|
||||
class="workflow-print-button"
|
||||
icon="el-icon-printer"
|
||||
size="small"
|
||||
type="primary"
|
||||
:disabled="loading || !workflowDetail"
|
||||
@click="handlePrint"
|
||||
>
|
||||
打印
|
||||
</el-button>
|
||||
<el-button icon="el-icon-back" size="small" @click="goBack">返回</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 根据客户类型渲染对应的详情组件 -->
|
||||
<personal-workflow-detail
|
||||
v-if="!loading && workflowDetail && workflowDetail.custType === '个人'"
|
||||
:detail-data="workflowDetail"
|
||||
:retail-output="retailOutput"
|
||||
:bargaining-pool="bargainingPool"
|
||||
@refresh="getDetail"
|
||||
/>
|
||||
<div class="workflow-print-area">
|
||||
<!-- 根据客户类型渲染对应的详情组件 -->
|
||||
<personal-workflow-detail
|
||||
v-if="!loading && workflowDetail && workflowDetail.custType === '个人'"
|
||||
:detail-data="workflowDetail"
|
||||
:retail-output="retailOutput"
|
||||
:bargaining-pool="bargainingPool"
|
||||
@refresh="getDetail"
|
||||
/>
|
||||
|
||||
<corporate-workflow-detail
|
||||
v-if="!loading && workflowDetail && workflowDetail.custType === '企业'"
|
||||
:detail-data="workflowDetail"
|
||||
:corp-output="corpOutput"
|
||||
:bargaining-pool="bargainingPool"
|
||||
@refresh="getDetail"
|
||||
/>
|
||||
<corporate-workflow-detail
|
||||
v-if="!loading && workflowDetail && workflowDetail.custType === '企业'"
|
||||
:detail-data="workflowDetail"
|
||||
:corp-output="corpOutput"
|
||||
:bargaining-pool="bargainingPool"
|
||||
@refresh="getDetail"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -72,6 +86,37 @@ export default {
|
||||
/** 返回上一页 */
|
||||
goBack() {
|
||||
this.$router.go(-1)
|
||||
},
|
||||
/** 打印流程详情 */
|
||||
handlePrint() {
|
||||
this.$nextTick(() => {
|
||||
const originalTitle = document.title
|
||||
document.title = this.buildPrintFileName()
|
||||
window.print()
|
||||
document.title = originalTitle
|
||||
})
|
||||
},
|
||||
/** 生成打印文件名 */
|
||||
buildPrintFileName() {
|
||||
const custName = this.sanitizePrintFileName(this.workflowDetail?.custName || '流程详情')
|
||||
return `${custName}_${this.formatPrintTimestamp(new Date())}`
|
||||
},
|
||||
/** 格式化打印时间戳 */
|
||||
formatPrintTimestamp(date) {
|
||||
const pad = value => String(value).padStart(2, '0')
|
||||
return [
|
||||
date.getFullYear(),
|
||||
pad(date.getMonth() + 1),
|
||||
pad(date.getDate())
|
||||
].join('') + [
|
||||
pad(date.getHours()),
|
||||
pad(date.getMinutes()),
|
||||
pad(date.getSeconds())
|
||||
].join('')
|
||||
},
|
||||
/** 清理文件名中的非法字符 */
|
||||
sanitizePrintFileName(value) {
|
||||
return String(value).replace(/[\\/:*?"<>|]/g, '').trim() || '流程详情'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -92,6 +137,96 @@ export default {
|
||||
font-weight: 500;
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
.page-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
@media print {
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 12mm;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
.sidebar-container,
|
||||
.fixed-header,
|
||||
.navbar,
|
||||
.tags-view-container,
|
||||
.page-actions,
|
||||
.el-loading-mask,
|
||||
.execute-rate-input-wrapper .el-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.main-container,
|
||||
.app-main,
|
||||
.app-container,
|
||||
.workflow-detail-container,
|
||||
.workflow-print-area {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
width: 100% !important;
|
||||
max-width: none !important;
|
||||
min-height: auto !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.workflow-detail-container .page-header {
|
||||
display: block !important;
|
||||
margin-bottom: 12px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.workflow-detail-container .page-title {
|
||||
font-size: 20px !important;
|
||||
font-weight: 600 !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.personal-workflow-detail .detail-layout,
|
||||
.corporate-workflow-detail .detail-layout {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.personal-workflow-detail .left-panel,
|
||||
.corporate-workflow-detail .left-panel,
|
||||
.personal-workflow-detail .right-panel,
|
||||
.corporate-workflow-detail .right-panel {
|
||||
width: 100% !important;
|
||||
max-width: none !important;
|
||||
flex: none !important;
|
||||
}
|
||||
|
||||
.el-card {
|
||||
break-inside: avoid;
|
||||
page-break-inside: avoid;
|
||||
box-shadow: none !important;
|
||||
border: 1px solid #dcdfe6 !important;
|
||||
margin-bottom: 12px !important;
|
||||
}
|
||||
|
||||
.el-card__header {
|
||||
background: #f5f7fa !important;
|
||||
}
|
||||
|
||||
.el-descriptions {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
.el-input__inner,
|
||||
.el-input-group__append {
|
||||
border-color: #dcdfe6 !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user