wupengfei
2025-11-12 8d1d92a4baad8df0814a712224112f4b8eefc9d6
src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -1,5 +1,5 @@
<template>
  <LoadingLayout :loading="state.loading">
  <LoadingLayout v-loading="state.loading">
    <AppContainer>
      <el-card class="query-filter-bar-wrapper" shadow="never">
        <ProForm :model="taskInfo" is-read>
@@ -16,7 +16,7 @@
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="服务费金额:">
                {{ `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}` }}
                {{ OrderUtils.getServiceFeeText(taskInfo.serviceFee, taskInfo.billingMethod) }}
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -40,11 +40,7 @@
        </ProForm>
      </el-card>
      <ProTableV2
        v-bind="proTableProps"
        :columns="CheckReceiveTaskDetailColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <CheckManageDialog v-bind="dialogProps" />
@@ -59,18 +55,15 @@
  AppContainer,
  useTable,
  useFormDialog,
  defineOperationBtns,
  ProForm,
  ProFormCol,
  ProFormColItem,
  ProFormItemV2,
  ProTableQueryFilterBar,
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import * as taskServices from '@/services/api/task';
import { useQuery } from '@tanstack/vue-query';
import { CheckReceiveTaskDetailColumns } from './constants';
import { EnumBillingMethodUnitText } from '@/constants';
import { OrderUtils } from '@/utils';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
@@ -79,30 +72,29 @@
  name: 'CheckReceiveTaskDetail',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'exportBtn',
      name: '验收',
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
  exportBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
        row.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed,
        !(
          row.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive &&
          row.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.Submit)
        ),
    },
  },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
]);
};
const { column, operationBtns } = useAccess({
  operationBtnMap,
});
const route = useRoute();
const id = (route.params.id as string) ?? '';
@@ -122,7 +114,7 @@
const BaseState = {
  loading: true,
  checkReceiveMethod: '' as any as EnumTaskCheckReceiveMethod,
  checkReceiveMethods: [] as any as EnumTaskCheckReceiveMethod[],
};
const state = reactive({ ...BaseState });
@@ -158,7 +150,7 @@
      let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
        showLoading: !state.loading,
      });
      state.checkReceiveMethod = res.objectData?.checkReceiveMethod;
      state.checkReceiveMethods = res.objectData?.checkReceiveMethods;
      return res;
    } catch (error) {}
  },
@@ -175,21 +167,27 @@
);
function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) {
  if (state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
    handleManualEdit({
      id: row.id,
    });
  } else {
    handleEdit({
      id: row.id,
      isDetail,
    });
  }
  // if (state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
  //   handleManualEdit({
  //     id: row.id,
  //   });
  // } else {
  handleEdit({
    id: row.id,
    tabType: state.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.CheckIn)
      ? 'signRecord'
      : '',
    checkReceiveMethods: state.checkReceiveMethods,
    isDetail,
  });
  // }
}
const { dialogProps, handleEdit } = useFormDialog({
  defaultFormParams: {
    id: '',
    tabType: '',
    checkReceiveMethods: [] as any as EnumTaskCheckReceiveMethod[],
    isDetail: false,
  },
});