wupengfei
2 天以前 85c2df026e79b6813e482af4e6ea124dac1fc112
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>
@@ -32,7 +32,7 @@
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="发布日期:">
              <ProFormItemV2 label="结束日期:">
                {{ dayjs(taskInfo.endTime ?? '').format('YYYY-MM-DD') }}
              </ProFormItemV2>
            </ProFormColItem>
@@ -40,14 +40,11 @@
        </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" />
    <ManualCheckManageDialog v-bind="dialogManualProps" />
  </LoadingLayout>
</template>
@@ -58,49 +55,47 @@
  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 { hiddenIDNumberForEnd4, OrderUtils } from '@/utils';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
defineOptions({
  name: 'CheckReceiveTaskDetail',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'exportBtn',
      name: '验收',
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
  acceptanceBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.WaitCheckReceive,
        !(
          (row.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
            row.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit) &&
          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) ?? '';
@@ -120,6 +115,7 @@
const BaseState = {
  loading: true,
  checkReceiveMethods: [] as any as EnumTaskCheckReceiveMethod[],
};
const state = reactive({ ...BaseState });
@@ -155,6 +151,7 @@
      let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
        showLoading: !state.loading,
      });
      state.checkReceiveMethods = res.objectData?.checkReceiveMethods;
      return res;
    } catch (error) {}
  },
@@ -166,21 +163,44 @@
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      lastSubmitTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
      identity: {
        formatter: (row: API.GetCheckReceiveTaskQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) {
  // 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,
  },
});
const { dialogProps: dialogManualProps, handleEdit: handleManualEdit } = useFormDialog({
  defaultFormParams: {
    id: '',
  },
});
</script>