wupengfei
13 小时以前 9c8b6d1cf6b43c6652b5183cd0183e8e257001f7
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
  <ProTabs
    v-model="queryState.userSignContractStatus"
    v-model="queryState.status"
    name="home-tab"
    :showPaneContent="false"
    class="home-tabs"
@@ -8,14 +8,15 @@
    title-gutter="12"
    title-scroll
  >
    <ProTabPane :title="`已签约`" :pane-key="EnumTaskUserSignContractStatus.Pass"></ProTabPane>
    <ProTabPane :title="`待签约`" :pane-key="EnumTaskUserSignContractStatus.Wait"></ProTabPane>
    <ProTabPane :title="`已解约`" :pane-key="EnumTaskUserSignContractStatus.Refuse"></ProTabPane>
    <ProTabPane :title="`灵工待签约`" :pane-key="Status.FlexJobWait"></ProTabPane>
    <ProTabPane :title="`企业待签约`" :pane-key="Status.EnterpriseWait"></ProTabPane>
    <ProTabPane :title="`已签约`" :pane-key="Status.Pass"></ProTabPane>
    <!-- <ProTabPane :title="`已解约`" :pane-key="EnumTaskUserSignContractStatus.Stop"></ProTabPane> -->
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
    :key="queryState.userSignContractStatus"
    :key="queryState.status"
  >
    <template #renderItem="{ item }">
      <FlexJobCard
@@ -34,25 +35,30 @@
        @click="goDetail(item)"
      >
        <template #footerRight>
          <span></span>
          <!-- <template
            v-if="queryState.userSignContractStatus === EnumTaskUserSignContractStatus.Pass"
          <template
            v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass"
          >
            <nut-button
              class="flexJobManage-card-plain-button"
              type="default"
              plain
              @click.stop="handleUnContract"
              @click.stop="handleUnsign(item)"
              >解约</nut-button
            >
            <nut-button type="primary" @click.stop="checkContract">查看合约</nut-button>
            <nut-button type="primary" @click.stop="checkContract(item)">查看合约</nut-button>
          </template>
          <nut-button
            v-else-if="queryState.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"
            v-if="item.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"
            type="primary"
            @click.stop="goSignContract(item)"
            >签约</nut-button
          > -->
            @click.stop="goFlexJobSign(item)"
            >邀请签约</nut-button
          >
          <nut-button
            v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait"
            type="primary"
            @click.stop="goFlexJobSign(item)"
            >企业签约</nut-button
          >
        </template>
      </FlexJobCard>
    </template>
@@ -70,16 +76,23 @@
} from '@12333/constants';
import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
import Taro from '@tarojs/taro';
import { Message, openDocument, setOSSLink } from '@12333/utils';
defineOptions({
  name: 'InnerPage',
});
const enum Status {
  FlexJobWait = 1,
  EnterpriseWait = 2,
  Pass = 3,
}
const queryState = reactive({
  userSignContractStatus: EnumTaskUserSignContractStatus.Pass,
  status: Status.FlexJobWait,
});
const { infiniteLoadingProps } = useInfiniteLoading(
const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetEnterpriseEmployeesQuery = {
      pageModel: {
@@ -88,8 +101,16 @@
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
      hireStatus: EnumTaskUserHireStatus.Pass,
      userSignContractStatus: queryState.userSignContractStatus,
    };
    if (Number(queryState.status) === Status.FlexJobWait) {
      params.userSignContractStatus = EnumTaskUserSignContractStatus.Wait;
    }
    if (Number(queryState.status) === Status.EnterpriseWait) {
      params.enterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait;
    }
    if (Number(queryState.status) === Status.Pass) {
      params.userSignContractStatus = EnumTaskUserSignContractStatus.Pass;
    }
    return enterpriseEmployeeServices.getEnterpriseEmployees(params, {
      showLoading: false,
@@ -100,17 +121,36 @@
  }
);
function checkContract(item: API.GetEnterpriseEmployeesQueryResultItem) {
  if (!item.contractUrl) {
    Message.warning('协议无法查看,请稍后再试');
    return;
  }
  openDocument(setOSSLink(item.contractUrl));
}
function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.flexJobDetailFromManage}?enterpriseEmployeeId=${item.id}`,
  });
}
function checkContract() {}
function handleUnContract() {}
function goSignContract(item: API.GetNewestWorkerListOutput) {
async function handleUnsign(item: API.GetEnterpriseEmployeesQueryResultItem) {
  try {
    await Message.confirm({ message: '确定要解约吗?' });
    let params: API.StopElectronSignCommand = {
      ids: [item.id],
    };
    let res = await enterpriseEmployeeServices.stopElectronSign(params);
    if (res) {
      Message.success('解约成功');
      invalidateQueries();
    }
  } catch (error) {}
}
function goFlexJobSign(item: API.GetEnterpriseEmployeesQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.flexJobSign}`,
    url: `${RouterPath.flexJobSign}?enterpriseEmployeeId=${item.id}`,
  });
}
</script>