feat(bx): add apply-attachment upload UI on reimburse apply dialog

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-09-05 17:10:47 +08:00
1 parent 112ad31428
commit 24aca104ad
1 file changed
+24 -1
@@ -551,6 +551,17 @@
</div>
</div>
<div class="form-section">
<h4>申请附件(可选)</h4>
<BxAttachmentUpload
ref="applyAttachmentRef"
v-model="applyAttachments"
biz-type="reimburse_apply"
:biz-id="editingId || 0"
hint="补充行程单、说明截图、合同等;与发票夹无关。支持图片、视频、PDF、Office、压缩包等。"
/>
</div>
<el-form label-position="top" class="bx-dialog-form">
<el-form-item label="备注说明">
<el-input v-model="addForm.remark" type="textarea" :rows="4" placeholder="请输入报销说明" />
@@ -859,6 +870,7 @@ import BxApprovalFlowTabs from '@/components/bx/base/BxApprovalFlowTabs.vue'
import BxViewKvGrid from '@/components/bx/base/BxViewKvGrid.vue'
import BxViewKvTable from '@/components/bx/base/BxViewKvTable.vue'
import BxAttachmentReadonly from '@/components/bx/base/BxAttachmentReadonly.vue'
import BxAttachmentUpload from '@/components/bx/base/BxAttachmentUpload.vue'
import BxInvoiceSelectDialog from '@/components/bx/base/BxInvoiceSelectDialog.vue'
import type { ViewField } from '@/components/business/system-view-dialog/types'
import { bxViewKv, bxViewKvLong, bxViewKvMoney } from '@/utils/bx/view-kv'
@@ -1120,6 +1132,8 @@ type SelectedInvoicePick = {
}
const selectedInvoicePicks = ref<SelectedInvoicePick[]>([])
const applyAttachmentRef = ref<InstanceType<typeof BxAttachmentUpload> | null>(null)
const applyAttachments = ref<BxAttachmentItem[]>([])
const invoiceSelectVisible = ref(false)
const walletBalance = ref(0)
const editingId = ref<number | null>(null)
@@ -1325,6 +1339,7 @@ async function openAddDialog() {
addForm.remark = ''
addForm.details = [{ expenseItemId: '', amount: '', remark: '', occurDate: '' }]
selectedInvoicePicks.value = []
applyAttachments.value = []
editingId.value = null
titleAutoLinked.value = true
dialogs.add = true
@@ -1422,7 +1437,14 @@ async function openEditDialog(row: any) {
await Promise.all([
loadApplicantOptions(),
refreshWalletBalance(),
loadSelectedPicksFromInvoices(invoices)
loadSelectedPicksFromInvoices(invoices),
loadBxAttachments('reimburse_apply', row.id)
.then((files) => {
applyAttachments.value = files
})
.catch(() => {
applyAttachments.value = []
})
])
} catch (e: any) {
ElMessage.error(e.message || '加载失败')
@@ -1671,6 +1693,7 @@ function resetAddForm() {
addForm.remark = ''
addForm.details = [{ expenseItemId: '', amount: '', remark: '', occurDate: '' }]
selectedInvoicePicks.value = []
applyAttachments.value = []
editingId.value = null
}