From e81667dd6befdd9aa2bb130ceac18eed03fb45b0 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 十二月 2025 15:22:24 +0800
Subject: [PATCH] feat: 保险

---
 src/views/CustomerManage/CustomerManage.vue |  106 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 82 insertions(+), 24 deletions(-)

diff --git a/src/views/CustomerManage/CustomerManage.vue b/src/views/CustomerManage/CustomerManage.vue
index b255d5c..5e5ce8d 100644
--- a/src/views/CustomerManage/CustomerManage.vue
+++ b/src/views/CustomerManage/CustomerManage.vue
@@ -3,6 +3,24 @@
     <AppContainer>
       <ProTableQueryFilterBar @on-reset="reset">
         <template #query>
+          <QueryFilterItem tip-content="鍚堜綔鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.cooperationStatus"
+              :value-enum="EnumEnterpriseCooperationStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="绛剧害鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.signStatus"
+              :value-enum="EnumEnterpriseCooperationSignStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
           <QueryFilterItem>
             <SearchInput
               v-model="extraParamState.keywords"
@@ -15,6 +33,7 @@
         </template>
         <template #btn>
           <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
             @click="goAddOrEdit()"
             icon="Plus"
             type="primary"
@@ -22,7 +41,7 @@
           >
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2 v-bind="proTableProps" :columns="CustomerManageColumns" :operationBtns="operationBtns">
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -31,43 +50,48 @@
 <script setup lang="ts">
 import {
   ProTableQueryFilterBar,
-  OperationBtnType,
+  FieldRadio,
   ProTableV2,
   SearchInput,
   LoadingLayout,
   AppContainer,
   QueryFilterItem,
   useTable,
-  useFormDialog,
-  defineOperationBtns
 } from '@bole-core/components';
-import * as taskServices from '@/services/api/task';
-import {CustomerManageColumns} from './constants';
+import * as enterpriseServices from '@/services/api/enterprise';
+import {
+  EnumEnterpriseCooperationStatusText,
+  EnumEnterpriseCooperationSignStatusText,
+} from '@/constants';
 
 defineOptions({
   name: 'CustomerManage',
 });
 
-const operationBtns=defineOperationBtns([
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '鏌ョ湅',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role) => goDetail(role),
     },
   },
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+  editBtn: {
     emits: {
       onClick: (role) => goAddOrEdit(role),
     },
   },
-])
+  insureConfigureBtn: {
+    emits: {
+      onClick: (role) => goInsureProductConfigure(role),
+    },
+    extraProps: {
+      hide: (role: API.GetPartyAEnterprisesQueryResultItem) => !role.isConfigured,
+    },
+  },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const BaseState = {
   loading: true,
@@ -99,16 +123,18 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetTaskInfosQuery = {
+      let params: API.GetPartyAEnterprisesQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
         keywords: extraParamState.keywords,
+        cooperationStatus: extraParamState.cooperationStatus,
+        signStatus: extraParamState.signStatus,
       };
 
-      let res = await taskServices.getTaskInfos(params, {
+      let res = await enterpriseServices.getPartyAEnterprises(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -117,14 +143,37 @@
   {
     defaultExtraParams: {
       keywords: '',
-        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      cooperationStatus: '' as any as EnumEnterpriseCooperationStatus,
+      signStatus: '' as any as EnumEnterpriseCooperationSignStatus,
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['enterpriseServices/getPartyAEnterprises'],
+    columnsRenderProps: {
+      cooperationStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationStatusText },
+      signStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationSignStatusText },
+      serviceFeeCollectType: {
+        type: 'enum',
+        valueEnum: EnumEnterpriseCooperationServiceFeeCollectTypeText,
+      },
+      invoiceTaxPointRate: {
+        formatter: (row: API.GetPartyAEnterprisesQueryResultItem) => {
+          if (row.invoiceTaxPointRate) {
+            return `${row.invoiceTaxPointRate}%`;
+          }
+          return '';
+        },
+      },
+      isConfigured: {
+        formatter: (row: API.GetPartyAEnterprisesQueryResultItem) =>
+          row.isConfigured ? '宸查厤缃�' : '鏈厤缃�',
+      },
     },
   }
 );
 
-const router=useRouter();
+const router = useRouter();
 
-function goAddOrEdit(row?: API.GetTaskInfosQueryResultItem) {
+function goAddOrEdit(row?: API.GetPartyAEnterprisesQueryResultItem) {
   router.push({
     name: 'AddOrEditCustomer',
     params: {
@@ -133,7 +182,7 @@
   });
 }
 
-function goDetail(row: API.GetTaskInfosQueryResultItem) {
+function goDetail(row: API.GetPartyAEnterprisesQueryResultItem) {
   router.push({
     name: 'CustomerDetail',
     params: {
@@ -141,4 +190,13 @@
     },
   });
 }
+
+function goInsureProductConfigure(row: API.GetPartyAEnterprisesQueryResultItem) {
+  router.push({
+    name: 'InsureProductConfigure',
+    params: {
+      id: row?.id ?? '',
+    },
+  });
+}
 </script>

--
Gitblit v1.9.1