修复历史贷款合同单选文本异常
This commit is contained in:
@@ -0,0 +1,27 @@
|
|||||||
|
# 历史贷款合同单选异常文本修复实施记录
|
||||||
|
|
||||||
|
## 问题
|
||||||
|
|
||||||
|
- 历史贷款合同选择弹窗的选择列出现 `{ "cus...` 这类异常文本。
|
||||||
|
- 原因是 `el-radio` 使用整行对象 `scope.row` 作为 `label`,Element UI 会把对象值渲染到单选文案区域。
|
||||||
|
|
||||||
|
## 修改
|
||||||
|
|
||||||
|
- `HistoryContractSelector.vue` 将单选绑定值从整行对象调整为 `selectedContractKey`。
|
||||||
|
- 新增 `contractRadioValue(row, index)` 生成稳定单选值,优先使用历史贷款合同号。
|
||||||
|
- 保留 `selectedContract` 单独保存选中行对象,提交时仍向父组件返回完整合同记录。
|
||||||
|
- 隐藏单选组件内部 label 文案,选择列只展示单选圆点,不展示对象文本。
|
||||||
|
- `business-type-history-rate.test.js` 增加断言,禁止再出现 `:label="scope.row"`。
|
||||||
|
|
||||||
|
## 验证
|
||||||
|
|
||||||
|
- 已执行并通过:
|
||||||
|
- `zsh -lic 'nvm use 14.21.3 >/dev/null && npm --prefix ruoyi-ui run test:business-type-history-rate'`
|
||||||
|
- 已启动后端和前端后使用 in-app browser 真实页面验证:
|
||||||
|
- 打开 `http://localhost:8080/index`。
|
||||||
|
- 新增个人客户,选择业务种类 `存量转贷`。
|
||||||
|
- 历史贷款合同选择弹窗正常展示客户内码、历史贷款合同号、历史贷款利率等字段。
|
||||||
|
- 选择列文本为空,不再出现 `{ "cus...` 或行对象 JSON 文本。
|
||||||
|
- 验证结果:`hasObjectText=false`。
|
||||||
|
- 验证结束后已关闭测试弹窗。
|
||||||
|
- 验证结束后已停止本次启动的前端和后端进程,并确认 `8080`、`63310` 端口无监听。
|
||||||
@@ -4,7 +4,14 @@
|
|||||||
<el-table :data="contracts" v-loading="loading" @row-click="handleRowClick">
|
<el-table :data="contracts" v-loading="loading" @row-click="handleRowClick">
|
||||||
<el-table-column label="选择" align="center" width="70">
|
<el-table-column label="选择" align="center" width="70">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-radio v-model="selectedContract" :label="scope.row" type="radio"> </el-radio>
|
<el-radio
|
||||||
|
class="history-contract-radio"
|
||||||
|
v-model="selectedContractKey"
|
||||||
|
:label="contractRadioValue(scope.row, scope.$index)"
|
||||||
|
@change="handleRadioChange(scope.row)"
|
||||||
|
>
|
||||||
|
<span class="history-contract-radio-text">选择</span>
|
||||||
|
</el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="客户内码" prop="cust_isn" align="center" :show-overflow-tooltip="true"/>
|
<el-table-column label="客户内码" prop="cust_isn" align="center" :show-overflow-tooltip="true"/>
|
||||||
@@ -41,7 +48,8 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
selectedContract: null
|
selectedContract: null,
|
||||||
|
selectedContractKey: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -55,7 +63,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleRowClick(row) {
|
contractRadioValue(row, index) {
|
||||||
|
return row.loan_contract_history || `${row.cust_isn || ''}-${index}`
|
||||||
|
},
|
||||||
|
handleRowClick(row, column, event) {
|
||||||
|
this.selectedContract = row
|
||||||
|
this.selectedContractKey = this.contractRadioValue(row, this.contracts.indexOf(row))
|
||||||
|
},
|
||||||
|
handleRadioChange(row) {
|
||||||
this.selectedContract = row
|
this.selectedContract = row
|
||||||
},
|
},
|
||||||
confirmSelect() {
|
confirmSelect() {
|
||||||
@@ -72,7 +87,14 @@ export default {
|
|||||||
},
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.selectedContract = null
|
this.selectedContract = null
|
||||||
|
this.selectedContractKey = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.history-contract-radio ::v-deep .el-radio__label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user