From cd4a07141ec97ff6c51dd7137462e506d8d0881f Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 21 三月 2025 16:56:03 +0800 Subject: [PATCH] feat: init --- src/views/Home/components/BatchChangeRecordView.vue | 33 +++-- src/views/Home/components/UploadInsurePersonDialog.vue | 8 + src/views/Home/components/UploadStampFileDialog.vue | 8 + src/views/Home/components/InsureOrderInfoView.vue | 232 +++++++++++++++++++------------------- src/views/Home/Home.vue | 38 ++--- 5 files changed, 164 insertions(+), 155 deletions(-) diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue index 6f780af..f98ab8e 100644 --- a/src/views/Home/Home.vue +++ b/src/views/Home/Home.vue @@ -124,14 +124,11 @@ const operationBtns = defineOperationBtns([ { data: { - enCode: 'downloadBtn', - name: '淇濆崟涓嬭浇', + enCode: 'detailBtn', + name: '璇︽儏', }, emits: { - onClick: (role) => handleDownloadOrderNo(role), - }, - extraProps: { - hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + onClick: (role) => handleDetail(role), }, }, { @@ -142,9 +139,9 @@ emits: { onClick: (role) => handleBatch(role), }, - // extraProps: { - // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, - // }, + extraProps: { + hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + }, }, { data: { @@ -154,17 +151,20 @@ emits: { onClick: (role) => handleUploadStampFile(role), }, - extraProps: { - hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, - }, + // extraProps: { + // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + // }, }, { data: { - enCode: 'detailBtn', - name: '璇︽儏', + enCode: 'downloadBtn', + name: '淇濆崟涓嬭浇', }, emits: { - onClick: (role) => handleDetail(role), + onClick: (role) => handleDownloadOrderNo(role), + }, + extraProps: { + hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, }, }, ]).filter(Boolean); @@ -218,14 +218,6 @@ format: 'YYYY/MM/DD', }, }, - showSummary: true, - summaryPropertys: [ - { - property: 'table-operation', - valueKey: 'totalAmount', - formatter: (v) => `锟�${toThousand(v)}`, - }, - ], } ); diff --git a/src/views/Home/components/BatchChangeRecordView.vue b/src/views/Home/components/BatchChangeRecordView.vue index c79d563..0dcdf53 100644 --- a/src/views/Home/components/BatchChangeRecordView.vue +++ b/src/views/Home/components/BatchChangeRecordView.vue @@ -1,17 +1,19 @@ <template> - <AppContainer> - <ProTableV2 - v-bind="proTableProps" - :columns="column" - :operationBtns="operationBtns" - :autoHeight="false" - :tableProps="{ - maxHeight: '400px', - }" - > - </ProTableV2> - <BatchChangeRecordDetailDialog v-bind="dialogProps"></BatchChangeRecordDetailDialog> - </AppContainer> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 + v-bind="proTableProps" + :columns="column" + :operationBtns="operationBtns" + :autoHeight="false" + :tableProps="{ + maxHeight: '400px', + }" + > + </ProTableV2> + <BatchChangeRecordDetailDialog v-bind="dialogProps"></BatchChangeRecordDetailDialog> + </AppContainer> + </LoadingLayout> </template> <script setup lang="ts"> @@ -146,8 +148,9 @@ }); } -onMounted(() => { - getBatchRefundInfoDetail(); +onMounted(async () => { + await getBatchRefundInfoDetail(); + state.loading = false; }); </script> diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue index fba6353..57ab2cf 100644 --- a/src/views/Home/components/InsureOrderInfoView.vue +++ b/src/views/Home/components/InsureOrderInfoView.vue @@ -1,111 +1,113 @@ <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" + <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="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> + </template> + <template #btn> + <el-button @click="handleTemplateDownload()" icon="Download" type="primary" + >妯℃澘涓嬭浇</el-button > - </SearchInput> - </QueryFilterItem> - </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> + <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> + </LoadingLayout> </template> <script setup lang="ts"> @@ -126,7 +128,6 @@ useTable, ProTableV2, ProFormRadio, - FieldSelect, defineOperationBtns, useFormDialog, } from '@bole-core/components'; @@ -240,7 +241,7 @@ return await insuranceOrderServices.getInsuranceOrderDetail( { id: id }, { - showLoading: false, + showLoading: !state.loading, } ); }, @@ -254,7 +255,8 @@ await queryClient.ensureQueryData({ queryKey: ['insuranceOrderServices/getInsuranceOrderDetail', id], }); - getBatchRefundInfoDetail(); + await getBatchRefundInfoDetail(); + state.loading = false; }); const { @@ -297,12 +299,12 @@ function handleDownloadPerson() {} function handleDownloadOrder() {} function handleBatchChange() { - router.push({ - name: 'BatchChange', - params: { - id: id, - }, - }); + // router.push({ + // name: 'BatchChange', + // params: { + // id: id, + // }, + // }); } const { dialogProps, handleEdit, editForm } = useFormDialog({ diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue index ffba7d8..0473413 100644 --- a/src/views/Home/components/UploadInsurePersonDialog.vue +++ b/src/views/Home/components/UploadInsurePersonDialog.vue @@ -29,7 +29,13 @@ :limit="1" :limitFileSize="10" accept="xlsx,xls" - ></ProFormUpload> + > + <template #tip> + <div> + <el-text type="danger">鏀寔excel鏂囦欢锛岃涓婁紶鍚屾壒娆$殑鎶曚繚浜哄憳娓呭崟</el-text> + </div> + </template> + </ProFormUpload> </ProFormItemV2> </ProForm> <template #footer> diff --git a/src/views/Home/components/UploadStampFileDialog.vue b/src/views/Home/components/UploadStampFileDialog.vue index 2b3d93d..8de4354 100644 --- a/src/views/Home/components/UploadStampFileDialog.vue +++ b/src/views/Home/components/UploadStampFileDialog.vue @@ -13,7 +13,13 @@ prop="url" :check-rules="[{ message: '璇蜂笂浼犳枃浠�', type: 'upload' }]" > - <ProFormUpload v-model:file-url="innerForm.url" accept="pdf,jpg,jpeg,png"></ProFormUpload> + <ProFormUpload v-model:file-url="innerForm.url" accept="pdf,jpg,jpeg,png"> + <template #tip> + <div> + <el-text type="danger">鏀寔pdf銆乯pg銆乯epg銆乸ng鍥剧墖</el-text> + </div> + </template> + </ProFormUpload> </ProFormItemV2> </ProForm> <template #footer> -- Gitblit v1.9.1