feat(payment): 售后详细弹窗申请表单分行展示(原因/申请资料/申请说明)
This commit is contained in:
@@ -28,8 +28,8 @@
|
|||||||
})();
|
})();
|
||||||
var NONCE = (window.aksrtData && window.aksrtData.restNonce) || '';
|
var NONCE = (window.aksrtData && window.aksrtData.restNonce) || '';
|
||||||
var MAX_IMAGES = 3;
|
var MAX_IMAGES = 3;
|
||||||
// 不可再申请售后(工单未结束 / 已完结 / 超过时效)时的固定提示。
|
// 不可再申请售后(工单流转中 / 已完结 / 超过时效)时的固定提示。
|
||||||
var REAPPLY_BLOCKED_TEXT = '该无法再次申请售后,该订单已售后,暂不支持再次申请售后。';
|
var REAPPLY_BLOCKED_TEXT = '该订单当前状态暂不支持再次申请售后。';
|
||||||
|
|
||||||
var STATUS_LABELS = {
|
var STATUS_LABELS = {
|
||||||
pending: '待审核',
|
pending: '待审核',
|
||||||
@@ -190,7 +190,16 @@
|
|||||||
html += detailRow('完成时间', String(latest.completed_at || ''));
|
html += detailRow('完成时间', String(latest.completed_at || ''));
|
||||||
html += '</div>';
|
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>' +
|
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>';
|
'<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) {
|
function composeReason(shell) {
|
||||||
var parts = [];
|
var parts = [];
|
||||||
var active = shell.querySelector('[data-aksrt-after-sale-reason].active');
|
var active = shell.querySelector('[data-aksrt-after-sale-reason].active');
|
||||||
@@ -413,6 +440,9 @@
|
|||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
reason: composeReason(shell),
|
reason: composeReason(shell),
|
||||||
|
reason_label: selectedReasonLabel(shell),
|
||||||
|
materials: collectMaterials(shell),
|
||||||
|
description: reasonText,
|
||||||
images: collectImages(shell),
|
images: collectImages(shell),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user