wupengfei
8 天以前 87af8eda59a2679cb1c9295012adda05b72cde85
src/views/TaskManage/TaskManageList.vue
@@ -3,19 +3,10 @@
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem>
            <FieldSelect
              v-model="extraParamState.pageType"
              placeholder="广告页面"
              :value-enum="FlexWorkerEleSignEnumText"
              clearable
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="发布状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="FlexWorkerEleSignEnumText"
              v-model="extraParamState.releaseStatus"
              :value-enum="EnumTaskReleaseStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -23,8 +14,8 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="推荐状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="FlexWorkerEleSignEnumText"
              v-model="extraParamState.recommendStatus"
              :value-enum="EnumTaskRecommendStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -32,7 +23,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="发布时间">
            <FieldDatePicker
              v-model="extraParamState.beginDate"
              v-model="extraParamState.time"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -43,7 +34,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keyword"
              v-model="extraParamState.keywords"
              style="width: 260px"
              placeholder="任务名称"
              @on-click-search="getList"
@@ -69,14 +60,14 @@
  QueryFilterItem,
  useTable,
  FieldDatePicker,
  FieldSelect,
  FieldRadio,
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { FlexWorkerEleSignEnumText } from '@/constants';
import { ModelValueType } from 'element-plus';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { OrderInputType } from '@bole-core/core';
import * as taskServices from '@/services/api/task';
import { EnumTaskReleaseStatusText, EnumTaskRecommendStatusText } from '@/constants';
import { format } from '@/utils';
import { Message } from '@bole-core/core';
defineOptions({
  name: 'OperationManageList',
@@ -84,17 +75,17 @@
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: { emits: { onClick: (role) => goDetail(role) } },
  takeOnBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
  recommendBtn: {
    emits: { onClick: (role) => setTaskInfoRecommendStatus(role) },
    extraProps: {
      hide: (row) => row.status,
      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes,
    },
  },
  takeDownBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
  cancelRecommendBtn: {
    emits: { onClick: (role) => setTaskInfoRecommendStatus(role) },
    props: { type: 'danger' },
    extraProps: {
      hide: (row) => !row.status,
      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.No,
    },
  },
};
@@ -124,15 +115,19 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetUserClientForBackInput = {
      let params: API.GetTaskInfosQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        searchKeys: extraParamState.keyword,
        keywords: extraParamState.keywords,
        releaseStatus: extraParamState.releaseStatus,
        recommendStatus: extraParamState.recommendStatus,
        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 flexEnterpriseWokerServices.getUserClientList(params, {
      let res = await taskServices.getTaskInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -140,24 +135,37 @@
  },
  {
    defaultExtraParams: {
      keyword: '',
      pageType: '' as any as number,
      status: '' as any as boolean,
      beginDate: [] as unknown as ModelValueType,
      endDate: [] as unknown as ModelValueType,
      orderInput: [{ property: 'sort', order: OrderInputType.Asc }],
      keywords: '',
      releaseStatus: '' as any as EnumTaskReleaseStatus,
      recommendStatus: '' as any as EnumTaskRecommendStatus,
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
    columnPropsMap: ['advertiseBeginDate', 'advertiseEndDate'],
  }
);
async function setAdvertiseOnShowStatus(row) {
async function setTaskInfoRecommendStatus(row: API.GetTaskInfosQueryResultItem) {
  try {
    await Message.tipMessage(
      `确认要${row.recommendStatus === EnumTaskRecommendStatus.Yes ? '取消' : '推荐'}吗?`
    );
    let params: API.SetTaskInfoRecommendStatusCommand = {
      ids: [row.id],
      recommendStatus:
        row.recommendStatus === EnumTaskRecommendStatus.Yes
          ? EnumTaskRecommendStatus.No
          : EnumTaskRecommendStatus.Yes,
    };
    let res = await taskServices.setTaskInfoRecommendStatus(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function goDetail(row) {
  router.push({ name: 'TaskDetail', params: { id: row?.id ?? '' } });
  router.push({ name: 'TaskManageDetail', params: { id: row?.id ?? '' } });
}
</script>