wupengfei
2025-12-03 7ea7cd0ce3faafb0ab881935d88bef7928fc2ca7
src/views/EmploymentManage/EmploymentSignList.vue
@@ -24,11 +24,7 @@
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="EmploymentSignColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <StaffInfoDialog v-bind="dialogStaffInfoProps" />
@@ -45,15 +41,13 @@
  QueryFilterItem,
  useTable,
  FieldRadio,
  defineOperationBtns,
  useFormDialog,
  UploadUserFile,
} from '@bole-core/components';
import { EmploymentSignColumns } from './constants/columns';
import { Message } from '@bole-core/core';
import { EnumUserGender, EnumTaskUserHireStatusText } from '@/constants';
import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue';
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { convertApi2FormUrlOnlyOne, hiddenIDNumberForEnd4 } from '@/utils';
import * as taskUserServices from '@/services/api/taskUser';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
@@ -61,49 +55,43 @@
  name: 'EmploymentSignList',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
  },
  // {
  //   data: {
  //     enCode: 'recruitBtn',
  //     name: '录用',
  //   },
  //   emits: {
  //     onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetTaskUsersQueryResultItem) =>
  //       row.hireStatus === EnumTaskUserHireStatus.Pass,
  //   },
  // },
  // {
  //   data: {
  //     enCode: 'refuseBtn',
  //     name: '谢绝',
  //   },
  //   emits: {
  //     onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetTaskUsersQueryResultItem) =>
  //       row.hireStatus !== EnumTaskUserHireStatus.Wait,
  //   },
  // },
]);
  recruitBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
        row.hireStatus === EnumTaskUserHireStatus.Pass || !state.isInternal,
    },
  },
  refuseBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
        row.hireStatus !== EnumTaskUserHireStatus.Wait || !state.isInternal,
    },
  },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const route = useRoute();
const id = route.params.id as string;
const BaseState = {
  loading: true,
  isInternal: false,
};
const state = reactive({ ...BaseState });
@@ -136,6 +124,9 @@
      let res = await taskUserServices.getTaskUsers(params, {
        showLoading: !state.loading,
      });
      if (res) {
        state.isInternal = res.objectData?.isInternal;
      }
      return res;
    } catch (error) {
      console.log('error: ', error);
@@ -151,6 +142,11 @@
    columnsRenderProps: {
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
      identity: {
        formatter: (row: API.GetTaskUsersQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);