zhengyiming
2025-11-11 8550c7090368487be0a9f13ff5ff955b1ae9d028
src/views/FlexJobManage/FlexJobManage.vue
@@ -101,18 +101,48 @@
          </QueryFilterItem>
        </template>
        <template #btn>
          <el-button @click="handleDownloadTemplate()" type="primary" link>模板下载</el-button>
          <el-button @click="handleBatchImportAdd()" type="primary">批量导入</el-button>
          <el-button @click="handleStaffInfoAdd()" type="primary">新建</el-button>
          <!-- <el-button @click="handleBatchUnSign()" type="primary">批量解约</el-button>
          <el-button @click="handleSendShotMessage()" type="primary">短信发送</el-button>
          <el-button @click="handleBatchSign()" type="primary">批量签约</el-button>
          <el-button @click="handleEnterpriseBatchSign()" type="primary">批量企业签约</el-button> -->
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'importBtn')"
            @click="handleDownloadTemplate()"
            type="primary"
            link
            >模板下载</el-button
          >
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'importBtn')"
            @click="handleBatchImportAdd()"
            type="primary"
            >批量导入</el-button
          >
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'batchUnSignBtn')"
            @click="handleBatchUnSign()"
            type="primary"
            >批量解约</el-button
          >
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'sendShotBtn')"
            @click="handleSendShotMessage()"
            type="primary"
            >短信发送</el-button
          >
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'batchSignBtn')"
            @click="handleBatchSign()"
            type="primary"
            >批量签约</el-button
          >
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'enterpriseBatchSignBtn')"
            @click="handleEnterpriseBatchSign()"
            type="primary"
            >批量企业签约</el-button
          >
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="FlexJobManageColumns"
        :columns="column"
        :operationBtns="operationBtns"
        show-column-check
        ref="proTable"
@@ -146,12 +176,10 @@
  FieldDatePicker,
  FieldRadio,
  FieldSelect,
  defineOperationBtns,
  useFormDialog,
  UploadUserFile,
  XLSXUtils,
} from '@bole-core/components';
import { FlexJobManageColumns } from './constants';
import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants';
import { Message } from '@bole-core/core';
import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
@@ -168,85 +196,59 @@
  name: 'FlexJobManageList',
});
const operationBtns = defineOperationBtns([
  // {
  //   data: {
  //     enCode: 'editBtn',
  //     name: '编辑',
  //   },
  //   emits: {
  //     onClick: (role) => openDialog(role),
  //   },
  // },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
const operationBtnMap: Record<string, OperationBtnType> = {
  editBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
  },
  detailBtn: {
    emits: {
      onClick: (role: API.GetEnterpriseEmployeesQueryResultItem) =>
        handleStaffDetailEdit({ id: role.id, tabType: 'info' }),
    },
  },
  // {
  //   data: {
  //     enCode: 'enterpriseSignBtn',
  //     name: '企业签约',
  //   },
  //   emits: {
  //     onClick: (role) => handleEnterpriseSign(role),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
  //       !(
  //         row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
  //         row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
  //       ),
  //   },
  // },
  // {
  //   data: {
  //     enCode: 'inviteSignBtn',
  //     name: '邀请签约',
  //   },
  //   emits: {
  //     onClick: (role) => handleInviteSign(role),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
  //       !(
  //         row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
  //         row.hireStatus === EnumTaskUserHireStatus.Pass
  //       ),
  //   },
  // },
  // {
  //   data: {
  //     enCode: 'unSignBtn',
  //     name: '解约',
  //   },
  //   emits: {
  //     onClick: (role) => handleUnSign(role),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
  //       !(
  //         row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
  //         row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass
  //       ),
  //   },
  // },
  // {
  //   data: {
  //     enCode: 'delBtn',
  //     name: '删除',
  //   },
  //   props: { type: 'danger' },
  //   emits: {
  //     onClick: (role) => handleDelete(role),
  //   },
  // },
]);
  enterpriseSignBtn: {
    emits: {
      onClick: (role) => handleEnterpriseSign(role),
    },
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
          row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
        ),
    },
  },
  inviteSignBtn: {
    emits: {
      onClick: (role) => handleInviteSign(role),
    },
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
          row.hireStatus === EnumTaskUserHireStatus.Pass
        ),
    },
  },
  unSignBtn: {
    emits: {
      onClick: (role) => handleUnSign(role),
    },
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
          row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass
        ),
    },
  },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();