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