wupengfei
2025-09-17 a80f77974b2e463db42b839c57ff09370a98649b
feat: 财务管理
1个文件已删除
12个文件已修改
208 ■■■■■ 已修改文件
.eslintrc-auto-import.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/components/CheckManageDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/FinanceManage.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/components/DistributionDetailView.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/components/UsageDetailView.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/constants/columns.ts 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/hooks/financeHooks.ts 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ServiceChargeManage/ServiceChargeDetail.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ServiceChargeManage/constants/columns.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -135,6 +135,8 @@
    "OssUserSign": true,
    "PropType": true,
    "Ref": true,
    "SettlementReceiveStatus": true,
    "SettlementReceiveStatusText": true,
    "Slot": true,
    "Slots": true,
    "SubModuleKey": true,
auto-imports.d.ts
@@ -133,6 +133,8 @@
  const OssRich: typeof import('./src/constants/oss')['OssRich']
  const OssUser: typeof import('./src/constants/oss')['OssUser']
  const OssUserSign: typeof import('./src/constants/oss')['OssUserSign']
  const SettlementReceiveStatus: typeof import('./src/constants/apiEnum')['SettlementReceiveStatus']
  const SettlementReceiveStatusText: typeof import('./src/constants/task')['SettlementReceiveStatusText']
  const SubModuleKey: typeof import('./src/constants/module')['SubModuleKey']
  const SubModuleTitle: typeof import('./src/constants/module')['SubModuleTitle']
  const SubModuleType: typeof import('./src/constants/module')['SubModuleType']
@@ -252,7 +254,7 @@
  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  import('vue')
  // @ts-ignore
  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -407,6 +409,8 @@
    readonly OssRich: UnwrapRef<typeof import('./src/constants/oss')['OssRich']>
    readonly OssUser: UnwrapRef<typeof import('./src/constants/oss')['OssUser']>
    readonly OssUserSign: UnwrapRef<typeof import('./src/constants/oss')['OssUserSign']>
    readonly SettlementReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['SettlementReceiveStatus']>
    readonly SettlementReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['SettlementReceiveStatusText']>
    readonly SubModuleKey: UnwrapRef<typeof import('./src/constants/module')['SubModuleKey']>
    readonly SubModuleTitle: UnwrapRef<typeof import('./src/constants/module')['SubModuleTitle']>
    readonly SubModuleType: UnwrapRef<typeof import('./src/constants/module')['SubModuleType']>
src/constants/apiEnum.ts
@@ -417,6 +417,10 @@
  InProcess = 20,
  /**已结算 */
  Completed = 30,
  /**部分结算 */
  Part = 40,
  /**结算失败 */
  Fail = 50,
}
/** 任务安排状态 */
@@ -566,3 +570,11 @@
  /**已完成 */
  Completed = 20,
}
/** 结算到账状态 */
export enum SettlementReceiveStatus {
  /**已到账 */
  Completed = 10,
  /**已退款 */
  Refunded = 20,
}
src/constants/task.ts
@@ -132,11 +132,17 @@
  [EnumTaskSettlementOrderStatus.Wait]: '待上传',
  [EnumTaskSettlementOrderStatus.Completed]: '已上传',
};
export const SettlementReceiveStatusText = {
  [SettlementReceiveStatus.Completed]: '已到账',
  [SettlementReceiveStatus.Refunded]: '已退款',
};
export const EnumTaskSettlementStatusText = {
  [EnumTaskSettlementStatus.Wait]: '待结算',
  [EnumTaskSettlementStatus.InProcess]: '结算中',
  [EnumTaskSettlementStatus.Completed]: '已结算',
  [EnumTaskSettlementStatus.Part]: '部分结算',
  [EnumTaskSettlementStatus.Fail]: '结算失败',
};
export const EnumPersonalFreeTimeText = {
src/services/api/typings.d.ts
@@ -900,6 +900,10 @@
    InProcess = 20,
    /**已结算 */
    Completed = 30,
    /**部分结算 */
    Part = 40,
    /**结算失败 */
    Fail = 50,
  }
  enum EnumTaskStatus {
@@ -3286,6 +3290,7 @@
    enterpriseSignContractTime?: string;
    /** 电子合同 */
    contractUrl?: string;
    createdTime?: string;
  }
  type GetEnterpriseLoginInfoQuery = Record<string, any>;
@@ -4147,6 +4152,13 @@
    balance?: number;
    /** 企业名称 */
    enterpriseName?: string;
    /** 任务名称 */
    taskName?: string;
    /** 结算单名称 */
    settlementOrderName?: string;
    settlementStatus?: EnumTaskSettlementStatus;
    /** 结算时间 */
    settlementTime?: string;
    /** 付款人账户 */
    payerAccount?: string;
    /** 付款人名称 */
@@ -4470,7 +4482,6 @@
    identity?: string;
    /** 手机号 */
    contactPhoneNumber?: string;
    settlementStatus?: EnumTaskSettlementStatus;
    /** 所属银行 */
    bank?: string;
    /** 开户支行名称 */
@@ -4481,6 +4492,8 @@
    settlementAmount?: number;
    /** 实发金额 */
    actualSettlementAmount?: number;
    settlementReceiveStatus?: SettlementReceiveStatus;
    settlementStatus?: EnumTaskSettlementStatus;
    /** 结算时间 */
    settlementTime?: string;
  }
