| | |
| | | [InsuranceDetailStatusEnum.Effecting]: '已生效', |
| | | [InsuranceDetailStatusEnum.OutTimeEffect]: '已过期', |
| | | }; |
| | | |
| | | export const DefaultTaiPingAccountInfo = { |
| | | incomeCompanyName: '太平财产保险有限公司抚州中心支公司', |
| | | incomeBankAccount: '太平财产保险有限公司抚州中心支公司', |
| | | incomeBankCardNumber: '1511200129200156069', |
| | | incomeBankName: '中国工商银行股份有限公司抚州赣东支行', |
| | | }; |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 获取投保订单详情 POST /api/InsuranceOrder/GetInsuranceDetail */ |
| | | export async function getInsuranceDetail( |
| | | body: API.GetInsurancePageInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetInsurancePageOutput>('/api/InsuranceOrder/GetInsuranceDetail', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 获取投保人员审核记录 GET /api/InsuranceOrder/GetInsuranceOrderAuditRecord/${param1} */ |
| | | export async function getInsuranceOrderAuditRecordId( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 奖励金-企业自身出账-审批 POST /api/ParkBountyApply/AuditParkBountyApplyTradeBySelf */ |
| | | export async function auditParkBountyApplyTradeBySelf( |
| | | body: API.AuditParkBountyTradeBySelfInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/AuditParkBountyApplyTradeBySelf', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 奖励金-出账-财务审批 POST /api/ParkBountyApply/FinanceAuditParkBountyApplyTrade */ |
| | | export async function financeAuditParkBountyApplyTrade( |
| | | body: API.AuditParkBountyTradeInput, |
| | |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 奖励金-线下投保 企业自身提出出账申请 POST /api/ParkBountyApply/ParkBountyApplyTradeBySelf */ |
| | | export async function parkBountyApplyTradeBySelf( |
| | | body: API.CreateParkBountyTradeInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/ParkBountyApplyTradeBySelf', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | |
| | | values?: Record<string, any>; |
| | | } |
| | | |
| | | interface AuditParkBountyTradeBySelfInput { |
| | | /** 出账记录Id */ |
| | | id?: string; |
| | | selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | /** 审核备注 */ |
| | | selfAuditRemark?: string; |
| | | /** 审核凭证 */ |
| | | selfAuditFileUrl?: string; |
| | | } |
| | | |
| | | interface AuditParkBountyTradeInput { |
| | | /** 出账记录Id */ |
| | | id?: string; |
| | |
| | | } |
| | | |
| | | interface CreateParkBountyTradeInput { |
| | | enterpriseId?: string; |
| | | /** 最近出账金额 */ |
| | | tradeAmount?: number; |
| | | /** 出账凭证 */ |
| | |
| | | /** 消费类型 */ |
| | | payRemark?: string; |
| | | access?: ParkBountyTradeAccessEnum; |
| | | /** 进账单位 */ |
| | | incomeCompanyName?: string; |
| | | /** 保单号 */ |
| | | insureBillNo?: string; |
| | | /** 收款单位名称 */ |
| | | incomeBankAccount?: string; |
| | | /** 收款单位账号 */ |
| | | incomeBankCardNumber?: string; |
| | | /** 开户行 */ |
| | | incomeBankName?: string; |
| | | enterpriseId?: string; |
| | | selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | } |
| | | |
| | | interface CreateTempTokenInput { |
| | |
| | | payStatus?: InsurancePolicyListPayStatusEnum; |
| | | /** 任意分批支付完成 */ |
| | | anyPayComplete?: boolean; |
| | | /** 奖励金余额 */ |
| | | remianAmount?: number; |
| | | } |
| | | |
| | | interface GetInsurancePageOutputPageOutput { |
| | |
| | | transferTimeBegin?: string; |
| | | /** 出账结束日期 */ |
| | | transferTimeEnd?: string; |
| | | /** 申请起始日期 */ |
| | | creationTimeBegin?: string; |
| | | /** 申请结束日期 */ |
| | | creationTimeEnd?: string; |
| | | financeType?: FinanceTypeEnum; |
| | | enterpriseId?: string; |
| | | auditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutput { |
| | |
| | | /** 奖励金余额 */ |
| | | remianAmount?: number; |
| | | financeType?: FinanceTypeEnum; |
| | | /** 审核时间 */ |
| | | financeAuditTime?: string; |
| | | auditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | /** 审核备注 */ |
| | | auditRemark?: string; |
| | |
| | | auditTime?: string; |
| | | /** 审核凭证 */ |
| | | payAuditFileUrl?: string; |
| | | /** 进账单位 */ |
| | | incomeCompanyName?: string; |
| | | /** 保单号 */ |
| | | insureBillNo?: string; |
| | | /** 收款单位名称 */ |
| | | incomeBankAccount?: string; |
| | | /** 收款单位账号 */ |
| | | incomeBankCardNumber?: string; |
| | | /** 开户行 */ |
| | | incomeBankName?: string; |
| | | selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | /** 企业自身出账审核备注 */ |
| | | selfAuditRemark?: string; |
| | | /** 企业自身出账审核时间 */ |
| | | selfAuditTime?: string; |
| | | /** 企业自身审核凭证 */ |
| | | selfAuditFileUrl?: string; |
| | | creationTime?: string; |
| | | bountyAmount?: number; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutputPageOutput { |
| | |
| | | transferTimeBegin?: string; |
| | | /** 出账结束日期 */ |
| | | transferTimeEnd?: string; |
| | | /** 申请起始日期 */ |
| | | creationTimeBegin?: string; |
| | | /** 申请结束日期 */ |
| | | creationTimeEnd?: string; |
| | | financeType?: FinanceTypeEnum; |
| | | } |
| | | |
| | | interface GetParkBountyTradeOutput { |
| | |
| | | <UploadStampFileDialog v-bind="dialogStampFileProps" /> |
| | | <InsureInstructionsDialog v-bind="dialogInstructionsProps" /> |
| | | <InsureLineModeSelectDialog v-bind="dialogLineModeSelectProps" /> |
| | | <DisbursementDialog v-bind="dialogDisbursementProps" /> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | |
| | | useDialog, |
| | | } from '@bole-core/components'; |
| | | import * as insuranceOrderServices from '@/services/api/InsuranceOrder'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { Message, OrderInputType, downloadFileByUrl } from '@bole-core/core'; |
| | | import { columns, InsureLineMode } from './constants'; |
| | | import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue'; |
| | |
| | | import _ from 'lodash'; |
| | | import InsureInstructionsDialog from './components/InsureInstructionsDialog.vue'; |
| | | import InsureLineModeSelectDialog from './components/InsureLineModeSelectDialog.vue'; |
| | | import DisbursementDialog from './components/DisbursementDialog.vue'; |
| | | import { useInsureProductSchemeAllList, useUserInsureProductSetting } from '@/hooks'; |
| | | // import { Recorder } from '@/utils/record'; |
| | | |
| | |
| | | extraProps: { |
| | | hide: (row: API.GetInsurancePageOutput) => |
| | | row.auditStatus != InsurancePolicyAuditStatusEnum.WaitAdd, |
| | | }, |
| | | }, |
| | | { |
| | | data: { |
| | | enCode: 'applyTradeBySelfBtn', |
| | | name: '出账申请', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => handleParkBountyApplyTradeBySelf(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetInsurancePageOutput) => row.productOnline, |
| | | }, |
| | | }, |
| | | ]).filter(Boolean); |
| | |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | function handleParkBountyApplyTradeBySelf(row: API.GetInsurancePageOutput) { |
| | | handleDisbursementAdd({ |
| | | remianAmount: row.remianAmount, |
| | | }); |
| | | } |
| | | |
| | | const { |
| | | dialogProps: dialogDisbursementProps, |
| | | handleAdd: handleDisbursementAdd, |
| | | editForm: editDisbursementForm, |
| | | } = useFormDialog({ |
| | | onConfirm: parkBountyApplyTradeBySelf, |
| | | defaultFormParams: { |
| | | payRemark: '', |
| | | tradeAmount: 0, |
| | | remianAmount: 0, |
| | | payFileUrl: [] as UploadUserFile[], |
| | | |
| | | incomeCompanyName: '', |
| | | insureBillNo: '', |
| | | incomeBankAccount: '', |
| | | incomeBankCardNumber: '', |
| | | incomeBankName: '', |
| | | }, |
| | | }); |
| | | |
| | | async function parkBountyApplyTradeBySelf() { |
| | | try { |
| | | let params: API.CreateParkBountyTradeInput = { |
| | | tradeAmount: editDisbursementForm.tradeAmount, |
| | | payFileUrl: editDisbursementForm.payFileUrl.map((item) => item.url).join('|'), |
| | | payRemark: editDisbursementForm.payRemark, |
| | | incomeCompanyName: editDisbursementForm.incomeCompanyName, |
| | | insureBillNo: editDisbursementForm.insureBillNo, |
| | | incomeBankAccount: editDisbursementForm.incomeBankAccount, |
| | | incomeBankCardNumber: editDisbursementForm.incomeBankCardNumber, |
| | | incomeBankName: editDisbursementForm.incomeBankName, |
| | | }; |
| | | let res = await parkBountyApplyServices.parkBountyApplyTradeBySelf(params); |
| | | if (res) { |
| | | Message.successMessage('操作成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| New file |
| | |
| | | <template> |
| | | <ProDialog |
| | | title="消费" |
| | | v-model="innerVisible" |
| | | destroy-on-close |
| | | draggable |
| | | bodyNoPaddingBottom |
| | | @close="onDialogClose" |
| | | width="600px" |
| | | > |
| | | <ProForm :model="innerForm" ref="dialogForm" label-width="120px"> |
| | | <ProFormItemV2 |
| | | label="输入出账金额:" |
| | | prop="tradeAmount" |
| | | :check-rules="[{ message: '请输入出账金额', type: 'number' }]" |
| | | > |
| | | <ProFormInputNumber |
| | | :max="innerForm.remianAmount" |
| | | v-model.trim="innerForm.tradeAmount" |
| | | :controls="false" |
| | | :min="0" |
| | | :precision="2" |
| | | unit="元" |
| | | /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="消费类型:" |
| | | prop="payRemark" |
| | | :check-rules="[{ message: '请选择消费类型' }]" |
| | | > |
| | | <ProFormSelect |
| | | placeholder="请选择消费类型" |
| | | :value-enum="[ |
| | | { |
| | | value: '保险产品购买', |
| | | label: '保险产品购买', |
| | | }, |
| | | ]" |
| | | clearable |
| | | v-model="innerForm.payRemark" |
| | | ></ProFormSelect> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="进账单位:" |
| | | prop="incomeCompanyName" |
| | | :check-rules="[{ message: '请输入进账单位' }]" |
| | | > |
| | | <ProFormText v-model.trim="innerForm.incomeCompanyName" placeholder="请输入进账单位"> |
| | | </ProFormText> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="保单号:" |
| | | prop="insureBillNo" |
| | | :check-rules="[{ message: '请输入保单号' }]" |
| | | > |
| | | <ProFormText v-model.trim="innerForm.insureBillNo" placeholder="请输入保单号"> |
| | | </ProFormText> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="收款单位名称:" |
| | | prop="incomeBankAccount" |
| | | :check-rules="[{ message: '请输入收款单位名称' }]" |
| | | > |
| | | <ProFormText v-model.trim="innerForm.incomeBankAccount" placeholder="请输入收款单位名称"> |
| | | </ProFormText> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="收款单位账号:" |
| | | prop="incomeBankCardNumber" |
| | | :check-rules="[{ message: '请输入收款单位账号', type: 'bankCard' }]" |
| | | > |
| | | <ProFormText v-model.trim="innerForm.incomeBankCardNumber" placeholder="请输入收款单位账号"> |
| | | </ProFormText> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="开户行:" |
| | | prop="incomeBankName" |
| | | :check-rules="[{ message: '请输入开户行' }]" |
| | | > |
| | | <ProFormText v-model.trim="innerForm.incomeBankName" placeholder="请输入开户行"> |
| | | </ProFormText> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="上传出账凭证:" |
| | | prop="payFileUrl" |
| | | :check-rules="[{ message: '请上传出账凭证', type: 'upload' }]" |
| | | > |
| | | <ProFormUpload |
| | | v-model:file-url="innerForm.payFileUrl" |
| | | :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 { |
| | | ProDialog, |
| | | UploadUserFile, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormSelect, |
| | | ProFormInputNumber, |
| | | ProFormUpload, |
| | | ProFormText, |
| | | } from '@bole-core/components'; |
| | | import { FormInstance } from 'element-plus'; |
| | | |
| | | defineOptions({ |
| | | name: 'DisbursementDialog', |
| | | }); |
| | | |
| | | type Props = { |
| | | modelValue: boolean; |
| | | form?: { |
| | | tradeAmount: number; |
| | | remianAmount: number; |
| | | payRemark: string; |
| | | payFileUrl: UploadUserFile[]; |
| | | |
| | | incomeCompanyName: string; |
| | | insureBillNo: string; |
| | | incomeBankAccount: string; |
| | | incomeBankCardNumber: string; |
| | | incomeBankName: string; |
| | | }; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | modelValue: false, |
| | | }); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'update:modelValue', value: boolean): void; |
| | | (e: 'update:form', value: Props['form']): void; |
| | | (e: 'onConfirm'): void; |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const innerVisible = computed({ |
| | | get() { |
| | | return props.modelValue; |
| | | }, |
| | | set(val) { |
| | | emit('update:modelValue', val); |
| | | }, |
| | | }); |
| | | |
| | | const innerForm = computed({ |
| | | get() { |
| | | return props.form; |
| | | }, |
| | | set(val) { |
| | | emit('update:form', val); |
| | | }, |
| | | }); |
| | | |
| | | 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> |
| | |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | build: { |
| | | outDir: `dist/${dayjs().format( |
| | | 'YYYY-MM-DD' |
| | | )}/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`, |
| | | outDir: |
| | | mode === 'staging' |
| | | ? `dist/dist-jybfront-${VITE_AppType}-${mode}` |
| | | : `dist/${dayjs().format( |
| | | 'YYYY-MM-DD' |
| | | )}/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`, |
| | | }, |
| | | optimizeDeps: { |
| | | include: [ |