2026-01-20 23:46:44 +08:00
|
|
|
|
<template>
|
2026-01-21 09:04:15 +08:00
|
|
|
|
<div class="app-container workflow-detail-container" v-loading="loading">
|
|
|
|
|
|
<!-- 页面头部:标题和返回按钮 -->
|
|
|
|
|
|
<div class="page-header">
|
|
|
|
|
|
<h2 class="page-title">流程详情</h2>
|
|
|
|
|
|
<el-button icon="el-icon-back" size="small" @click="goBack">返回</el-button>
|
|
|
|
|
|
</div>
|
2026-01-20 23:46:44 +08:00
|
|
|
|
|
2026-02-02 15:25:38 +08:00
|
|
|
|
<!-- 根据客户类型渲染对应的详情组件 -->
|
|
|
|
|
|
<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"
|
|
|
|
|
|
/>
|
2026-01-20 23:46:44 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2026-02-02 15:25:38 +08:00
|
|
|
|
import {getWorkflow} from "@/api/loanPricing/workflow"
|
|
|
|
|
|
import PersonalWorkflowDetail from "./components/PersonalWorkflowDetail.vue"
|
|
|
|
|
|
import CorporateWorkflowDetail from "./components/CorporateWorkflowDetail.vue"
|
2026-01-20 23:46:44 +08:00
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
name: "LoanPricingWorkflowDetail",
|
2026-01-22 09:20:28 +08:00
|
|
|
|
components: {
|
2026-02-02 15:25:38 +08:00
|
|
|
|
PersonalWorkflowDetail,
|
|
|
|
|
|
CorporateWorkflowDetail
|
2026-01-22 09:20:28 +08:00
|
|
|
|
},
|
2026-01-20 23:46:44 +08:00
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
loading: true,
|
2026-01-22 09:20:28 +08:00
|
|
|
|
workflowDetail: null,
|
|
|
|
|
|
retailOutput: null,
|
|
|
|
|
|
corpOutput: null,
|
2026-02-02 15:25:38 +08:00
|
|
|
|
bargainingPool: null
|
2026-01-20 23:46:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
|
|
|
this.getDetail()
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
/** 获取流程详情 */
|
|
|
|
|
|
getDetail() {
|
|
|
|
|
|
const serialNum = this.$route.params.serialNum
|
|
|
|
|
|
if (!serialNum) {
|
|
|
|
|
|
this.$modal.msgError("缺少业务方流水号参数")
|
|
|
|
|
|
this.goBack()
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
getWorkflow(serialNum).then(response => {
|
2026-01-22 09:20:28 +08:00
|
|
|
|
this.workflowDetail = response.data.loanPricingWorkflow
|
|
|
|
|
|
this.retailOutput = response.data.modelRetailOutputFields
|
|
|
|
|
|
this.corpOutput = response.data.modelCorpOutputFields
|
2026-01-22 09:58:21 +08:00
|
|
|
|
this.bargainingPool = response.data.bargainingPool
|
2026-01-20 23:46:44 +08:00
|
|
|
|
this.loading = false
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
this.$modal.msgError("获取流程详情失败:" + (error.message || "未知错误"))
|
|
|
|
|
|
this.loading = false
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
/** 返回上一页 */
|
|
|
|
|
|
goBack() {
|
|
|
|
|
|
this.$router.go(-1)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
2026-01-21 09:04:15 +08:00
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.workflow-detail-container {
|
|
|
|
|
|
.page-header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
padding: 0 4px;
|
|
|
|
|
|
|
|
|
|
|
|
.page-title {
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
color: #303133;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|