|
|
@@ -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
|
|
|
}
|
|
|
|