Refine travel reimbursement steward flow

Align planner, runtime rules, and policy assets so travel guidance
matches the updated reimbursement workflow.
This commit is contained in:
caoxiaozhu
2026-06-15 22:55:18 +08:00
parent 792741709a
commit 9f7b8b46a3
85 changed files with 9496 additions and 2555 deletions

View File

@@ -1,4 +1,4 @@
.approval-page {
.approval-page {
width: 100%;
height: 100%;
min-height: 0;
@@ -861,6 +861,9 @@
}
.detail-expense-table {
--expense-editor-control-height: 34px;
--expense-editor-control-line-height: 16px;
--expense-editor-control-padding-y: calc((var(--expense-editor-control-height) - var(--expense-editor-control-line-height) - 2px) / 2);
min-width: 0;
overflow-x: auto;
}
@@ -940,10 +943,10 @@
.detail-expense-table .col-time { width: 10%; }
.detail-expense-table .col-filled-at { width: 13%; }
.detail-expense-table .col-type { width: 11%; }
.detail-expense-table .col-type { width: 14%; }
.detail-expense-table .col-desc { width: 15%; }
.detail-expense-table .col-amount { width: 9%; }
.detail-expense-table .col-attachment { width: 18%; }
.detail-expense-table .col-attachment { width: 15%; }
.detail-expense-table .col-risk-note { width: 15%; }
.detail-expense-table .col-action { width: 9%; }
@@ -1000,61 +1003,162 @@
grid-template-columns: minmax(0, 1fr);
}
.editor-input,
.editor-select,
.editor-textarea {
.editor-control,
.editor-select {
width: 100%;
min-height: 34px;
padding: 0 10px;
border: 1px solid #d7e0ea;
border-radius: 4px;
background: #fff;
min-width: 0;
--el-component-size: var(--expense-editor-control-height) !important;
--el-component-size-small: var(--expense-editor-control-height) !important;
--el-input-height: var(--expense-editor-control-height) !important;
box-sizing: border-box !important;
}
.editor-select {
padding: 0;
border: 0;
background: transparent;
}
.editor-date-picker.el-date-editor {
--el-date-editor-width: 100%;
}
.editor-date-picker.editor-control :deep(.el-input__wrapper) {
gap: 4px;
padding: 0 7px !important;
}
.editor-date-picker.editor-control :deep(.el-input__prefix) {
flex: 0 0 14px;
width: 14px;
min-width: 14px;
margin: 0;
color: #94a3b8;
font-size: 13px;
}
.editor-date-picker.editor-control :deep(.el-input__prefix-inner) {
width: 14px;
font-size: 13px;
}
.editor-date-picker.editor-control :deep(.el-input__suffix) {
display: none !important;
}
.editor-control :deep(.el-input__wrapper),
.editor-control :deep(.el-select__wrapper),
.editor-select :deep(.el-select__wrapper),
.editor-date-picker :deep(.el-input__wrapper) {
box-sizing: border-box !important;
padding: 0 10px !important;
border-radius: 4px !important;
background: #fff !important;
box-shadow: 0 0 0 1px #d7e0ea inset !important;
display: flex !important;
align-items: center !important;
margin: 0 !important;
}
.editor-control:focus-within :deep(.el-input__wrapper),
.editor-control:focus-within :deep(.el-select__wrapper),
.editor-select:focus-within :deep(.el-select__wrapper),
.editor-date-picker:focus-within :deep(.el-input__wrapper) {
box-shadow: 0 0 0 1px var(--theme-primary) inset, 0 0 0 3px var(--theme-focus-ring);
}
.editor-control :deep(.el-input__inner),
.editor-select :deep(.el-select__selected-item),
.editor-select :deep(.el-select__placeholder),
.editor-date-picker :deep(.el-input__inner) {
height: var(--expense-editor-control-line-height) !important;
color: #0f172a;
font-size: 12px;
line-height: var(--expense-editor-control-line-height) !important;
}
.editor-textarea {
min-height: 68px;
padding: 8px 10px;
resize: vertical;
line-height: 1.45;
}
.risk-note-editor-textarea {
min-height: 34px;
max-height: 78px;
overflow-y: auto;
resize: none;
}
.currency-editor {
display: grid;
grid-template-columns: 34px minmax(0, 1fr);
.editor-control :deep(.el-input__prefix),
.editor-control :deep(.el-input__suffix),
.editor-date-picker :deep(.el-input__prefix),
.editor-date-picker :deep(.el-input__suffix) {
display: inline-flex;
align-items: center;
gap: 8px;
}
.currency-editor span {
min-height: 34px;
display: grid;
place-items: center;
border: 1px solid #d7e0ea;
border-radius: 4px;
background: #f8fafc;
.editor-select :deep(.el-select__wrapper) {
min-height: var(--expense-editor-control-height);
height: var(--expense-editor-control-height);
}
.editor-amount-input :deep(.el-input__prefix) {
min-height: var(--expense-editor-control-height);
height: var(--expense-editor-control-height);
color: #334155;
display: inline-flex;
align-items: center;
font-size: 12px;
font-weight: 800;
}
.editor-input:focus,
.editor-select:focus,
.editor-textarea:focus {
border-color: var(--theme-primary);
box-shadow: 0 0 0 3px var(--theme-focus-ring);
outline: none;
.editor-amount-input :deep(.el-input__prefix-inner) {
display: inline-flex;
align-items: center;
height: var(--expense-editor-control-line-height);
line-height: var(--expense-editor-control-line-height);
}
.cell-editor span {
.editor-amount-input.editor-control {
display: flex;
align-items: center;
}
.risk-note-editor-input.editor-control {
min-height: var(--expense-editor-control-height);
height: var(--expense-editor-control-height);
}
.risk-note-editor-input.el-textarea {
min-height: var(--expense-editor-control-height);
height: var(--expense-editor-control-height);
}
.risk-note-editor-input :deep(.el-textarea__inner) {
display: block !important;
box-sizing: border-box !important;
min-height: var(--expense-editor-control-height) !important;
height: var(--expense-editor-control-height);
line-height: var(--expense-editor-control-line-height) !important;
max-height: calc(var(--expense-editor-control-height) + var(--expense-editor-control-line-height) * 2) !important;
padding: var(--expense-editor-control-padding-y) 10px !important;
border-radius: 4px !important;
color: #0f172a !important;
font-size: 12px !important;
resize: none !important;
overflow-y: hidden !important;
box-shadow: 0 0 0 1px #d7e0ea inset !important;
vertical-align: middle !important;
margin: 0 !important;
}
.risk-note-editor-input :deep(.el-textarea__inner:focus) {
box-shadow: 0 0 0 1px var(--theme-primary) inset, 0 0 0 3px var(--theme-focus-ring);
}
/* 隐藏金额输入框的原生微调箭头 */
.editor-amount-input :deep(input::-webkit-outer-spin-button),
.editor-amount-input :deep(input::-webkit-inner-spin-button) {
-webkit-appearance: none;
margin: 0;
}
.editor-amount-input :deep(input[type=number]) {
-moz-appearance: textfield;
}
.cell-editor > span {
display: block;
margin-top: 4px;
color: #64748b;
font-size: 11px;
line-height: 1.45;
@@ -1432,6 +1536,16 @@
flex-wrap: wrap;
gap: 6px;
justify-content: center;
align-items: center;
}
.detail-expense-table .row-action-group .inline-action {
min-height: var(--expense-editor-control-height);
height: var(--expense-editor-control-height);
display: inline-flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.risk-inline-tag {