wupengfei
5 天以前 fea063f5c7fdf79d56ada2dd2b8045a44ca2db44
src/views/EmploymentManage/EmploymentManage.vue
@@ -3,49 +3,41 @@
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="录用状态">
          <QueryFilterItem tip-content="任务状态">
            <FieldRadio
              v-model="extraParamState.flexEnterpriseSettingStatus"
              :value-enum="[
                { label: '已安排', value: 1 },
                { label: '待安排', value: 0 },
              ]"
              v-model="extraParamState.status"
              :value-enum="EnumTaskStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="实名状态">
          <QueryFilterItem tip-content="发布状态">
            <FieldRadio
              v-model="extraParamState.flexEnterpriseSettingStatus"
              :value-enum="[
                { label: '发布中', value: 1 },
                { label: '已停止', value: 0 },
              ]"
              v-model="extraParamState.releaseStatus"
              :value-enum="EnumTaskReleaseStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem>
          <QueryFilterItem tip-content="发布时间">
            <FieldDatePicker
              v-model="extraParamState.flexEnterpriseSettingStatus"
              v-model="extraParamState.time"
              type="daterange"
              range-separator="~"
              start-placeholder="起始日期"
              end-placeholder="截止日期"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              clearable
              @change="getList()"
              tooltipContent="发布时间"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.searchWord"
              style="width: 250px"
              v-model="extraParamState.keywords"
              style="width: 260px"
              placeholder="任务名称"
              @on-click-search="getList"
              @keyup.enter="getList()"
            >
            </SearchInput>
          </QueryFilterItem>
@@ -59,8 +51,10 @@
        :columns="EmploymentManageColumns"
        :operationBtns="operationBtns"
      >
        <template #signNum="{ row }">
          <el-button link type="primary" @click="goSignList(row)">{{ row.signNum || 0 }}</el-button>
        <template #userCount="{ row }">
          <el-button link type="primary" @click="goSignList(row)">{{
            row.userCount || 0
          }}</el-button>
        </template>
      </ProTableV2>
    </AppContainer>
@@ -80,11 +74,13 @@
  FieldRadio,
  defineOperationBtns,
} from '@bole-core/components';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import { EmploymentManageColumns } from './constants';
import { FlexEnterpriseSettingStatus, Gender } from '@/constants';
import { OrderInputType } from '@bole-core/core';
import { EnumTaskStatusText, EnumTaskReleaseStatusText } from '@/constants';
import { useGlobalEventContext } from '@/hooks';
import * as taskServices from '@/services/api/task';
import { format } from '@/utils';
import { ModelValueType } from 'element-plus';
import { Message } from '@bole-core/core';
defineOptions({
  name: 'EmploymentManageList',
@@ -106,7 +102,7 @@
      name: '详情',
    },
    emits: {
      onClick: (role) => goDetail(role),
      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
    },
  },
  {
@@ -115,10 +111,12 @@
      name: '发布',
    },
    emits: {
      onClick: (role) => handlePublish(role),
      onClick: (row: API.GetTaskInfosQueryResultItem) =>
        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
    },
    extraProps: {
      hide: (row) => false,
      hide: (row: API.GetTaskInfosQueryResultItem) =>
        row.releaseStatus === EnumTaskReleaseStatus.InProcess,
    },
  },
  {
@@ -127,10 +125,12 @@
      name: '停止发布',
    },
    emits: {
      onClick: (role) => handleUnPublish(role),
      onClick: (row: API.GetTaskInfosQueryResultItem) =>
        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
    },
    extraProps: {
      hide: (row) => false,
      hide: (row: API.GetTaskInfosQueryResultItem) =>
        row.releaseStatus === EnumTaskReleaseStatus.Stopped,
    },
  },
  {
@@ -139,7 +139,7 @@
      name: '安排',
    },
    emits: {
      onClick: (role) => handleArrange(role),
      onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
    },
  },
]);
@@ -176,17 +176,20 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetFlexEnterpriseInput = {
      let params: API.GetTaskInfosQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
        searchWord: extraParamState.searchWord,
        keywords: extraParamState.keywords,
        status: extraParamState.status,
        releaseStatus: extraParamState.releaseStatus,
        beginTime: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        endTime: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
      let res = await taskServices.getTaskInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -196,23 +199,46 @@
  },
  {
    defaultExtraParams: {
      searchWord: '',
      orderInput: [{ property: 'id', order: OrderInputType.Desc }],
      keywords: '',
      status: '' as any as EnumTaskStatus,
      releaseStatus: '' as any as EnumTaskReleaseStatus,
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
    },
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {},
    queryKey: ['taskServices/getTaskInfos'],
    columnsRenderProps: {
      billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText },
      settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText },
      genderLimit: { type: 'enum', valueEnum: EnumUserGenderText },
      status: { type: 'enum', valueEnum: EnumTaskStatusText },
      releaseStatus: { type: 'enum', valueEnum: EnumTaskReleaseStatusText },
      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
      endTime: { type: 'date', format: 'YYYY-MM-DD' },
      serviceFee: { type: 'money' },
    },
  }
);
function handlePublish(row) {
  console.log(row);
}
function handleUnPublish(row) {
  console.log(row);
async function setTaskInfoReleaseStatus(
  row: API.GetTaskInfosQueryResultItem,
  releaseStatus: EnumTaskReleaseStatus
) {
  try {
    await Message.tipMessage(`确认要${EnumTaskReleaseStatusTextForTip[releaseStatus]}吗?`);
    let params: API.SetTaskInfoReleaseStatusCommand = {
      ids: [row.id],
      releaseStatus: releaseStatus,
    };
    let res = await taskServices.setTaskInfoReleaseStatus(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function handleArrange(row) {
function handleArrange(row: API.GetTaskInfosQueryResultItem) {
  router.push({
    name: 'EmploymentManageArrange',
    params: {
@@ -220,7 +246,7 @@
    },
  });
}
function goAddOrEdit(row?) {
function goAddOrEdit(row?: API.GetTaskInfosQueryResultItem) {
  router.push({
    name: 'AddOrEditEmployment',
    params: {
@@ -228,7 +254,7 @@
    },
  });
}
function goDetail(row) {
function goDetail(row: API.GetTaskInfosQueryResultItem) {
  router.push({
    name: 'EmploymentManageDetail',
    params: {
@@ -237,7 +263,7 @@
  });
}
function goSignList(row) {
function goSignList(row: API.GetTaskInfosQueryResultItem) {
  router.push({
    name: 'EmploymentSignList',
    params: {