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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<template>
  <PageLayout
    class="publishOrder-page-wrapper"
    :title="`发布订单(${stepperInfo.index.value + 1}/${stepperInfo.steps.value.length})`"
    hasBorder
  >
    <InnerPage />
  </PageLayout>
</template>
 
<script setup lang="ts">
import { PageLayout } from '@/components';
import InnerPage from './innerPage.vue';
import { PublishOrderContextKey } from './context';
import {
  OrderStatus,
  HireType,
  SexRequirement,
  SalaryTimeTypeEnum,
  SalaryType,
  ExternalcontactType,
  EmptyRupplierRefund,
} from '@12333/constants';
import { useStepper } from 'senin-mini/hooks';
import Taro from '@tarojs/taro';
import {
  OrderOperateBtnStatus,
  OrderRebateMode,
  CycleTypeEnum,
  SupplierProfitUint,
} from '@12333/constants';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
 
const router = Taro.useRouter();
const orderId = router.params?.id ?? '';
const orderOperateBtnStatus = router.params?.orderOperateBtnStatus ?? '';
const isEdit = computed(() => {
  return Number(orderOperateBtnStatus) === OrderOperateBtnStatus.Edit;
});
 
const DefaultJobIntroduction = `一、工作说明
1.工作内容:
2.工作时间:
二、薪资福利
1.工资计算
2.工资发放
三、食宿介绍
1.伙食说明
2.住宿说明
四、面试说明
1.面试要求:
2.面试时间:
3.面试地点:
4.面试材料:
5.体检要求:`;
 
const form = reactive({
  name: '',
  hireType: HireType.hireNumber,
  hireNumber: '' as any as number,
  hireEndNumber: '' as any as number,
  ageStart: '' as any as number,
  ageEnd: '' as any as number,
  sexRequirement: SexRequirement.unlimited,
  salaryTimeType: SalaryTimeTypeEnum.Month,
  salaryType: SalaryType.month,
  externalcontactType: ExternalcontactType.platform,
  externalcontactNumber: '',
  areaList: [] as number[],
  src: [] as FileItem[],
  jobIntroduction: DefaultJobIntroduction,
  supplierRefundList: [{ ...EmptyRupplierRefund }] as API.SupplierRefundList[],
  rebateMode: OrderRebateMode.Hour,
  rebateTime: '' as any as number,
  supplierProfit: '' as any as number,
  supplierProfitUint: SupplierProfitUint.Hour,
  cycleType: CycleTypeEnum.month,
  manNumber: 0,
  womanNumber: 0,
  id: '',
  industryTypeId: '',
  integratedSalary: '',
  provinceCode: '' as any as number,
  cityCode: '' as any as number,
  countyCode: '' as any as number,
  isSyncCircleFriend: true,
  status: '' as any as OrderStatus,
  checkRemark: '',
});
 
const stepperInfo = useStepper(['step1', 'step2', 'step3']);
 
provide(PublishOrderContextKey, {
  form,
  orderId,
  orderOperateBtnStatus: Number(orderOperateBtnStatus) as OrderOperateBtnStatus,
  isEdit,
  ...stepperInfo,
});
</script>