| | |
| | | "dev": "cross-env vite", |
| | | "dev:rz": "cross-env VITE_AppType=rz vite", |
| | | "dev:jx": "cross-env VITE_AppType=jx vite", |
| | | "dev:tp": "cross-env VITE_AppType=tp vite", |
| | | "dev:other": "cross-env VITE_AppType=other vite", |
| | | "build": "cross-env NODE_OPTIONS=--max_old_space_size=16000 vite build", |
| | | "build:rz": "cross-env NODE_OPTIONS=--max_old_space_size=16000 VITE_AppType=rz vite build --mode rz", |
| | |
| | | "build:staging:yx": "cross-env vite build --mode stagingone", |
| | | "build:staging:other": "cross-env VITE_AppType=other vite build --mode staging", |
| | | "build:staging:jx": "cross-env VITE_AppType=jx vite build --mode staging", |
| | | "build:staging:tp": "cross-env VITE_AppType=tp vite build --mode staging", |
| | | "build:staging:jenkins": "cross-env NODE_OPTIONS=--max_old_space_size=16000 vite build --mode staging", |
| | | "preview": "vite preview", |
| | | "prepare": "husky install", |
| | |
| | | 增员: '增员', |
| | | 减员: '减员', |
| | | }; |
| | | |
| | | export enum InsurancePeriodEnum { |
| | | '30D' = '30D', |
| | | '360D' = '360D', |
| | | '1-29D' = '1-29D', |
| | | } |
| | | |
| | | export const insuranceTypeText = { |
| | | '30D': '月保', |
| | | '360D': '年保', |
| | | [InsurancePeriodEnum['30D']]: '月保', |
| | | [InsurancePeriodEnum['360D']]: '年保', |
| | | [InsurancePeriodEnum['1-29D']]: '短期保', |
| | | }; |
| | | |
| | | export const insuranceTypeTextForFilter = { |
| | | [InsurancePeriodEnum['30D']]: '月保', |
| | | [InsurancePeriodEnum['360D']]: '年保', |
| | | }; |
| | | |
| | | export enum InsurancePolicyAuditStatusEnum { |
| | | /**驳回 */ |
| | | Reject = -10, |
| | | /**待提交 */ |
| | | WaitAdd = 1, |
| | | /**待审核 */ |
| | | WaitAudit = 10, |
| | | /**待审核 强制再审后的再审状态*/ |
| | |
| | | |
| | | export const InsurancePolicyAuditStatusEnumText = { |
| | | [InsurancePolicyAuditStatusEnum.Reject]: '驳回', |
| | | [InsurancePolicyAuditStatusEnum.WaitAdd]: '待提交', |
| | | [InsurancePolicyAuditStatusEnum.WaitAudit]: '待审核', |
| | | [InsurancePolicyAuditStatusEnum.WaitReAudit]: '待审核', |
| | | [InsurancePolicyAuditStatusEnum.WaitFillAudit]: '待审核', |
| | |
| | | function getInsureProductSchemeByCode(code: string) { |
| | | return allInsureProductSchemeList.value.find((x) => x.code === code); |
| | | } |
| | | function getInsureProductSchemeByIdNumber(idNumber: string) { |
| | | return allInsureProductSchemeList.value.find((x) => x.idNumber === idNumber); |
| | | } |
| | | |
| | | return { |
| | | allInsureProductSchemeList, |
| | | refetch, |
| | | getInsureProductSchemeByCode, |
| | | getInsureProductSchemeByIdNumber, |
| | | }; |
| | | } |
| | |
| | | }, |
| | | children: [ |
| | | { |
| | | path: 'home', |
| | | path: '/home', |
| | | name: 'Home', |
| | | hidden: false, |
| | | component: () => import('@/views/Home/Home.vue'), |
| | |
| | | title: '保单管理', |
| | | affix: true, |
| | | // rootMenu: true, |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | | AppType === 'tp' && { |
| | | path: '/InsurancePayManage', |
| | | name: 'InsurancePayManage', |
| | | hidden: false, |
| | | component: () => import('@/views/Home/InsurancePayManage.vue'), |
| | | meta: { |
| | | rank: 1002, |
| | | title: '付款管理', |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | |
| | | icon: 'home', |
| | | }, |
| | | }, |
| | | ], |
| | | ].filter(Boolean), |
| | | }, |
| | | |
| | | { |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 获取投保人员审核记录 GET /api/InsuranceOrder/GetInsuranceOrderAuditRecord/${param1} */ |
| | | export async function getInsuranceOrderAuditRecordId( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | | params: API.APIgetInsuranceOrderAuditRecordIdParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | const { insuranceOrderId: param0, id: param1, ...queryParams } = params; |
| | | return request<API.InsuranceOrderAuditRecordDto[]>( |
| | | `/api/InsuranceOrder/GetInsuranceOrderAuditRecord/${param1}`, |
| | | { |
| | | method: 'GET', |
| | | params: { ...queryParams }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 获取保单详情 GET /api/InsuranceOrder/GetInsuranceOrderDetail */ |
| | | export async function getInsuranceOrderDetail( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 获取付款管理列表 POST /api/InsuranceOrder/GetInsurancePolicyPayList */ |
| | | export async function getInsurancePolicyPayList( |
| | | body: API.GetInsurancePolicyPayListInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetInsurancePolicyPayListItemPageOutput>( |
| | | '/api/InsuranceOrder/GetInsurancePolicyPayList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 获取盖章文件 GET /api/InsuranceOrder/GetInsurancePolicyStampFiles */ |
| | | export async function getInsurancePolicyStampFiles( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 获取补录记录 POST /api/InsuranceOrder/GetOperateRecord */ |
| | | export async function getOperateRecord(body: API.OperateRecordInput, options?: API.RequestConfig) { |
| | | return request<API.OperateRecordDtoPageOutput>('/api/InsuranceOrder/GetOperateRecord', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 投保详情-导入人员 POST /api/InsuranceOrder/ImportInsDetailStaffToList */ |
| | | export async function importInsDetailStaffToList( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 提交审核 POST /api/InsuranceOrder/InsurancePolicyAddAudit */ |
| | | export async function insurancePolicyAddAudit( |
| | | body: API.InsurancePolicyAuditInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/InsuranceOrder/InsurancePolicyAddAudit', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 保单审核 POST /api/InsuranceOrder/InsurancePolicyAudit */ |
| | | export async function insurancePolicyAudit( |
| | | body: API.InsurancePolicyAuditInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.InsurancePolicyAuditOutput>('/api/InsuranceOrder/InsurancePolicyAudit', { |
| | | return request<number>('/api/InsuranceOrder/InsurancePolicyAudit', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 奖励金-出账 POST /api/ParkBountyApply/AuditParkBountyApplyTrade */ |
| | | export async function auditParkBountyApplyTrade( |
| | | body: API.AuditParkBountyTradeInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/AuditParkBountyApplyTrade', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 奖励金-出账-财务审批 POST /api/ParkBountyApply/FinanceAuditParkBountyApplyTrade */ |
| | | export async function financeAuditParkBountyApplyTrade( |
| | | body: API.AuditParkBountyTradeInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/ParkBountyApply/FinanceAuditParkBountyApplyTrade', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 运营端-奖励进出账详情 POST /api/ParkBountyApply/GetParkBountyTradeDetailList */ |
| | | export async function getParkBountyTradeDetailList( |
| | | body: API.GetParkBountyTradeDetailByIdInput, |
| | |
| | | year?: number; |
| | | } |
| | | |
| | | interface APIgetInsuranceOrderAuditRecordIdParams { |
| | | insuranceOrderId: string; |
| | | id: string; |
| | | } |
| | | |
| | | interface APIgetInsuranceOrderDetailParams { |
| | | id?: string; |
| | | } |
| | |
| | | values?: Record<string, any>; |
| | | } |
| | | |
| | | interface AuditParkBountyTradeInput { |
| | | /** 出账记录Id */ |
| | | id?: string; |
| | | auditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | /** 审核备注 */ |
| | | auditRemark?: string; |
| | | /** 审核凭证 */ |
| | | payAuditFileUrl?: string; |
| | | } |
| | | |
| | | interface BaseAuthorizeDto { |
| | | moduleType?: number; |
| | | moduleId?: string; |
| | |
| | | /** 保额 */ |
| | | insured: number; |
| | | /** 保费 */ |
| | | signPremium: number; |
| | | signPremium?: number; |
| | | /** 保费按天计费 */ |
| | | signPremiumByDay?: string; |
| | | } |
| | | |
| | | interface CreateOrUpdateInsureProductSettingInput { |
| | |
| | | properties?: Record<string, any>; |
| | | configuration?: Record<string, any>; |
| | | } |
| | | |
| | | type EnumParkBountyTradeDetailAuditStatus = 10 | 20 | 30; |
| | | |
| | | interface ExportInsuranceStaffListInput { |
| | | status?: InsuranceDetailStatusEnum; |
| | |
| | | interface GetInsurancePageOutput { |
| | | id?: string; |
| | | userId?: string; |
| | | /** 产业园区id */ |
| | | industrialParkId?: string; |
| | | /** 投保人 */ |
| | | insurerName?: string; |
| | | /** 被保险人 */ |
| | |
| | | data?: GetInsurancePageOutput[]; |
| | | } |
| | | |
| | | interface GetInsurancePolicyPayListInput { |
| | | pageModel?: Pagination; |
| | | status?: InsurancePolicyPayStatusEnum; |
| | | /** 关键字 */ |
| | | keywords?: string; |
| | | } |
| | | |
| | | interface GetInsurancePolicyPayListItem { |
| | | id?: string; |
| | | /** 用户Id */ |
| | | userId?: string; |
| | | /** 产业园区id */ |
| | | industrialParkId?: string; |
| | | /** 订单号 */ |
| | | channelOrderNo?: string; |
| | | /** 支付短链 */ |
| | | payUrl?: string; |
| | | /** 保费金额 */ |
| | | sumSignPremium?: number; |
| | | /** 创建日期 */ |
| | | creationTime?: string; |
| | | status?: InsurancePolicyPayStatusEnum; |
| | | /** 保单号 */ |
| | | policyNo?: string; |
| | | /** 电子保单链接 */ |
| | | policyUrl?: string; |
| | | /** 已投保人数 */ |
| | | proposalCount?: number; |
| | | /** 完成时间 */ |
| | | completionTime?: string; |
| | | } |
| | | |
| | | interface GetInsurancePolicyPayListItemPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: GetInsurancePolicyPayListItem[]; |
| | | } |
| | | |
| | | interface GetInsuranceStaffListInput { |
| | | pageModel?: Pagination; |
| | | condition?: string; |
| | |
| | | age?: number; |
| | | birthDay?: string; |
| | | phone?: string; |
| | | claimCount?: number; |
| | | creationTime?: string; |
| | | /** 投保批次号 */ |
| | | payOrder?: string; |
| | | status?: InsuranceDetailStatusEnum; |
| | | /** 投保状态 */ |
| | | statusText?: string; |
| | | /** 备注 */ |
| | | auditRemark?: string; |
| | | claimCount?: number; |
| | | } |
| | | |
| | | interface GetInsuranceStaffPageTemplatePageOutput { |
| | |
| | | /** 出账结束日期 */ |
| | | transferTimeEnd?: string; |
| | | enterpriseId?: string; |
| | | auditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutput { |
| | | enterpriseId?: string; |
| | | /** 账号 */ |
| | | userName?: string; |
| | | /** 企业名称 */ |
| | | enterpriseName?: string; |
| | | /** 电话 */ |
| | | contactPhone?: string; |
| | | /** 社会统一信用代码 */ |
| | | societyCreditCode?: string; |
| | | id?: string; |
| | | /** 最近出账金额 */ |
| | | tradeAmount?: number; |
| | |
| | | /** 奖励金余额 */ |
| | | remianAmount?: number; |
| | | financeType?: FinanceTypeEnum; |
| | | auditStatus?: EnumParkBountyTradeDetailAuditStatus; |
| | | /** 审核备注 */ |
| | | auditRemark?: string; |
| | | /** 审核时间 */ |
| | | auditTime?: string; |
| | | /** 审核凭证 */ |
| | | payAuditFileUrl?: string; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutputPageOutput { |
| | |
| | | url?: string; |
| | | /** 保险产品IdNumber */ |
| | | productIdNumber?: string; |
| | | /** 保险产品方案Id */ |
| | | /** 保险方案 */ |
| | | productSchemeIdNumber?: string; |
| | | /** 保单生效时间 */ |
| | | effectStartTime?: string; |
| | | /** 保单截止时间 */ |
| | | effectEndTime?: string; |
| | | } |
| | | |
| | | interface ImportInsStaffToListOutput { |
| | |
| | | |
| | | type InsuranceDetailStatusEnum = 10 | 12 | 13 | 14 | 20 | 30; |
| | | |
| | | interface InsuranceOrderAuditRecordDto { |
| | | /** 分批订单号 */ |
| | | channelOrderNo?: string; |
| | | /** 操作 */ |
| | | scene?: string; |
| | | /** 审核备注 */ |
| | | auditRemark?: string; |
| | | /** 操作时间 */ |
| | | creationTime?: string; |
| | | /** 操作人 */ |
| | | creatorId?: string; |
| | | /** 操作人 */ |
| | | creator?: string; |
| | | } |
| | | |
| | | interface InsuranceOrderListOutput { |
| | | id?: string; |
| | | /** 渠道 */ |
| | |
| | | returnUrl?: string; |
| | | } |
| | | |
| | | interface InsurancePolicyAuditOutput { |
| | | /** 消息 */ |
| | | messages?: string[]; |
| | | /** 总投保人数 */ |
| | | totalCount?: number; |
| | | /** 投保成功 */ |
| | | successCount?: number; |
| | | /** 投保失败 */ |
| | | failCount?: number; |
| | | } |
| | | |
| | | type InsurancePolicyAuditStatusEnum = 10 | 11 | 12 | 15 | 20 | -10; |
| | | type InsurancePolicyAuditStatusEnum = 1 | 10 | 11 | 12 | 15 | 20 | -10; |
| | | |
| | | type InsurancePolicyListPayStatusEnum = 1 | 2; |
| | | |
| | |
| | | insured?: number; |
| | | /** 保费 */ |
| | | signPremium?: number; |
| | | /** 保费按天计费 */ |
| | | signPremiumByDay?: string; |
| | | } |
| | | |
| | | interface InsureProductSchemeDtoPageOutput { |
| | |
| | | creationTime?: string; |
| | | /** 投保人数上限 */ |
| | | maxCount?: number; |
| | | /** 是否走线上流程 */ |
| | | online?: boolean; |
| | | } |
| | | |
| | | interface InsureProductSettingDtoPageOutput { |
| | |
| | | interface ObjectExtensionsDto { |
| | | modules?: Record<string, any>; |
| | | enums?: Record<string, any>; |
| | | } |
| | | |
| | | interface OperateRecordDto { |
| | | /** 操作 */ |
| | | operate?: string; |
| | | /** 操作内容 */ |
| | | content?: string; |
| | | /** 操作时间 */ |
| | | creationTime?: string; |
| | | /** 操作人 */ |
| | | creatorId?: string; |
| | | /** 操作人 */ |
| | | creator?: string; |
| | | } |
| | | |
| | | interface OperateRecordDtoPageOutput { |
| | | pageModel?: Pagination; |
| | | objectData?: any; |
| | | data?: OperateRecordDto[]; |
| | | } |
| | | |
| | | interface OperateRecordInput { |
| | | pageModel?: Pagination; |
| | | /** 场景 */ |
| | | scene?: string; |
| | | /** 目标Id */ |
| | | targetId?: string; |
| | | } |
| | | |
| | | interface OrderInput { |
| | |
| | | open?: boolean; |
| | | /** 818用户Id */ |
| | | humanResourcesServiceUserId?: string; |
| | | /** 用户端Id */ |
| | | clientId?: string; |
| | | /** 角色 */ |
| | | roleNames?: string[]; |
| | | /** 是否理赔提醒 */ |
| | | sendClaimMessage?: boolean; |
| | | /** 是否保单到期提醒 */ |
| | | sendBillExpireMessage?: boolean; |
| | | /** 是否短信提醒 */ |
| | | isSendMessage?: boolean; |
| | | /** 是否人员变更提醒 */ |
| | | staffChangeMessage?: boolean; |
| | | /** 是否批改提醒 */ |
| | | batchUpdateMessage?: boolean; |
| | | /** 产业园区id */ |
| | | industrialParkId?: string; |
| | | /** 园区Ids */ |
| | | industrialParkIds?: string[]; |
| | | /** 名称 */ |
| | | name?: string; |
| | | /** 登录用户名 */ |
| | |
| | | <QueryFilterItem> |
| | | <FieldRadio |
| | | v-model="extraParamState.insurancePeriod" |
| | | :value-enum="insuranceTypeText" |
| | | :value-enum="insuranceTypeTextForFilter" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | |
| | | InsurancePolicyListPayStatusEnum, |
| | | InsurancePolicyListPayStatusEnumText, |
| | | InsuranceOccupationTypeTempPath, |
| | | InsurancePeriodEnum, |
| | | insuranceTypeTextForFilter, |
| | | } from '@/constants'; |
| | | import dayjs from 'dayjs'; |
| | | import _ from 'lodash'; |
| | | import InsureInstructionsDialog from './components/InsureInstructionsDialog.vue'; |
| | | import { useUserInsureProductSetting } from '@/hooks'; |
| | | import { useInsureProductSchemeAllList, useUserInsureProductSetting } from '@/hooks'; |
| | | // import { Recorder } from '@/utils/record'; |
| | | |
| | | defineOptions({ |
| | |
| | | hide: (row: API.GetInsurancePageOutput) => row.productOnline || !row.insureBillUrl, |
| | | }, |
| | | }, |
| | | { |
| | | data: { |
| | | enCode: 'payBtn', |
| | | name: '支付', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => handlePay(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetInsurancePageOutput) => |
| | | row.payStatus != InsurancePolicyListPayStatusEnum.WaitPay, |
| | | }, |
| | | }, |
| | | // { |
| | | // data: { |
| | | // enCode: 'payBtn', |
| | | // name: '支付', |
| | | // }, |
| | | // emits: { |
| | | // onClick: (role) => handlePay(role), |
| | | // }, |
| | | // extraProps: { |
| | | // hide: (row: API.GetInsurancePageOutput) => |
| | | // row.payStatus != InsurancePolicyListPayStatusEnum.WaitPay, |
| | | // }, |
| | | // }, |
| | | { |
| | | data: { |
| | | enCode: 'stampFilesBtn', |
| | |
| | | // onClick: (role) => handleStandarEndo(role), |
| | | // }, |
| | | // }, |
| | | { |
| | | data: { |
| | | enCode: 'submitAuditBtn', |
| | | name: '提交审核', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => handleSubmitAuditBtn(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetInsurancePageOutput) => |
| | | row.auditStatus != InsurancePolicyAuditStatusEnum.WaitAdd, |
| | | }, |
| | | }, |
| | | ]).filter(Boolean); |
| | | |
| | | const BaseState = { |
| | |
| | | productIdNumber: '', |
| | | productSchemeIdNumber: '', |
| | | effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'), |
| | | effectEndTime: '', |
| | | }, |
| | | closeAfterConfirm: false, |
| | | }); |
| | |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const { isSjbAccount, getInsureProductIdByIdNumber } = useUserInsureProductSetting(); |
| | | |
| | | const { getInsureProductSchemeByIdNumber } = useInsureProductSchemeAllList({ |
| | | insureProductId: computed(() => getInsureProductIdByIdNumber(editForm.productIdNumber)), |
| | | }); |
| | | |
| | | async function importInsStaffToList() { |
| | | try { |
| | | let params: API.ImportInsStaffToListFrontInput = { |
| | |
| | | productSchemeIdNumber: editForm.productSchemeIdNumber, |
| | | effectStartTime: editForm.effectStartTime, |
| | | }; |
| | | const currentInsureProductScheme = getInsureProductSchemeByIdNumber( |
| | | editForm.productSchemeIdNumber |
| | | ); |
| | | if (currentInsureProductScheme?.period === InsurancePeriodEnum['1-29D']) { |
| | | params.effectEndTime = editForm.effectEndTime; |
| | | } |
| | | let res = await insuranceOrderServices.importInsStaffToList(params, { |
| | | timeout: 60 * 1000 * 10, |
| | | customErrorHandler(error) { |
| | |
| | | const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog({ |
| | | onConfirm: handleUpload, |
| | | }); |
| | | |
| | | const { isSjbAccount } = useUserInsureProductSetting(); |
| | | |
| | | function handleOpenInstructions() { |
| | | if (isSjbAccount.value) { |
| | |
| | | }); |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function handleSubmitAuditBtn(row: API.GetInsurancePageOutput) { |
| | | try { |
| | | let params: API.InsurancePolicyAuditInput = { |
| | | insurancePolicyId: row.id, |
| | | }; |
| | | let res = await insuranceOrderServices.insurancePolicyAddAudit(params); |
| | | if (res) { |
| | | Message.successMessage('上传成功'); |
| | | getList(paginationState.pageIndex); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem> |
| | | <FieldRadio |
| | | v-model="extraParamState.status" |
| | | :value-enum="InsurancePolicyListPayStatusEnumText" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | | /> |
| | | </QueryFilterItem> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.condition" |
| | | style="width: 260px" |
| | | placeholder="订单号/保单号" |
| | | @on-click-search="getList" |
| | | > |
| | | </SearchInput> |
| | | </QueryFilterItem> |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="InsurePayManageColumns" |
| | | :operationBtns="operationBtns" |
| | | > |
| | | </ProTableV2> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | OperationBtnType, |
| | | ProTableV2, |
| | | LoadingLayout, |
| | | AppContainer, |
| | | useTable, |
| | | ProTableV2Props, |
| | | defineOperationBtns, |
| | | QueryFilterItem, |
| | | FieldRadio, |
| | | SearchInput, |
| | | ProTableQueryFilterBar, |
| | | } from '@bole-core/components'; |
| | | import * as insuranceOrderServices from '@/services/api/InsuranceOrder'; |
| | | import { |
| | | InsurancePolicyPayStatusEnumText, |
| | | InsurancePolicyPayStatusEnum, |
| | | InsurancePolicyListPayStatusEnum, |
| | | InsurancePolicyListPayStatusEnumText, |
| | | } from '@/constants'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { InsurePayManageColumns } from './constants'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | |
| | | defineOptions({ |
| | | name: 'InsurancePayManage', |
| | | }); |
| | | |
| | | const operationBtns = defineOperationBtns([ |
| | | { |
| | | data: { |
| | | enCode: 'payBtn', |
| | | name: '支付', |
| | | }, |
| | | emits: { onClick: (role) => handlePay(role) }, |
| | | extraProps: { |
| | | hide: (row: API.GetInsurancePolicyPayListItem) => |
| | | row.status !== InsurancePolicyPayStatusEnum.WaitPay, |
| | | }, |
| | | }, |
| | | ]); |
| | | |
| | | const BaseState = { |
| | | loading: true, |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | reset, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetInsurancePolicyPayListInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | status: extraParamState.status, |
| | | keywords: extraParamState.condition, |
| | | }; |
| | | let res = await insuranceOrderServices.getInsurancePolicyPayList(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'id', order: OrderInputType.Desc }], |
| | | condition: '', |
| | | status: '' as any as InsurancePolicyListPayStatusEnum, |
| | | }, |
| | | columnsRenderProps: { |
| | | sumSignPremium: { type: 'money' }, |
| | | status: { type: 'enum', valueEnum: InsurancePolicyListPayStatusEnumText }, |
| | | creationTime: { type: 'date' }, |
| | | completionTime: { type: 'date' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | function handlePay(row: API.GetInsurancePolicyPayListItem) { |
| | | window.open(row.payUrl, '_blank'); |
| | | } |
| | | </script> |
| | |
| | | onClick: (role) => handleChangeInfo(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.GetInsuranceStaffPageTemplate) => |
| | | detail.value?.productOnline || |
| | | detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect || |
| | | detail.value?.auditStatus === InsurancePolicyAuditStatusEnum.Pass, |
| | | hide: (row: API.GetInsuranceStaffPageTemplate) => { |
| | | if (detail.value?.productOnline) { |
| | | return detail.value?.auditStatus !== InsurancePolicyAuditStatusEnum.WaitAdd; |
| | | } else { |
| | | return ( |
| | | detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect || |
| | | detail.value?.auditStatus === InsurancePolicyAuditStatusEnum.Pass |
| | | ); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | { |
| | |
| | | productIdNumber: detail.value.productIdNumber, |
| | | productSchemeIdNumber: getInsureProductSchemeByCode(detail.value.productSchemeCode)?.idNumber, |
| | | effectStartTime: detail.value.effectStartTime, |
| | | effectEndTime: detail.value.effectEndTime, |
| | | }); |
| | | } |
| | | |
| | |
| | | productIdNumber: '', |
| | | productSchemeIdNumber: '', |
| | | effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'), |
| | | effectEndTime: '', |
| | | }, |
| | | closeAfterConfirm: false, |
| | | }); |
| | |
| | | placeholder="请选择起保日期" |
| | | :disabled-date="disabledStartDate" |
| | | :disabled="isSupply" |
| | | @change="handleStartDateChange" |
| | | ></ProFormDatePicker> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | | label="截止日期:" |
| | | prop="effectEndTime" |
| | | :check-rules="[{ message: '请选择截止日期' }]" |
| | | v-if="currentInsureProductScheme?.period === InsurancePeriodEnum['1-29D']" |
| | | > |
| | | <ProFormDatePicker |
| | | v-model="form.effectEndTime" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="请选择截止日期" |
| | | :disabled-date="disabledEndDate" |
| | | :disabled="isSupply" |
| | | ></ProFormDatePicker> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 |
| | |
| | | import dayjs from 'dayjs'; |
| | | import { FormInstance } from 'element-plus'; |
| | | import _ from 'lodash'; |
| | | import { InsurancePeriodEnum } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'UploadInsurePersonDialog', |
| | |
| | | productIdNumber: string; |
| | | productSchemeIdNumber: string; |
| | | effectStartTime: string; |
| | | effectEndTime: string; |
| | | }; |
| | | //是否是补提 |
| | | isSupply?: boolean; |
| | |
| | | |
| | | const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } = |
| | | useUserInsureProductSetting(); |
| | | const { allInsureProductSchemeList } = useInsureProductSchemeAllList({ |
| | | insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)), |
| | | }); |
| | | const { allInsureProductSchemeList, getInsureProductSchemeByIdNumber } = |
| | | useInsureProductSchemeAllList({ |
| | | insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)), |
| | | }); |
| | | |
| | | const currentInsureProductScheme = computed(() => |
| | | getInsureProductSchemeByIdNumber(props.form.productSchemeIdNumber) |
| | | ); |
| | | |
| | | function handleProductChange() { |
| | | innerForm.value.productSchemeIdNumber = ''; |
| | |
| | | return dayjs(time).isBefore(dayjs()) || dayjs(time).isAfter(dayjs().add(60, 'day')); |
| | | }; |
| | | |
| | | const disabledEndDate = (time: Date) => { |
| | | const startDate = dayjs(props.form.effectStartTime); |
| | | return ( |
| | | dayjs(time).isBefore(startDate) || |
| | | dayjs(time).isAfter(dayjs(props.form.effectStartTime).add(28, 'day')) |
| | | ); |
| | | }; |
| | | |
| | | function handleStartDateChange() { |
| | | if (disabledEndDate(props.form.effectEndTime as any)) { |
| | | innerForm.value.effectEndTime = ''; |
| | | } |
| | | } |
| | | |
| | | const innerVisible = computed({ |
| | | get() { |
| | | return props.modelValue; |
| | |
| | | width: 160, |
| | | }, |
| | | { |
| | | id: '10-1', |
| | | enCode: 'insureEffectingCount', |
| | | name: '生效人数', |
| | | width: 160, |
| | | }, |
| | | { |
| | | id: '11', |
| | | enCode: 'sumInsured', |
| | | name: '总保额(元)', |
| | |
| | | name: '支付状态', |
| | | }, |
| | | ]); |
| | | |
| | | export const InsurePayManageColumns = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'channelOrderNo', |
| | | name: '订单号', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'proposalNo', |
| | | name: '投保单号', |
| | | }, |
| | | { |
| | | id: '2-1', |
| | | enCode: 'proposalCount', |
| | | name: '投保人数', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'sumSignPremium', |
| | | name: '保费金额', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'creationTime', |
| | | name: '创建日期', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'status', |
| | | name: '支付状态', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'completionTime', |
| | | name: '支付日期', |
| | | }, |
| | | ]); |
| | |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | build: { |
| | | outDir: `dist/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`, |
| | | outDir: `dist/${dayjs().format( |
| | | 'YYYY-MM-DD' |
| | | )}/dist-jybfront-${VITE_AppType}-${mode}-${dayjs().format('YYYYMMDD')}`, |
| | | }, |
| | | optimizeDeps: { |
| | | include: [ |