feat(bx): add apply-attachment upload UI on reimburse apply dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
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
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user