zhengyiming
2025-10-16 a2d490cc8d10e7b4cedb23919f088bf67a6dc20e
src/views/Home/Home.vue
@@ -113,6 +113,8 @@
    <UploadInsurePersonDialog v-bind="dialogProps" />
    <UploadStampFileDialog v-bind="dialogStampFileProps" />
    <InsureInstructionsDialog v-bind="dialogInstructionsProps" />
    <InsureLineModeSelectDialog v-bind="dialogLineModeSelectProps" />
    <DisbursementDialog v-bind="dialogDisbursementProps" />
  </LoadingLayout>
</template>
@@ -134,8 +136,9 @@
  useDialog,
} from '@bole-core/components';
import * as insuranceOrderServices from '@/services/api/InsuranceOrder';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { Message, OrderInputType, downloadFileByUrl } from '@bole-core/core';
import { columns } from './constants';
import { columns, InsureLineMode } from './constants';
import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue';
import UploadStampFileDialog from './components/UploadStampFileDialog.vue';
import {
@@ -166,6 +169,8 @@
import dayjs from 'dayjs';
import _ from 'lodash';
import InsureInstructionsDialog from './components/InsureInstructionsDialog.vue';
import InsureLineModeSelectDialog from './components/InsureLineModeSelectDialog.vue';
import DisbursementDialog from './components/DisbursementDialog.vue';
import { useInsureProductSchemeAllList, useUserInsureProductSetting } from '@/hooks';
// import { Recorder } from '@/utils/record';
@@ -205,8 +210,16 @@
      onClick: (role) => handleUploadStampFile(role),
    },
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) =>
        row.status !== InsurancePolicyStatusEnum.WaitEffect,
      hide: (row: API.GetInsurancePageOutput) => {
        if (row.productOnline) {
          return (
            row.auditStatus !== InsurancePolicyAuditStatusEnum.WaitAdd &&
            row.auditStatus !== InsurancePolicyAuditStatusEnum.WaitAudit
          );
        } else {
          return row.status !== InsurancePolicyStatusEnum.WaitEffect;
        }
      },
    },
  },
  {
@@ -279,6 +292,18 @@
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) =>
        row.auditStatus != InsurancePolicyAuditStatusEnum.WaitAdd,
    },
  },
  {
    data: {
      enCode: 'applyTradeBySelfBtn',
      name: '出账申请',
    },
    emits: {
      onClick: (role) => handleParkBountyApplyTradeBySelf(role),
    },
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) => row.productOnline,
    },
  },
]).filter(Boolean);
@@ -477,13 +502,27 @@
  } catch (error) {}
}
const { dialogProps: dialogLineModeSelectProps, dialogState: dialogLineModeSelectState } =
  useDialog({
    onConfirm: handleLineModeSelect,
  });
async function handleLineModeSelect(mode: InsureLineMode) {
  if (mode === InsureLineMode.OnLine) {
    dialogInstructionsState.dialogVisible = true;
  } else {
    handleUpload();
  }
}
const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog({
  onConfirm: handleUpload,
});
function handleOpenInstructions() {
  if (isSjbAccount.value) {
    dialogInstructionsState.dialogVisible = true;
    // dialogInstructionsState.dialogVisible = true;
    dialogLineModeSelectState.dialogVisible = true;
  } else {
    handleUpload();
  }
@@ -689,4 +728,50 @@
    }
  } catch (error) {}
}
function handleParkBountyApplyTradeBySelf(row: API.GetInsurancePageOutput) {
  handleDisbursementAdd({
    remianAmount: row.remianAmount,
  });
}
const {
  dialogProps: dialogDisbursementProps,
  handleAdd: handleDisbursementAdd,
  editForm: editDisbursementForm,
} = useFormDialog({
  onConfirm: parkBountyApplyTradeBySelf,
  defaultFormParams: {
    payRemark: '',
    tradeAmount: 0,
    remianAmount: 0,
    payFileUrl: [] as UploadUserFile[],
    incomeCompanyName: '',
    insureBillNo: '',
    incomeBankAccount: '',
    incomeBankCardNumber: '',
    incomeBankName: '',
  },
});
async function parkBountyApplyTradeBySelf() {
  try {
    let params: API.CreateParkBountyTradeInput = {
      tradeAmount: editDisbursementForm.tradeAmount,
      payFileUrl: editDisbursementForm.payFileUrl.map((item) => item.url).join('|'),
      payRemark: editDisbursementForm.payRemark,
      incomeCompanyName: editDisbursementForm.incomeCompanyName,
      insureBillNo: editDisbursementForm.insureBillNo,
      incomeBankAccount: editDisbursementForm.incomeBankAccount,
      incomeBankCardNumber: editDisbursementForm.incomeBankCardNumber,
      incomeBankName: editDisbursementForm.incomeBankName,
    };
    let res = await parkBountyApplyServices.parkBountyApplyTradeBySelf(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
</script>