修改客商变更记录
This commit is contained in:
@@ -655,7 +655,7 @@
|
|||||||
<el-image-viewer v-if="qualificationImagePreviewVisible" :url-list="qualificationImagePreviewUrls" :initial-index="qualificationImagePreviewIndex" @close="qualificationImagePreviewVisible = false" />
|
<el-image-viewer v-if="qualificationImagePreviewVisible" :url-list="qualificationImagePreviewUrls" :initial-index="qualificationImagePreviewIndex" @close="qualificationImagePreviewVisible = false" />
|
||||||
|
|
||||||
<section-card title="变更记录">
|
<section-card title="变更记录">
|
||||||
<el-table :data="changeRecordPage.records" border>
|
<el-table :data="changeRecordPage.records" border :show-overflow-tooltip="false">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="序号"
|
label="序号"
|
||||||
type="index"
|
type="index"
|
||||||
@@ -1921,7 +1921,83 @@ export default {
|
|||||||
const column = (this.option.column || []).find(item => item.prop === field);
|
const column = (this.option.column || []).find(item => item.prop === field);
|
||||||
return column?.label || field;
|
return column?.label || field;
|
||||||
},
|
},
|
||||||
|
normalizeChangeFieldValue(value) {
|
||||||
|
if (typeof value !== 'string') return value;
|
||||||
|
const text = value.trim();
|
||||||
|
if (!text || (!text.startsWith('[') && !text.startsWith('{') && text !== 'null')) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return JSON.parse(text);
|
||||||
|
} catch (error) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isEmptyChangeValue(value) {
|
||||||
|
const normalized = this.normalizeChangeFieldValue(value);
|
||||||
|
if (normalized === undefined || normalized === null || normalized === '' || normalized === '-1') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (Array.isArray(normalized)) return normalized.length === 0;
|
||||||
|
if (typeof normalized === 'object') return Object.keys(normalized).length === 0;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
formatScoreChangeValue(value) {
|
||||||
|
const scores = Array.isArray(value) ? value : [value];
|
||||||
|
const categoryNames = { basic: '基础得分项', plus: '加分项目', minus: '减分项目' };
|
||||||
|
return scores
|
||||||
|
.filter(item => item && typeof item === 'object')
|
||||||
|
.map((score, index) => {
|
||||||
|
const summary = [
|
||||||
|
score.scoreDate && `评分日期:${score.scoreDate}`,
|
||||||
|
score.selfScore !== undefined && score.selfScore !== ''
|
||||||
|
? `自评得分:${this.formatScoreValue(score.selfScore)}`
|
||||||
|
: '',
|
||||||
|
score.reviewScore !== undefined && score.reviewScore !== ''
|
||||||
|
? `复评得分:${this.formatScoreValue(score.reviewScore)}`
|
||||||
|
: '',
|
||||||
|
score.finalScore !== undefined && score.finalScore !== ''
|
||||||
|
? `最终得分:${this.formatScoreValue(score.finalScore)}`
|
||||||
|
: '',
|
||||||
|
score.creditLevel ? `信用等级:${score.creditLevel}` : '',
|
||||||
|
].filter(Boolean);
|
||||||
|
const scoreDetails = this.normalizeChangeFieldValue(score.details);
|
||||||
|
const details = (Array.isArray(scoreDetails) ? scoreDetails : [])
|
||||||
|
.map(detail => {
|
||||||
|
const category =
|
||||||
|
detail.categoryName ||
|
||||||
|
categoryNames[this.getScoreDetailCategoryCode(detail)] ||
|
||||||
|
'';
|
||||||
|
const itemName = detail.itemName || '评分项目';
|
||||||
|
const option = detail.selectedOption || detail.scoreDescription || '';
|
||||||
|
const points = [
|
||||||
|
detail.selfScore !== undefined && detail.selfScore !== ''
|
||||||
|
? `自评${this.formatScoreValue(detail.selfScore)}分`
|
||||||
|
: '',
|
||||||
|
detail.reviewScore !== undefined && detail.reviewScore !== ''
|
||||||
|
? `复评${this.formatScoreValue(detail.reviewScore)}分`
|
||||||
|
: '',
|
||||||
|
].filter(Boolean);
|
||||||
|
if (
|
||||||
|
!points.length &&
|
||||||
|
detail.score !== undefined &&
|
||||||
|
detail.score !== '' &&
|
||||||
|
detail.score !== -1 &&
|
||||||
|
detail.score !== '-1'
|
||||||
|
) {
|
||||||
|
points.push(`得分${this.formatScoreValue(detail.score)}分`);
|
||||||
|
}
|
||||||
|
const label = `${category ? `${category}-` : ''}${itemName}`;
|
||||||
|
return `${label}${option ? `:${option}` : ''}${points.length ? `(${points.join(',')})` : ''}`;
|
||||||
|
})
|
||||||
|
.filter(Boolean);
|
||||||
|
if (details.length) summary.push(`评分明细:${details.join(';')}`);
|
||||||
|
return summary.length ? summary.join(';') : `第${index + 1}条评分`;
|
||||||
|
})
|
||||||
|
.join(';');
|
||||||
|
},
|
||||||
formatChangeFieldValue(field, value) {
|
formatChangeFieldValue(field, value) {
|
||||||
|
value = this.normalizeChangeFieldValue(value);
|
||||||
if (value === undefined || value === null || value === '' || value === '-1') return '空';
|
if (value === undefined || value === null || value === '' || value === '-1') return '空';
|
||||||
const normalizedField = {
|
const normalizedField = {
|
||||||
准入类型: 'accessType',
|
准入类型: 'accessType',
|
||||||
@@ -1931,6 +2007,9 @@ export default {
|
|||||||
状态: 'status',
|
状态: 'status',
|
||||||
客户类型: 'customerType',
|
客户类型: 'customerType',
|
||||||
}[field] || field;
|
}[field] || field;
|
||||||
|
if (normalizedField === '评分信息' || normalizedField === 'scores') {
|
||||||
|
return this.formatScoreChangeValue(value) || '空';
|
||||||
|
}
|
||||||
const valueMap = {
|
const valueMap = {
|
||||||
accessType: { temporary: '临时', formal: '正式' },
|
accessType: { temporary: '临时', formal: '正式' },
|
||||||
approvalStatus: {
|
approvalStatus: {
|
||||||
@@ -1962,7 +2041,11 @@ export default {
|
|||||||
const afterData = this.parseChangeData(row.afterData);
|
const afterData = this.parseChangeData(row.afterData);
|
||||||
const fields = [...new Set([...Object.keys(beforeData), ...Object.keys(afterData)])];
|
const fields = [...new Set([...Object.keys(beforeData), ...Object.keys(afterData)])];
|
||||||
const details = fields
|
const details = fields
|
||||||
.filter(field => field !== '变更内容')
|
.filter(
|
||||||
|
field =>
|
||||||
|
field !== '变更内容' &&
|
||||||
|
!(this.isEmptyChangeValue(beforeData[field]) && this.isEmptyChangeValue(afterData[field]))
|
||||||
|
)
|
||||||
.map(field => {
|
.map(field => {
|
||||||
const before = this.formatChangeFieldValue(field, beforeData[field]);
|
const before = this.formatChangeFieldValue(field, beforeData[field]);
|
||||||
const after = this.formatChangeFieldValue(field, afterData[field]);
|
const after = this.formatChangeFieldValue(field, afterData[field]);
|
||||||
|
|||||||
Reference in New Issue
Block a user