| New file |
| | |
| | | <template> |
| | | <ProDialog title="文件列表" v-model="visible" @close="onDialogClose" destroy-on-close draggable> |
| | | <ProForm :model="form" ref="dialogForm" label-width="110px" is-read class="audit-file-form"> |
| | | <ProFormItemV2 |
| | | label="平台审批凭证:" |
| | | prop="selfAuditFileUrl" |
| | | v-if="form?.selfAuditFileUrl?.length > 0" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.selfAuditFileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="出账审批凭证:" |
| | | prop="payAuditFileUrl" |
| | | v-if="form?.payAuditFileUrl?.length > 0" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.payAuditFileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="财政审批凭证:" |
| | | prop="financeAuditFileUrl" |
| | | v-if="form?.financeAuditFileUrl?.length > 0" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="form.financeAuditFileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="出账凭证:" prop="payFileUrl" v-if="form?.payFileUrl?.length > 0"> |
| | | <ProFormUpload |
| | | v-model:file-url="form.payFileUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="保单文件:" prop="insureBillUrl" v-if="form?.insureBillUrl?.length > 0"> |
| | | <ProFormUpload |
| | | v-model:file-url="form.insureBillUrl" |
| | | :limitFileSize="50" |
| | | accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png" |
| | | ></ProFormUpload> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="emit('onCancel')">取 消</el-button> |
| | | <el-button type="primary" @click="handleConfirm">确 定</el-button> |
| | | </span> |
| | | </template> |
| | | </ProDialog> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FormInstance } from 'element-plus'; |
| | | import { |
| | | ProDialog, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormText, |
| | | UploadUserFile, |
| | | ProFormUpload, |
| | | } from '@bole-core/components'; |
| | | |
| | | defineOptions({ |
| | | name: 'ParkBountyTradeDetailFileDialog', |
| | | }); |
| | | |
| | | // type Props = {}; |
| | | |
| | | // const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const visible = defineModel({ type: Boolean }); |
| | | |
| | | type Form = { |
| | | title?: string; |
| | | payAuditFileUrl: UploadUserFile[]; |
| | | financeAuditFileUrl: UploadUserFile[]; |
| | | selfAuditFileUrl: UploadUserFile[]; |
| | | payFileUrl: UploadUserFile[]; |
| | | insureBillUrl: UploadUserFile[]; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const dialogForm = ref<FormInstance>(); |
| | | |
| | | function onDialogClose() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.resetFields(); |
| | | } |
| | | |
| | | function handleConfirm() { |
| | | if (!dialogForm.value) return; |
| | | dialogForm.value.validate((valid) => { |
| | | if (valid) { |
| | | emit('onConfirm'); |
| | | } else { |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .audit-file-form { |
| | | .el-form-item { |
| | | margin-bottom: 22px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | incomeBankName?: string; |
| | | enterpriseId?: string; |
| | | selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | auditType?: EnumParkBountyTradeDetailAuditType; |
| | | /** 江祐保自主出账关联保单id */ |
| | | insurancePolicyId?: string; |
| | | } |
| | | |
| | | interface CreateTempTokenInput { |
| | |
| | | type EnumAmountUpdateType = 10 | 20; |
| | | |
| | | type EnumParkBountyTradeDetailAuditStatus = 10 | 20 | 30; |
| | | |
| | | type EnumParkBountyTradeDetailAuditType = 10 | 100; |
| | | |
| | | interface ExportInsuranceStaffListInput { |
| | | status?: InsuranceDetailStatusEnum; |
| | |
| | | selfAuditFileUrl?: string; |
| | | creationTime?: string; |
| | | bountyAmount?: number; |
| | | /** 审核凭证 */ |
| | | financeAuditFileUrl?: string; |
| | | /** 江祐保上传的保单文件 */ |
| | | insureBillUrl?: string; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutputPageOutput { |
| | |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <!-- <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.payFileUrl ?? '')" |
| | | preview-btn-text="查看凭证" |
| | | /> |
| | | </template> |
| | | </template> --> |
| | | </ProTableV2> |
| | | <ParkBountyTradeDetailFileDialog v-bind="dialogProps" /> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | |
| | | PreviewBtnV2, |
| | | ProTableV2, |
| | | defineOperationBtns, |
| | | useFormDialog, |
| | | UploadUserFile, |
| | | } from '@bole-core/components'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | import { |
| | | convertApi2FormUrlBySeparator, |
| | | convertApi2FormUrlObjectBySeparator, |
| | | convertApi2FormUrlOnlyOne, |
| | | } from '@/utils'; |
| | | import { FinanceTypeEnumText } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | |
| | | enCode: 'checkBtn', |
| | | name: '查看凭证', |
| | | }, |
| | | emits: { onClick: (role) => openDialog(role) }, |
| | | }, |
| | | ]); |
| | | |
| | |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | function openDialog(row: API.GetParkBountyTradeDetailOutput) { |
| | | handleAdd({ |
| | | payAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.payAuditFileUrl), |
| | | financeAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.financeAuditFileUrl), |
| | | selfAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.selfAuditFileUrl), |
| | | payFileUrl: convertApi2FormUrlObjectBySeparator(row.payFileUrl), |
| | | insureBillUrl: convertApi2FormUrlObjectBySeparator(row.insureBillUrl), |
| | | }); |
| | | } |
| | | |
| | | const { dialogProps, handleAdd } = useFormDialog({ |
| | | defaultFormParams: { |
| | | payAuditFileUrl: [] as UploadUserFile[], |
| | | financeAuditFileUrl: [] as UploadUserFile[], |
| | | selfAuditFileUrl: [] as UploadUserFile[], |
| | | payFileUrl: [] as UploadUserFile[], |
| | | insureBillUrl: [] as UploadUserFile[], |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | function handleParkBountyApplyTradeBySelf(row: API.GetInsurancePageOutput) { |
| | | handleDisbursementAdd({ |
| | | remianAmount: row.remianAmount, |
| | | insurancePolicyId: row.id, |
| | | }); |
| | | } |
| | | |
| | |
| | | } = useFormDialog({ |
| | | onConfirm: parkBountyApplyTradeBySelf, |
| | | defaultFormParams: { |
| | | insurancePolicyId: '', |
| | | payRemark: '', |
| | | tradeAmount: 0, |
| | | remianAmount: 0, |
| | |
| | | incomeBankAccount: editDisbursementForm.incomeBankAccount, |
| | | incomeBankCardNumber: editDisbursementForm.incomeBankCardNumber, |
| | | incomeBankName: editDisbursementForm.incomeBankName, |
| | | insurancePolicyId: editDisbursementForm.insurancePolicyId, |
| | | }; |
| | | let res = await parkBountyApplyServices.parkBountyApplyTradeBySelf(params); |
| | | if (res) { |