feat(payment): 售后详细弹窗申请表单分行展示(原因/申请资料/申请说明)
This commit is contained in:
@@ -28,8 +28,8 @@
|
||||
})();
|
||||
var NONCE = (window.aksrtData && window.aksrtData.restNonce) || '';
|
||||
var MAX_IMAGES = 3;
|
||||
// 不可再申请售后(工单未结束 / 已完结 / 超过时效)时的固定提示。
|
||||
var REAPPLY_BLOCKED_TEXT = '该无法再次申请售后,该订单已售后,暂不支持再次申请售后。';
|
||||
// 不可再申请售后(工单流转中 / 已完结 / 超过时效)时的固定提示。
|
||||
var REAPPLY_BLOCKED_TEXT = '该订单当前状态暂不支持再次申请售后。';
|
||||
|
||||
var STATUS_LABELS = {
|
||||
pending: '待审核',
|
||||
@@ -190,7 +190,16 @@
|
||||
html += detailRow('完成时间', String(latest.completed_at || ''));
|
||||
html += '</div>';
|
||||
|
||||
if (latest.reason) {
|
||||
// 申请表单分行展示:预置原因 / 申请资料 / 申请说明各自独立成行,
|
||||
// 与上方「申请时间」等明细行同格式;老数据无 apply_form 时兜底展示融合串。
|
||||
var applyForm = latest.apply_form && typeof latest.apply_form === 'object' ? latest.apply_form : null;
|
||||
if (applyForm) {
|
||||
html += detailRow('原因', String(applyForm.reason_label || ''));
|
||||
(Array.isArray(applyForm.materials) ? applyForm.materials : []).forEach(function (material) {
|
||||
html += detailRow(String((material && material.label) || ''), String((material && material.value) || ''));
|
||||
});
|
||||
html += detailRow('申请说明', String(applyForm.description || ''));
|
||||
} else if (latest.reason) {
|
||||
html += '<div class="mb10"><div class="muted-2-color em09 mb6">申请原因</div>' +
|
||||
'<div class="em09 aksrt-after-sale-reason-text">' + escapeHtml(latest.reason).replace(/\r\n|\r|\n/g, '<br>') + '</div></div>';
|
||||
}
|
||||
@@ -365,6 +374,24 @@
|
||||
});
|
||||
}
|
||||
|
||||
function selectedReasonLabel(shell) {
|
||||
var active = shell.querySelector('[data-aksrt-after-sale-reason].active');
|
||||
return active ? String(active.getAttribute('data-aksrt-after-sale-reason') || '') : '';
|
||||
}
|
||||
|
||||
function collectMaterials(shell) {
|
||||
var materials = [];
|
||||
Array.prototype.forEach.call(shell.querySelectorAll('[data-aksrt-after-sale-material]'), function (input) {
|
||||
var value = String(input.value || '').trim();
|
||||
if (value === '') return;
|
||||
materials.push({
|
||||
label: String(input.getAttribute('data-aksrt-after-sale-material') || ''),
|
||||
value: value,
|
||||
});
|
||||
});
|
||||
return materials;
|
||||
}
|
||||
|
||||
function composeReason(shell) {
|
||||
var parts = [];
|
||||
var active = shell.querySelector('[data-aksrt-after-sale-reason].active');
|
||||
@@ -413,6 +440,9 @@
|
||||
},
|
||||
body: JSON.stringify({
|
||||
reason: composeReason(shell),
|
||||
reason_label: selectedReasonLabel(shell),
|
||||
materials: collectMaterials(shell),
|
||||
description: reasonText,
|
||||
images: collectImages(shell),
|
||||
}),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user