From 80dd2bebbe3d204cc7833a4793aba67bba356b1d Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 24 三月 2025 19:19:20 +0800 Subject: [PATCH] feat: 页面 --- src/views/Home/components/InsureOrderInfoView.vue | 256 +++++++++++++++++++++++++++------------------------ 1 files changed, 136 insertions(+), 120 deletions(-) diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue index fba6353..a8cf6e4 100644 --- a/src/views/Home/components/InsureOrderInfoView.vue +++ b/src/views/Home/components/InsureOrderInfoView.vue @@ -1,111 +1,110 @@ <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"> @@ -126,15 +125,19 @@ 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', @@ -207,9 +210,9 @@ emits: { onClick: (role) => handleChangeInfo(role), }, - extraProps: { - hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, - }, + // extraProps: { + // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + // }, }, { data: { @@ -217,11 +220,11 @@ name: '鐞嗚禂璇︽儏', }, emits: { - onClick: (role) => handleInsureClaimDetail(), + onClick: (role) => handleInsureClaimDetail(role), }, - extraProps: { - hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, - }, + // extraProps: { + // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + // }, }, ]); @@ -240,7 +243,7 @@ return await insuranceOrderServices.getInsuranceOrderDetail( { id: id }, { - showLoading: false, + showLoading: !state.loading, } ); }, @@ -254,7 +257,8 @@ await queryClient.ensureQueryData({ queryKey: ['insuranceOrderServices/getInsuranceOrderDetail', id], }); - getBatchRefundInfoDetail(); + await getBatchRefundInfoDetail(); + state.loading = false; }); const { @@ -290,7 +294,9 @@ } ); -function handleTemplateDownload() {} +function handleTemplateDownload() { + downloadFileByUrl(InsuranceOrderTempPath, '浜哄憳淇℃伅妯℃澘'); +} function handleClear() {} function handleImport() {} @@ -320,7 +326,17 @@ 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> -- Gitblit v1.9.1