feat: update tonggao
This commit is contained in:
@ -3,7 +3,7 @@ import Taro, { useLoad } from '@tarojs/taro';
|
||||
|
||||
import { Dialog } from '@taroify/core';
|
||||
import classNames from 'classnames';
|
||||
import { useCallback, useEffect, useState } from 'react';
|
||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||
|
||||
import BlFormCell from '@/components/bl-form-cell';
|
||||
import BlFormInput from '@/components/bl-form-input';
|
||||
@ -22,7 +22,7 @@ import { EMPLOY_TYPE_TITLE_MAP, EmployType, JOB_TYPE_SELECT_OPTIONS, JobType } f
|
||||
import { ProductType } from '@/constants/product';
|
||||
import useUserInfo from '@/hooks/use-user-info';
|
||||
import store from '@/store';
|
||||
import { cacheCreateJob } from '@/store/actions';
|
||||
import { cacheJobId } from '@/store/actions';
|
||||
import { CreateJobInfo, JobDetails } from '@/types/job';
|
||||
import { logWithPrefix } from '@/utils/common';
|
||||
import { collectEvent } from '@/utils/event';
|
||||
@ -33,6 +33,7 @@ import {
|
||||
requestJobDetail,
|
||||
isFullTimePriceRequired,
|
||||
isPartTimePriceRequired,
|
||||
postPublishJob,
|
||||
} from '@/utils/job';
|
||||
import { getCityValues } from '@/utils/location';
|
||||
import { requestProductBalance } from '@/utils/product';
|
||||
@ -107,6 +108,7 @@ export default function JobPublish() {
|
||||
const [showCityPicker, setShowCityPicker] = useState(false);
|
||||
const [address, setAddress] = useState('');
|
||||
const [showBuy, setShowBuy] = useState(false);
|
||||
const createdJobIdRef = useRef('');
|
||||
const userInfo = useUserInfo();
|
||||
|
||||
const handleEmployTypeChange = useCallback((value: EmployType) => {
|
||||
@ -200,13 +202,18 @@ export default function JobPublish() {
|
||||
await postUpdateJob(data);
|
||||
Taro.eventCenter.trigger(EventName.JOB_UPDATE, job!.id);
|
||||
} else {
|
||||
const jobId = await postCreateJob(data);
|
||||
createdJobIdRef.current = jobId;
|
||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
||||
|
||||
if (userInfo.bossAuthStatus !== CertificationStatusType.Success) {
|
||||
// 去认证
|
||||
store.dispatch(cacheCreateJob(data));
|
||||
store.dispatch(cacheJobId(jobId));
|
||||
navigateTo(PageUrl.CertificationStart);
|
||||
Taro.hideLoading();
|
||||
return;
|
||||
}
|
||||
|
||||
const [time] = await requestProductBalance(ProductType.CompanyPublishJob);
|
||||
if (time <= 0) {
|
||||
// 付钱
|
||||
@ -214,12 +221,14 @@ export default function JobPublish() {
|
||||
Taro.hideLoading();
|
||||
return;
|
||||
}
|
||||
await postCreateJob(data);
|
||||
|
||||
await postPublishJob(jobId);
|
||||
}
|
||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
||||
await Toast.success(isUpdateJob ? '更新成功' : '创建成功', 1500, true);
|
||||
await Toast.success(isUpdateJob ? '更新成功' : '创建并发布成功', 1500, true);
|
||||
navigateBack();
|
||||
} catch (e) {
|
||||
createdJobIdRef.current = '';
|
||||
console.error('submit error', e);
|
||||
Toast.error('审核失败请重试');
|
||||
collectEvent(CollectEventName.PUBLISH_JOB_FAILED, e);
|
||||
@ -229,18 +238,11 @@ export default function JobPublish() {
|
||||
}, [getCreateJobInfo, isUpdate, job, userInfo.bossAuthStatus]);
|
||||
|
||||
const handleNext = useCallback(async () => {
|
||||
const [data, cityCodes] = getCreateJobInfo();
|
||||
|
||||
const cityValues = getCityValues(cityCodes);
|
||||
if (!data.address.startsWith(cityValues)) {
|
||||
data.address = `${cityValues}${data.address}`;
|
||||
}
|
||||
Taro.showLoading();
|
||||
|
||||
try {
|
||||
await postCreateJob(data);
|
||||
await postPublishJob(createdJobIdRef.current);
|
||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
||||
await Toast.success('创建成功', 1500, true);
|
||||
await Toast.success('发布成功', 1500, true);
|
||||
navigateBack();
|
||||
} catch (e) {
|
||||
console.error('submit error', e);
|
||||
@ -249,7 +251,12 @@ export default function JobPublish() {
|
||||
} finally {
|
||||
Taro.hideLoading();
|
||||
}
|
||||
}, [getCreateJobInfo]);
|
||||
}, []);
|
||||
|
||||
const handleClosePublishJob = useCallback(() => {
|
||||
setShowBuy(false);
|
||||
navigateBack(-1);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const callback = (d: string) => setDescribe(d);
|
||||
@ -342,7 +349,7 @@ export default function JobPublish() {
|
||||
<div className={`${PREFIX}__footer__buttons`}>
|
||||
{!isUpdate && (
|
||||
<Button className={`${PREFIX}__footer__button`} onClick={handleSubmit}>
|
||||
创建
|
||||
创建并发布
|
||||
</Button>
|
||||
)}
|
||||
{isUpdate && (
|
||||
@ -365,9 +372,9 @@ export default function JobPublish() {
|
||||
onConfirm={handleConfirmCityPicker}
|
||||
onCancel={() => setShowCityPicker(false)}
|
||||
/>
|
||||
<Dialog open={showBuy} onClose={() => setShowBuy(false)}>
|
||||
<Dialog open={showBuy} onClose={handleClosePublishJob}>
|
||||
<Dialog.Content>
|
||||
<CompanyPublishJobBuy onNext={handleNext} defaultSelect={1}/>
|
||||
<CompanyPublishJobBuy onNext={handleNext} />
|
||||
</Dialog.Content>
|
||||
</Dialog>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user