wupengfei
2 天以前 e719d76f10d8b8b3a95437cd5f37458f36bb4abb
src/views/EmploymentManage/StandardOrder.vue
@@ -4,14 +4,24 @@
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="预约状态">
            <FieldSelect v-model="extraParamState.status" :value-enum="[]" @change="getList()" />
            <FieldSelect
              v-model="extraParamState.appointmentStatus"
              :value-enum="EnumStandardOrderAppointmentStatusText"
              @change="getList()"
              clearable
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="订单状态">
            <FieldSelect v-model="extraParamState.status" :value-enum="[]" @change="getList()" />
            <FieldSelect
              v-model="extraParamState.payStatus"
              :value-enum="EnumStandardOrderPayStatusText"
              @change="getList()"
              clearable
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="下单时间">
            <FieldDatePicker
              v-model="extraParamState.time"
              v-model="extraParamState.createdTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -22,7 +32,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="支付时间">
            <FieldDatePicker
              v-model="extraParamState.time"
              v-model="extraParamState.payTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -51,6 +61,7 @@
<script setup lang="ts">
import {
  ProTableQueryFilterBar,
  OperationBtnType,
  ProTableV2,
  SearchInput,
  LoadingLayout,
@@ -60,27 +71,27 @@
  FieldDatePicker,
  FieldSelect,
} from '@bole-core/components';
import { EnumTaskStatusText, EnumTaskReleaseStatusText } from '@/constants';
import { useGlobalEventContext } from '@/hooks';
import * as taskServices from '@/services/api/task';
import { format, OrderUtils } from '@/utils';
import { useAccess } from '@/hooks';
import { ModelValueType } from 'element-plus';
import { Message } from '@bole-core/core';
import dayjs from 'dayjs';
import * as standardOrderServices from '@/services/api/standardOrder';
import {
  EnumStandardOrderAppointmentStatusText,
  EnumStandardOrderPayStatusText,
  EnumStandardOrderSettlementStatusText,
} from '@/constants';
import { format } from '@/utils';
defineOptions({
  name: 'StandardOrder',
});
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
    },
  },
  detailBtn: { emits: { onClick: (row: API.GetStandardOrdersQueryResultItem) => goDetail(row) } },
  confirmBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
    emits: { onClick: (row: API.GetStandardOrdersQueryResultItem) => goDetail(row) },
    extraProps: {
      hide: (row: API.GetStandardOrdersQueryResultItem) =>
        row.appointmentStatus !== EnumStandardOrderAppointmentStatus.WaitSure,
    },
  },
};
@@ -89,8 +100,13 @@
  operationBtnMap,
});
const router = useRouter();
const eventContext = useGlobalEventContext();
eventContext.addEvent('standardOrder:confirm', () => {
  getList(paginationState.pageIndex);
});
const router = useRouter();
const BaseState = {
  loading: true,
};
@@ -111,48 +127,50 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetTaskInfosQuery = {
      let params: API.GetStandardOrdersQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        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'),
        appointmentStatus: extraParamState.appointmentStatus,
        payStatus: extraParamState.payStatus,
        createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        payTimeBegin: format(extraParamState.payTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        payTimeEnd: format(extraParamState.payTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await taskServices.getTaskInfos(params, {
      let res = await standardOrderServices.getStandardOrders(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {
      console.log('error: ', error);
    }
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      keywords: '',
      status: '' as any as EnumTaskStatus,
      releaseStatus: '' as any as EnumTaskReleaseStatus,
      time: [] as unknown as ModelValueType,
      appointmentStatus: '' as any as EnumStandardOrderAppointmentStatus,
      payStatus: '' as any as EnumStandardOrderPayStatus,
      createdTime: [] as unknown as ModelValueType,
      payTime: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['taskServices/getTaskInfos'],
    columnsRenderProps: {
      endTime: { type: 'date', format: 'YYYY-MM-DD' },
      createdTime: { type: 'date' },
      payCompletedTime: { type: 'date' },
      payAmount: { type: 'money' },
      receiveAmount: { type: 'money' },
      serviceFee: { type: 'money' },
      settlementAmount: { type: 'money' },
      appointmentStatus: { type: 'enum', valueEnum: EnumStandardOrderAppointmentStatusText },
      payStatus: { type: 'enum', valueEnum: EnumStandardOrderPayStatusText },
      settlementStatus: { type: 'enum', valueEnum: EnumStandardOrderSettlementStatusText },
    },
  }
);
function goDetail(row: API.GetTaskInfosQueryResultItem) {
  router.push({
    name: 'StandardOrderDetail',
    params: {
      id: row?.id ?? '',
    },
  });
function goDetail(row?: API.GetStandardOrdersQueryResultItem) {
  router.push({ name: 'StandardOrderDetail', params: { id: row?.id ?? '' } });
}
</script>