refactor(web): update composables, utils and scripts

- useRequests.js: update requests composable
- utils/requestViewModel.js: update request view model utility
- scripts/TravelRequestDetailView.js: update travel detail view script
This commit is contained in:
caoxiaozhu
2026-05-13 06:55:23 +00:00
parent 999872a060
commit 755f935c9d
3 changed files with 39 additions and 0 deletions

View File

@@ -172,6 +172,15 @@ function resolveTypeMeta(request) {
}
}
function normalizeRoleLabels(value) {
if (Array.isArray(value)) {
return value.map((item) => String(item || '').trim()).filter(Boolean)
}
const text = String(value || '').trim()
return text ? [text] : []
}
export function normalizeRequestForUi(request) {
if (!request) {
return null
@@ -190,6 +199,11 @@ export function normalizeRequestForUi(request) {
String(request.secondaryStatusValue || request.travel || '').trim()
|| (detailVariant === 'travel' ? '待安排行程' : '待补充票据')
const secondaryStatusTone = String(request.secondaryStatusTone || request.travelTone || '').trim() || 'neutral'
const roleLabels = normalizeRoleLabels(request.roleLabels || request.role_labels)
const profileIdentity =
String(request.profileIdentity || request.employeeIdentity || request.identity || '').trim()
|| roleLabels.join(' / ')
|| '员工'
return {
...request,
@@ -230,6 +244,13 @@ export function normalizeRequestForUi(request) {
note: String(request.note || '').trim(),
profileName: String(request.person || request.applicant || request.employeeName || '').trim() || '当前申请人',
profileDepartment: String(request.dept || request.department || request.departmentName || '').trim() || '所属部门',
profileIdentity,
profilePosition:
String(request.profilePosition || request.employeePosition || request.employee_position || request.position || '').trim()
|| '待补充',
profileGrade: String(request.profileGrade || request.employeeGrade || request.employee_grade || request.grade || '').trim() || '待补充',
profileManager: String(request.profileManager || request.managerName || request.manager_name || request.manager || '').trim() || '待补充',
roleLabels,
profileAvatar:
String(request.person || request.applicant || request.employeeName || '申').trim().slice(0, 1) || '申'
}