zhengyiming
2025-02-10 0f686ea1fe4700a909a6159efcf1fcb0e1f88a17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<template>
  <LoadingLayout :loading="isLoading && isEdit" :error="isError" :loadError="refetch">
    <PublishOrderStep1 v-if="current === 'step1'"></PublishOrderStep1>
    <PublishOrderStep2 v-else-if="current === 'step2'"></PublishOrderStep2>
    <PublishOrderStep3 v-else-if="current === 'step3'"></PublishOrderStep3>
  </LoadingLayout>
</template>
 
<script setup lang="ts">
import { usePublishOrderContext } from './context';
import PublishOrderStep1 from './PublishOrderStep1.vue';
import PublishOrderStep2 from './PublishOrderStep2.vue';
import PublishOrderStep3 from './PublishOrderStep3.vue';
import { useQuery } from '@tanstack/vue-query';
import * as orderServices from '@12333/services/api/Order';
import { convertApiPath2Url } from '@12333/utils';
 
defineOptions({
  name: 'InnerPage',
});
 
const { current, orderId, form, isEdit } = usePublishOrderContext();
 
const { isLoading, isError, refetch } = useQuery({
  queryKey: ['orderServices/getOrdeForDetail', orderId],
  queryFn: async () => {
    return await orderServices.getOrdeForDetail(
      { id: orderId },
      {
        showLoading: false,
      }
    );
  },
  initialData: () => ({} as API.OrderInfoDto),
  enabled: !!orderId,
  onSuccess(data) {
    form.name = data.orderName;
    form.hireType = data.hireType;
    form.hireNumber = data.hireNumber;
    form.hireEndNumber = data.hireEndNumber;
    form.ageStart = data.ageStart;
    form.ageEnd = data.ageEnd;
    form.sexRequirement = data.sexRequirement;
    form.salaryType = data.salaryType;
    form.salaryTimeType = data.salaryTimeType;
    form.checkRemark = data.checkRemark;
    form.externalcontactType = data.externalcontactType;
    form.externalcontactNumber = data.externalcontactNumber;
    form.areaList = [data.provinceCode, data.cityCode, data.countyCode];
    form.src = data.src.map(convertApiPath2Url);
    form.jobIntroduction = data.jobIntroduction;
    form.supplierRefundList = data.orderSupplierRefundInfo;
    if (data.orderSupplierRefundInfo?.length > 0) {
      let item = data.orderSupplierRefundInfo[0];
      form.rebateMode = item.rebateMode;
      form.rebateTime = item.rebateTime;
      form.supplierProfit = item.supplierProfit;
      form.supplierProfitUint = item.supplierProfitUint;
      form.cycleType = item.cycleType;
    }
    form.manNumber = data.manNumber;
    form.womanNumber = data.womanNumber;
    form.integratedSalary = data.integratedSalary;
    form.industryTypeId = data.industryTypeId;
  },
});
</script>