wupengfei
14 小时以前 d3d8fde64c4df263fd696f1599cb79fe9efb7623
src/views/FlexJobManage/FlexJobManage.vue
@@ -104,6 +104,7 @@
      @onDownloadTemplate="handleDownloadTemplate"
    />
    <SendShotMessageDialog v-bind="dialogShotMessageProps" />
    <SignDialog v-bind="dialogSignProps" />
  </LoadingLayout>
</template>
@@ -128,15 +129,16 @@
import { FlexJobManageColumns } from './constants';
import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants';
import { Message } from '@bole-core/core';
import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format, omitByFalse } from '@/utils';
import StaffInfoDialog from './components/StaffInfoDialog.vue';
import BatchImportDialog from './components/BatchImportDialog.vue';
import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
import SignDialog from './components/SignDialog.vue';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import { ModelValueType } from 'element-plus';
defineOptions({
  name: 'EnterpriseManageList',
  name: 'FlexJobManageList',
});
const operationBtns = defineOperationBtns([
@@ -160,17 +162,33 @@
  },
  {
    data: {
      enCode: 'signBtn',
      name: '签约',
      enCode: 'enterpriseSignBtn',
      name: '企业签约',
    },
    emits: {
      onClick: (role) => handleSign(role),
      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.Wait ||
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Stop
        ),
    },
  },
@@ -247,7 +265,7 @@
        enterpriseSignContractStatus: extraParamState.enterpriseSignContractStatus,
      };
      let res = await enterpriseEmployeeServices.getEnterpriseEmployees(params, {
      let res = await enterpriseEmployeeServices.getEnterpriseEmployees(omitByFalse(params), {
        showLoading: !state.loading,
      });
      return res;
@@ -417,17 +435,18 @@
async function handleSendShotMessage() {
  try {
    Message.warnMessage('功能开发中');
    // const selectionRows = getSelectionRows();
    // if (selectionRows) {
    //   if (selectionRows.some((x) => x.status === 10)) {
    //     await Message.tipMessage('勾选人员中包含已签约完成人员,确认要继续发送短信通知吗?');
    //   }
    //   handleShotMessageAdd({
    //     ids: selectionRows.map((x) => x.id),
    //     name: '人员签约通道短信',
    //   });
    // }
    const selectionRows = getSelectionRows();
    if (selectionRows) {
      if (
        selectionRows.some((x) => x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass)
      ) {
        await Message.tipMessage('勾选人员中包含已签约完成人员,确认要继续发送短信通知吗?');
      }
      handleShotMessageAdd({
        ids: selectionRows.map((x) => x.id),
        name: '人员签约通道短信',
      });
    }
  } catch (error) {}
}
@@ -440,22 +459,82 @@
  downloadFileByUrl(ImportEnterpriseEmployeesTempPath, '批量导入模板');
}
function handleBatchUnSign() {
const {
  dialogProps: dialogSignProps,
  handleAdd: handleSignAdd,
  handleEdit: handleSignEdit,
  editForm: signEditForm,
} = useFormDialog({
  onConfirm: signContract,
  defaultFormParams: {
    id: '',
    contractTemplateId: '',
  },
});
function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  if (row) {
    handleSignEdit({
      id: row.id,
      contractTemplateId: '',
    });
  }
}
function handleBatchSign() {
  const selectionRows = getSelectionRows();
  console.log('selectionRows: ', selectionRows);
  if (selectionRows) {
    const hasSigned = selectionRows?.some(
      (x) =>
        x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
        x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
        x.hireStatus === EnumTaskUserHireStatus.Wait
    );
    if (hasSigned) {
      Message.warnMessage('勾选人员中包含已签约完成或未录用人员');
      return;
    }
    handleSignAdd();
  }
}
async function signContract() {
  try {
    Message.warnMessage('功能开发中');
    let params: API.InviteElectronSignCommand = {
      id: signEditForm.id,
      contractTemplateId: signEditForm.contractTemplateId,
    };
    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function handleSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  Message.warnMessage('功能开发中');
async function handleEnterpriseSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  try {
    let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: row.id });
    if (res) {
      window.open(res?.signContractLongUrl, '_blank');
    }
  } catch (error) {}
}
function handleBatchSign() {
  Message.warnMessage('功能开发中');
}
async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  try {
    await Message.tipMessage('确定解约用户?');
    let res = await enterpriseEmployeeServices.stopElectronSign({ id: row.id });
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function handleBatchUnSign() {
  try {
    Message.warnMessage('功能开发中');
    // await Message.tipMessage('确定解约用户?');
  } catch (error) {}
}