| | |
| | | <template> |
| | | <AppScrollContainer> |
| | | <ChunkCell title=""> |
| | | <ProForm :model="detail" ref="formRef" label-width="120px" :is-read="true"> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保单号:" prop="orderNo"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="生效状态:" prop="insuranceTypeCode"> |
| | | <ProFormRadio v-model="detail.insuranceType" :value-enum="insuranceTypeText" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保险起期:" prop="applyTime"> |
| | | <ProFormDatePicker v-model.trim="detail.createTime" format="YYYY-MM-DD HH:mm" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保险止期:" prop="insuranceTypeCode"> |
| | | <ProFormDatePicker v-model.trim="detail.createTime" format="YYYY-MM-DD HH:mm" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保方式:" prop="insureWay"> |
| | | <ProFormRadio v-model="detail.insuranceType" :value-enum="insuranceTypeText" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="参保机构:" prop="applyTime"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保方案:" prop="applyTime"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保人数:" prop="numberOfFailed"> |
| | | <ProFormInputNumber v-model.trim="detail.incDecAmount" unit="人" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保人:" prop="companyName"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="被保人:" prop="insuranceTypeCode"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | </ProForm> |
| | | </ChunkCell> |
| | | <ChunkCell title="人员信息"> |
| | | <template #titleRight> |
| | | <el-button type="primary" @click="handleBatchChange">批改申请</el-button> |
| | | </template> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.keyWord" |
| | | style="width: 300px" |
| | | placeholder="人员姓名/身份证号/手机号" |
| | | @on-click-search="getBatchRefundInfoDetail" |
| | | > |
| | | </SearchInput> |
| | | </QueryFilterItem> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppScrollContainer> |
| | | <ChunkCell title=""> |
| | | <ProForm :model="detail" ref="formRef" label-width="120px" :is-read="true"> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保单号:" prop="orderNo"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="生效状态:" prop="insuranceTypeCode"> |
| | | <ProFormRadio v-model="detail.insuranceType" :value-enum="insuranceTypeText" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保险起期:" prop="applyTime"> |
| | | <ProFormDatePicker v-model.trim="detail.createTime" format="YYYY-MM-DD HH:mm" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="保险止期:" prop="insuranceTypeCode"> |
| | | <ProFormDatePicker v-model.trim="detail.createTime" format="YYYY-MM-DD HH:mm" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保方式:" prop="insureWay"> |
| | | <ProFormRadio v-model="detail.insuranceType" :value-enum="insuranceTypeText" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="参保机构:" prop="insuredInstitution"> |
| | | <ProFormRadio |
| | | v-model="detail.insuredInstitution" |
| | | :value-enum="InsuredInstitutionEnum" |
| | | /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保方案:" prop="insuranceScheme"> |
| | | <ProFormRadio v-model="detail.insuranceScheme" :value-enum="InsuranceSchemeEnum" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保人数:" prop="numberOfFailed"> |
| | | <ProFormInputNumber v-model.trim="detail.incDecAmount" unit="人" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="投保人:" prop="companyName"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="被保人:" prop="insuranceTypeCode"> |
| | | <ProFormText v-model.trim="detail.orderNo" /> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | </ProForm> |
| | | </ChunkCell> |
| | | <ChunkCell title="人员信息"> |
| | | <template #titleRight> |
| | | <el-button type="primary" @click="handleBatchChange">批改申请</el-button> |
| | | </template> |
| | | <template #btn> |
| | | <el-button @click="handleTemplateDownload()" icon="Download" type="primary" |
| | | >模板下载</el-button |
| | | > |
| | | <el-button @click="handleImport()" icon="Download" type="primary">导入</el-button> |
| | | <el-button @click="handleClear()" icon="Download" type="primary">清空数据</el-button> |
| | | <el-button @click="handleDownloadPerson()" icon="Download" type="primary" |
| | | >人员清单下载</el-button |
| | | > |
| | | <el-button @click="handleDownloadOrder()" icon="Download" type="primary" |
| | | >保单下载</el-button |
| | | > |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="column" |
| | | :operationBtns="operationBtns" |
| | | :auto-height="false" |
| | | ref="proTable" |
| | | :tableProps="{ |
| | | maxHeight: '400px', |
| | | }" |
| | | > |
| | | </ProTableV2> |
| | | </ChunkCell> |
| | | <ChangePersonInfoDialog v-bind="dialogProps"></ChangePersonInfoDialog> |
| | | </AppScrollContainer> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem> |
| | | <SearchInput |
| | | v-model="extraParamState.keyWord" |
| | | style="width: 300px" |
| | | placeholder="姓名/身份证号/手机号" |
| | | @on-click-search="getBatchRefundInfoDetail" |
| | | > |
| | | </SearchInput> |
| | | </QueryFilterItem> |
| | | </template> |
| | | <template #btn> |
| | | <el-button @click="handleTemplateDownload()" link type="primary">模板下载</el-button> |
| | | <el-button @click="handleImport()" type="primary">导入</el-button> |
| | | <el-button @click="handleClear()" type="primary">清空数据</el-button> |
| | | <el-button @click="handleDownloadPerson()" type="primary">人员清单下载</el-button> |
| | | <el-button @click="handleDownloadOrder()" type="primary">保单下载</el-button> |
| | | </template> |
| | | </ProTableQueryFilterBar> |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="column" |
| | | :operationBtns="operationBtns" |
| | | :auto-height="false" |
| | | ref="proTable" |
| | | :tableProps="{ |
| | | maxHeight: '400px', |
| | | }" |
| | | > |
| | | </ProTableV2> |
| | | </ChunkCell> |
| | | <ChangePersonInfoDialog v-bind="dialogProps"></ChangePersonInfoDialog> |
| | | </AppScrollContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | useTable, |
| | | ProTableV2, |
| | | ProFormRadio, |
| | | FieldSelect, |
| | | defineOperationBtns, |
| | | useFormDialog, |
| | | } from '@bole-core/components'; |
| | | import { insuranceTypeText } from '@/constants'; |
| | | import { |
| | | InsuranceOrderTempPath, |
| | | insuranceTypeText, |
| | | InsuredInstitutionEnum, |
| | | InsuranceSchemeEnum, |
| | | } from '@/constants'; |
| | | import ChangePersonInfoDialog from './ChangePersonInfoDialog.vue'; |
| | | import * as insuranceOrderServices from '@/services/api/InsuranceOrder'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import { downloadFileByUrl, OrderInputType } from '@bole-core/core'; |
| | | |
| | | defineOptions({ |
| | | name: 'InsureOrderInfoView', |
| | |
| | | emits: { |
| | | onClick: (role) => handleChangeInfo(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, |
| | | }, |
| | | // extraProps: { |
| | | // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, |
| | | // }, |
| | | }, |
| | | { |
| | | data: { |
| | |
| | | name: '理赔详情', |
| | | }, |
| | | emits: { |
| | | onClick: (role) => handleInsureClaimDetail(), |
| | | onClick: (role) => handleInsureClaimDetail(role), |
| | | }, |
| | | extraProps: { |
| | | hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, |
| | | }, |
| | | // extraProps: { |
| | | // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, |
| | | // }, |
| | | }, |
| | | ]); |
| | | |
| | |
| | | return await insuranceOrderServices.getInsuranceOrderDetail( |
| | | { id: id }, |
| | | { |
| | | showLoading: false, |
| | | showLoading: !state.loading, |
| | | } |
| | | ); |
| | | }, |
| | |
| | | await queryClient.ensureQueryData({ |
| | | queryKey: ['insuranceOrderServices/getInsuranceOrderDetail', id], |
| | | }); |
| | | getBatchRefundInfoDetail(); |
| | | await getBatchRefundInfoDetail(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | const { |
| | |
| | | } |
| | | ); |
| | | |
| | | function handleTemplateDownload() {} |
| | | function handleTemplateDownload() { |
| | | downloadFileByUrl(InsuranceOrderTempPath, '人员信息模板'); |
| | | } |
| | | function handleClear() {} |
| | | function handleImport() {} |
| | | |
| | |
| | | |
| | | async function changeInfo() {} |
| | | |
| | | function handleInsureClaimDetail() {} |
| | | function handleInsureClaimDetail(row: API.InsuranceOrderListOutput) { |
| | | router.push({ |
| | | name: 'InsuranceClaimDetail', |
| | | params: { |
| | | id: row.id, |
| | | }, |
| | | query: { |
| | | fromRoute: 'InsuranceOrderDetail', |
| | | }, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |