From 77f32b6d96237dc874ca81c0ecab1a21500cc5ab Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 21 三月 2025 16:31:00 +0800
Subject: [PATCH] feat: init

---
 src/views/Home/Home.vue |  234 +++++++++++++++++++++++++--------------------------------
 1 files changed, 103 insertions(+), 131 deletions(-)

diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 3111cb1..6f780af 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -37,7 +37,7 @@
             <SearchInput
               v-model="extraParamState.keyword"
               style="width: 260px"
-              placeholder="濮撳悕/韬唤璇�/鍗曚綅/淇濆崟鍙风瓑"
+              placeholder="鍗曚綅/淇濆崟鍙�/鍙備繚鏈烘瀯"
               @on-click-search="getList"
             >
             </SearchInput>
@@ -53,39 +53,22 @@
             >妯℃澘涓嬭浇</el-button
           >
 
-          <BlFileUpload
-            :limitFileSize="10"
-            accept="xls,xlsx"
-            :showTip="false"
-            :show-file-list="false"
-            :on-success="handleUploadSuccess"
+          <el-button @click="handleUpload()" icon="Upload" type="primary" style="margin-right: 10px"
+            >瀵煎叆</el-button
           >
-            <template #default>
-              <el-button icon="Plus" type="primary">瀵煎叆</el-button>
-            </template>
-          </BlFileUpload>
 
-          <el-button
-            @click="handleEnterpriseBatchRefund()"
-            type="primary"
-            style="margin-right: 10px"
-            >鎵归噺鍑忓憳</el-button
+          <el-button @click="downloadInsureOrder()" type="primary" icon="Download" link
+            >瀵煎嚭淇濆崟鍒楄〃</el-button
           >
-          <el-button
-            @click="handleExport()"
-            icon="Download"
-            type="primary"
-            style="margin-left: 10px"
-            >瀵煎嚭</el-button
+          <el-button @click="downloadInsurePerson()" icon="Download" type="primary" link
+            >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
           >
         </template>
       </ProTableQueryFilterBar>
       <ProTableV2
         v-bind="proTableProps"
-        :columns="HomeColumns"
+        :columns="columns"
         :operationBtns="operationBtns"
-        :show-column-check="true"
-        :column-selectable="columnSelectable"
         ref="proTable"
         :table-props="{
           rowStyle: handleRowStyle,
@@ -94,11 +77,8 @@
       >
       </ProTableV2>
     </AppContainer>
-    <UploadMaterialDialog
-      v-bind="dialogProps"
-      @onAddUpdateMaterial="getList(paginationState.pageIndex)"
-    />
-    <BatchDownsizingDialog v-bind="dialogBatchDownsizingProps" />
+    <UploadInsurePersonDialog v-bind="dialogProps" />
+    <UploadStampFileDialog v-bind="dialogStampFileProps" />
   </LoadingLayout>
 </template>
 
@@ -121,9 +101,9 @@
 } from '@bole-core/components';
 import * as insuranceOrderServices from '@/services/api/InsuranceOrder';
 import { Message, OrderInputType, downloadFileByUrl } from '@bole-core/core';
-import { HomeColumns } from './constants';
-import UploadMaterialDialog from './components/UploadMaterialDialog.vue';
-import BatchDownsizingDialog from './components/BatchDownsizingDialog.vue';
+import { columns } from './constants';
+import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue';
+import UploadStampFileDialog from './components/UploadStampFileDialog.vue';
 import { toThousand, format, downloadFile, setOSSLink } from '@/utils';
 import { omit } from 'lodash';
 import { ModelValueType } from 'element-plus';
@@ -154,11 +134,40 @@
       hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile,
     },
   },
+  {
+    data: {
+      enCode: 'batchBtn',
+      name: '鎵规敼',
+    },
+    emits: {
+      onClick: (role) => handleBatch(role),
+    },
+    // extraProps: {
+    //   hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile,
+    // },
+  },
+  {
+    data: {
+      enCode: 'uploadStampFileBtn',
+      name: '涓婁紶鐩栫珷鏂囦欢',
+    },
+    emits: {
+      onClick: (role) => handleUploadStampFile(role),
+    },
+    extraProps: {
+      hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile,
+    },
+  },
+  {
+    data: {
+      enCode: 'detailBtn',
+      name: '璇︽儏',
+    },
+    emits: {
+      onClick: (role) => handleDetail(role),
+    },
+  },
 ]).filter(Boolean);
-
-const columnSelectable = (row: API.InsuranceOrderListOutput) => {
-  return row.onJobFlag === '澧炲憳';
-};
 
 const BaseState = {
   loading: true,
@@ -236,60 +245,36 @@
   return params;
 }
 
-const queryClient = useQueryClient();
-
-async function handleUploadSuccess(response: UploadUserFile) {
-  try {
-    let res = await insuranceOrderServices.importInsuranceOrderData(response.url, {
-      getResponse: true,
-      responseType: 'blob',
-    });
-    if (res?.data?.size) {
-      await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
-      downloadFile(res.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx');
-      // XLSXUtils.exportToXLSX({
-      //   workbookDataList: res,
-      //   fileName: '閿欒浜哄憳鍚嶅崟',
-      //   workbookHeaderMap: {
-      //     ...omit(Object.fromEntries(HomeColumns.map((x) => [x.enCode, x.name])), [
-      //       'channel',
-      //       'salesmanName',
-      //       'createTime',
-      //     ]),
-      //     erroMsg: '澶囨敞',
-      //   },
-      // });
-    }
-    queryClient.invalidateQueries({
-      queryKey: ['insuranceOrderServices/getInsuranceOrderListByOrderRelevance'],
-    });
-    getList();
-  } catch (error) {}
-}
-
-const { dialogProps, handleAdd } = useFormDialog({
+const { dialogProps, handleAdd, editForm } = useFormDialog({
+  onConfirm: uploadInsurePerson,
   defaultFormParams: {
-    id: '',
-    materialName: '',
+    orderNo: '',
     url: [] as UploadUserFile[],
   },
 });
 
-function openDialog(row: API.InsuranceOrderListOutput) {
+function handleUpload() {
   handleAdd({
-    id: row.id,
+    orderNo: '',
+    url: [] as UploadUserFile[],
   });
 }
 
-const router = useRouter();
-function goDetail(row: API.InsuranceOrderListOutput) {
-  router.push({
-    name: 'InsuranceClaimDetail',
-    params: {
-      id: row.id,
-    },
-  });
+async function uploadInsurePerson() {
+  try {
+    let params = {
+      orderNo: editForm.orderNo,
+      url: editForm.url?.[0]?.path,
+    };
+    // let res = await insuranceOrderServices.uploadStampFile(params);
+    // if (res) {
+    //   Message.successMessage('涓婁紶鎴愬姛');
+    //   getList(paginationState.pageIndex);
+    // }
+  } catch (error) {}
 }
+
+const router = useRouter();
 
 async function handleExport() {
   try {
@@ -323,72 +308,59 @@
   }
 }
 
-const proTable = ref<InstanceType<typeof ProTableV2>>();
-function handleEnterpriseBatchRefund() {
-  if (proTableProps.value.tableData.length) {
-    const res: API.InsuranceOrderListOutput[] = proTable.value.innerTableRef.getSelectionRows();
-    if (res.length > 0) {
-      const orderNos = _.uniq(res.map((x) => x.orderNo));
-      if (orderNos.length > 1) {
-        Message.errorMessage('瀛樺湪涓嶅悓鐨勪繚鍗曞彿锛屾棤娉曟壒閲忓噺鍛�');
-        return;
-      }
-      handleBatchDownsizing(res);
-    } else {
-      Message.errorMessage('璇峰厛鍕鹃�夊噺鍛樹汉鍛�');
-    }
-  } else {
-    Message.errorMessage('鏆傛棤鏁版嵁');
-  }
-}
-
 const {
-  dialogProps: dialogBatchDownsizingProps,
-  handleAdd: handleBatchDownsizingAdd,
-  editForm: batchDownsizingForm,
+  dialogProps: dialogStampFileProps,
+  handleEdit: handleStampFileEdit,
+  editForm: stampFileForm,
 } = useFormDialog({
-  onConfirm: downsizingInsuranceOrderData,
+  onConfirm: uploadStampFile,
   defaultFormParams: {
-    orderNo: '',
-    checkOrderNo: '',
+    id: '',
     url: [] as UploadUserFile[],
-    downsizingInsuranceList: [] as string[],
   },
 });
 
-function handleBatchDownsizing(res: API.InsuranceOrderListOutput[]) {
-  handleBatchDownsizingAdd({
-    checkOrderNo: res[0]?.orderNo,
-    downsizingInsuranceList: res.map((x) => x.id),
+function handleUploadStampFile(row: API.InsuranceOrderListOutput) {
+  handleStampFileEdit({
+    id: row.id,
+    url: [] as UploadUserFile[],
   });
 }
 
-async function downsizingInsuranceOrderData() {
+async function uploadStampFile() {
   try {
-    let params: API.DownsizingInsuranceOrderData = {
-      orderNo: batchDownsizingForm.checkOrderNo,
-      downsizingInsuranceList: batchDownsizingForm.downsizingInsuranceList,
-      url: batchDownsizingForm.url?.[0]?.path ?? '',
+    let params = {
+      id: stampFileForm.id,
+      url: stampFileForm.url?.[0]?.path,
     };
-    let res = await insuranceOrderServices.downsizingInsuranceOrderDataCheck(params);
-    if (res) {
-      let downRes = await insuranceOrderServices.downsizingInsuranceOrderData(params, {
-        getResponse: true,
-        responseType: 'blob',
-      });
-      if (downRes?.data?.size) {
-        await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
-        downloadFile(downRes.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx');
-      }
-      queryClient.invalidateQueries({
-        queryKey: ['insuranceOrderServices/getInsuranceOrderListByOrderRelevance'],
-      });
-      getList(paginationState.pageIndex);
-    }
+    // let res = await insuranceOrderServices.uploadStampFile(params);
+    // if (res) {
+    //   Message.successMessage('涓婁紶鎴愬姛');
+    //   getList(paginationState.pageIndex);
+    // }
   } catch (error) {}
 }
 
 function handleDownloadOrderNo(row: API.InsuranceOrderListOutput) {
   downloadFileByUrl(setOSSLink(row.orderBillFile));
 }
+
+function handleDetail(row: API.InsuranceOrderListOutput) {
+  router.push({
+    name: 'InsuranceOrderDetail',
+    params: {
+      id: row.id,
+    },
+  });
+}
+function handleBatch(row: API.InsuranceOrderListOutput) {
+  router.push({
+    name: 'BatchChange',
+    params: {
+      id: row.id,
+    },
+  });
+}
+function downloadInsureOrder() {}
+function downloadInsurePerson() {}
 </script>

--
Gitblit v1.9.1