@@ -5111,18 +5124,18 @@
    name?: string;
    /** 身份证号 */
    identity?: string;
    /** 结算金额 */
    settlementAmount?: number;
    /** 实发金额 */
    actualSettlementAmount?: number;
    /** 收款账户 */
    receiveAccount?: string;
    /** 手机号 */
    contactPhoneNumber?: string;
    /** 所属银行 */
    bank?: string;
    /** 开户支行名称 */
    bankBranch?: string;
    /** 任务名称 */
    taskName?: string;
    /** 收款账户 */
    receiveAccount?: string;
    /** 结算金额 */
    settlementAmount?: number;
    /** 实发金额 */
    actualSettlementAmount?: number;
  }
  interface InviteElectronSignCommand {
@@ -5819,6 +5832,13 @@
    hireStatus?: EnumTaskUserHireStatus;
  }
  enum SettlementReceiveStatus {
    /**已到账 */
    Completed = 10,
    /**已退款 */
    Refunded = 20,
  }
  interface SetUserInfoRolesCommand {
    /** 用户Id */
    userInfoId?: string;
src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -167,7 +167,7 @@
        type: 'url',
        //@ts-ignore
        formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
          (row.files ?? []).map((x) => setOSSLink(x)),
          row.files?.length > 0 && (row.files ?? []).map((x) => setOSSLink(x)),
        showDownloadBtn: false,
      },
    },
src/views/FinanceManage/FinanceManage.vue
@@ -4,9 +4,9 @@
      <ProTabPane lazy label="发放明细" :name="FinanceTabType.DistributionDetail">
        <DistributionDetailView />
      </ProTabPane>
      <ProTabPane lazy label="用量明细" :name="FinanceTabType.UsageDetail">
      <!-- <ProTabPane lazy label="用量明细" :name="FinanceTabType.UsageDetail">
        <UsageDetailView />
      </ProTabPane>
      </ProTabPane> -->
    </ProTabs>
  </AppContainer>
</template>
src/views/FinanceManage/components/DistributionDetailView.vue
@@ -4,7 +4,7 @@
      <ProTableV2
        v-bind="proTableProps"
        :columns="DistributionDetailColumns"
        :operationBtns="operationBtns"
        :showOperationColumn="false"
      >
      </ProTableV2>
    </AppContainer>
@@ -20,8 +20,8 @@
  defineOperationBtns,
} from '@bole-core/components';
import { DistributionDetailColumns } from '../constants';
import * as taskServices from '@/services/api/task';
import { usePersonalUserTransactions } from '../hooks/financeHooks';
import * as userServices from '@/services/api/user';
import { EnumTaskSettlementStatusText } from '@/constants';
defineOptions({
  name: 'DistributionDetailView',
@@ -35,9 +35,38 @@
const state = reactive({ ...BaseState });
const { getList, proTableProps } = usePersonalUserTransactions({
  type: EnumUserWalletTransactionType.Withdraw,
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetPersonalUserTransactionsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        type: EnumUserWalletTransactionType.Income,
      };
      let res = await userServices.getPersonalUserTransactions(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {
      amount: { type: 'money' },
      settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
      settlementTime: { type: 'date' },
    },
  }
);
onMounted(async () => {
  await getList();
src/views/FinanceManage/components/UsageDetailView.vue
@@ -10,8 +10,7 @@
<script setup lang="ts">
import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
import { UsageDetailColumns } from '../constants';
import * as taskServices from '@/services/api/task';
import { usePersonalUserTransactions } from '../hooks/financeHooks';
import * as userServices from '@/services/api/user';
defineOptions({
  name: 'UsageDetailView',
@@ -22,9 +21,34 @@
};
const state = reactive({ ...BaseState });
const { getList, proTableProps } = usePersonalUserTransactions({
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetPersonalUserTransactionsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
  type: EnumUserWalletTransactionType.Income,
});
      };
      let res = await userServices.getPersonalUserTransactions(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
  }
);
onMounted(async () => {
  await getList();
src/views/FinanceManage/constants/columns.ts
@@ -3,42 +3,42 @@
export const DistributionDetailColumns = defineColumns([
  {
    id: '1',
    enCode: 'name',
    enCode: 'enterpriseName',
    name: '所属客户',
  },
  {
    id: '2',
    enCode: 'name',
    enCode: 'taskName',
    name: '所属任务',
  },
  {
    id: '3',
    enCode: 'name',
    enCode: 'settlementOrderName',
    name: '结算单名称',
  },
  {
    id: '4',
    enCode: 'name',
    enCode: 'payerName',
    name: '姓名',
  },
  {
    id: '5',
    enCode: 'name',
    enCode: 'payerContactPhoneNumber',
    name: '手机号',
  },
  {
    id: '6',
    enCode: 'name',
    enCode: 'amount',
    name: '结算金额',
  },
  {
    id: '7',
    enCode: 'signNum',
    enCode: 'settlementStatus',
    name: '结算状态',
  },
  {
    id: '8',
    enCode: 'name',
    enCode: 'settlementTime',
    name: '结算日期',
  },
]);
src/views/FinanceManage/hooks/financeHooks.ts
File was deleted
src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -134,6 +134,7 @@
import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
import SettleDetailDialog from './components/SettleDetailDialog.vue';
import { Message } from '@bole-core/core';
import { SettlementReceiveStatusText } from '@/constants';
import {
  downloadFile,
  downloadFileByUrl,
@@ -274,6 +275,7 @@
      settlementTime: { type: 'date' },
      settlementAmount: { type: 'money' },
      actualSettlementAmount: { type: 'money' },
      settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText },
    },
  }
);
src/views/ServiceChargeManage/constants/columns.ts
@@ -106,6 +106,11 @@
  },
  {
    id: '9',
    enCode: 'settlementReceiveStatus',
    name: '到账状态',
  },
  {
    id: '10',
    enCode: 'settlementTime',
    name: '结算时间',
  },