zhengyiming
2025-09-17 81adf03a60f6b4452be4e3ad1f9e3915e0c78bf6
src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -80,7 +80,7 @@
        <ProTableV2
          v-bind="proTableProps"
          :columns="SettlementListColumns"
          :show-operation-column="false"
          :operationBtns="operationBtns"
          :auto-height="false"
          ref="proTable"
          :tableProps="{
@@ -134,7 +134,15 @@
import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
import SettleDetailDialog from './components/SettleDetailDialog.vue';
import { Message } from '@bole-core/core';
import { downloadFile, paginateList, setOssFileName, toThousand } from '@/utils';
import { SettlementReceiveStatusText } from '@/constants';
import {
  downloadFile,
  downloadFileByUrl,
  paginateList,
  setOssFileName,
  setOSSLink,
  toThousand,
} from '@/utils';
import _ from 'lodash';
defineOptions({
@@ -152,12 +160,14 @@
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: () => !isSettlement.value,
    },
  },
]);
const route = useRoute();
const id = (route.params.id as string) ?? '';
const settlement = (route.query.settlement as string) ?? '';
const isSettlement = computed(() => !!settlement);
const form = reactive({
@@ -178,7 +188,7 @@
const state = reactive({ ...BaseState });
const { isLoading } = useQuery({
const { isLoading, refetch } = useQuery({
  queryKey: ['taskUserServices/getSettlementTaskUsers', id],
  queryFn: async () => {
    return await taskUserServices.getSettlementTaskUsers(
@@ -196,8 +206,8 @@
      form.settlementAmount = res?.detail?.settlementAmount ?? 0;
      form.actualSettlementAmount = res?.detail?.actualSettlementAmount ?? 0;
      form.code = res?.detail?.code;
      form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
      form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
      // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
      // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
    }
    // if (res?.errors?.length > 0) {
    //   Message.tipMessage('存在导入错误的数据,是否导出?').then(() => {
@@ -265,6 +275,7 @@
      settlementTime: { type: 'date' },
      settlementAmount: { type: 'money' },
      actualSettlementAmount: { type: 'money' },
      settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText },
    },
  }
);
@@ -307,6 +318,7 @@
    let res = await taskServices.editTaskSettlementOrderRoster(params);
    if (res) {
      Message.successMessage('操作成功');
      refetch();
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
@@ -327,9 +339,32 @@
    let res = await taskServices.importTaskSettlementOrderRosters(params);
    if (res) {
      Message.successMessage('操作成功');
      refetch();
      getList(paginationState.pageIndex);
      if (res?.errors?.length > 0) {
        Message.tipMessage('存在导入错误的数据,是否导出?').then(() => {
          XLSXUtils.exportToXLSX({
            workbookDataList: res.errors,
            fileName: '结算导入-错误数据',
            workbookHeaderMap: {
              name: '姓名',
              identity: '身份证号',
              taskName: '任务名称',
              settlementAmount: '结算金额',
              actualSettlementAmount: '实发金额',
              receiveAccount: '收款账户',
              bank: '所属银行',
              bankBranch: '开户支行名称',
              errorMessage: '错误信息',
            },
          });
        });
      }
    }
  } catch (error) {}
  } catch (error) {
  } finally {
    form.settlementUrl = [] as UploadUserFile[];
  }
}
function handleSubmit() {
@@ -385,12 +420,9 @@
      let params: API.ExportTaskSettlementOrderRostersCommand = {
        id: id,
      };
      let res = await taskServices.exportTaskSettlementOrderRosters(params, {
        responseType: 'blob',
        getResponse: true,
      });
      let res = await taskServices.exportTaskSettlementOrderRosters(params);
      if (res) {
        downloadFile(res, `${form.name}-${form.code}`, 'xlsx');
        downloadFileByUrl(setOSSLink(res), `${form.name}-${form.code}`);
      }
    } catch (error) {}
  },