feat:
This commit is contained in:
@ -84,12 +84,12 @@ function JobCard(props: IProps) {
|
|||||||
<div className={`${PREFIX}__summary`}>{jobDescription || sourceText}</div>
|
<div className={`${PREFIX}__summary`}>{jobDescription || sourceText}</div>
|
||||||
<div className={`${PREFIX}__distance-wrapper`}>
|
<div className={`${PREFIX}__distance-wrapper`}>
|
||||||
<div className={`${PREFIX}__detailed-address`}>{jobLocation?.address}</div>
|
<div className={`${PREFIX}__detailed-address`}>{jobLocation?.address}</div>
|
||||||
{distance && (
|
{/*{distance && (*/}
|
||||||
<>
|
{/* <>*/}
|
||||||
<Image className={`${PREFIX}__distance-icon`} src={require('@/statics/svg/location.svg')} />
|
{/* <Image className={`${PREFIX}__distance-icon`} src={require('@/statics/svg/location.svg')} />*/}
|
||||||
<div className={`${PREFIX}__distance`}>{calcDistance(distance)}</div>
|
{/* <div className={`${PREFIX}__distance`}>{calcDistance(distance)}</div>*/}
|
||||||
</>
|
{/* </>*/}
|
||||||
)}
|
{/*)}*/}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={`${PREFIX}__divider`} />
|
<div className={`${PREFIX}__divider`} />
|
||||||
@ -102,7 +102,7 @@ function JobCard(props: IProps) {
|
|||||||
/>
|
/>
|
||||||
<div className={`${PREFIX}__publisher-name`}>{publisher}</div>
|
<div className={`${PREFIX}__publisher-name`}>{publisher}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={`${PREFIX}__city`}>{getCityDes(jobLocation)}</div>
|
{/*<div className={`${PREFIX}__city`}>{getCityDes(jobLocation)}</div>*/}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { Button, Image, Map, MapProps, Text } from '@tarojs/components';
|
import { Button, Image, Map, MapProps, Text } from '@tarojs/components';
|
||||||
import Taro, { useLoad, useShareAppMessage } from '@tarojs/taro';
|
import Taro, { useLoad, useShareAppMessage } from '@tarojs/taro';
|
||||||
|
|
||||||
|
import { Dialog } from '@taroify/core';
|
||||||
import React, { useCallback, useEffect, useState } from 'react';
|
import React, { useCallback, useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { CertificationStatusIcon } from '@/components/certification-status';
|
import { CertificationStatusIcon } from '@/components/certification-status';
|
||||||
@ -12,15 +13,19 @@ import LoginButton from '@/components/login-button';
|
|||||||
import PageLoading from '@/components/page-loading';
|
import PageLoading from '@/components/page-loading';
|
||||||
import { PrejobPopup } from '@/components/prejob-popup';
|
import { PrejobPopup } from '@/components/prejob-popup';
|
||||||
import ProductJobDialog from '@/components/product-dialog/job';
|
import ProductJobDialog from '@/components/product-dialog/job';
|
||||||
|
import CompanyPublishJobBuy from '@/components/product-dialog/steps-ui/company-publish-job-buy';
|
||||||
import { EventName, PageUrl, RoleType } from '@/constants/app';
|
import { EventName, PageUrl, RoleType } from '@/constants/app';
|
||||||
import { CertificationStatusType } from '@/constants/company';
|
import { CertificationStatusType } from '@/constants/company';
|
||||||
import { CollectEventName, ReportEventId } from '@/constants/event';
|
import { CollectEventName, ReportEventId } from '@/constants/event';
|
||||||
import { EMPLOY_TYPE_TITLE_MAP, GET_CONTACT_TYPE, JobManageStatus } from '@/constants/job';
|
import { EMPLOY_TYPE_TITLE_MAP, GET_CONTACT_TYPE, JobManageStatus } from '@/constants/job';
|
||||||
|
import { ProductType } from '@/constants/product';
|
||||||
import useInviteCode from '@/hooks/use-invite-code';
|
import useInviteCode from '@/hooks/use-invite-code';
|
||||||
import useUserInfo from '@/hooks/use-user-info';
|
import useUserInfo from '@/hooks/use-user-info';
|
||||||
import useRoleType from '@/hooks/user-role-type';
|
import useRoleType from '@/hooks/user-role-type';
|
||||||
import { RESPONSE_ERROR_CODE } from '@/http/constant';
|
import { RESPONSE_ERROR_CODE } from '@/http/constant';
|
||||||
import { HttpError } from '@/http/error';
|
import { HttpError } from '@/http/error';
|
||||||
|
import store from '@/store';
|
||||||
|
import { cacheJobId } from '@/store/actions';
|
||||||
import { JobDetails } from '@/types/job';
|
import { JobDetails } from '@/types/job';
|
||||||
import { IMaterialMessage } from '@/types/message';
|
import { IMaterialMessage } from '@/types/message';
|
||||||
import { switchRoleType } from '@/utils/app';
|
import { switchRoleType } from '@/utils/app';
|
||||||
@ -31,6 +36,7 @@ import { calcDistance, isValidLocation } from '@/utils/location';
|
|||||||
import { requestProfileDetail } from '@/utils/material';
|
import { requestProfileDetail } from '@/utils/material';
|
||||||
import { isChatWithSelf, postCreateChat } from '@/utils/message';
|
import { isChatWithSelf, postCreateChat } from '@/utils/message';
|
||||||
import { getInviteCodeFromQueryAndUpdate } from '@/utils/partner';
|
import { getInviteCodeFromQueryAndUpdate } from '@/utils/partner';
|
||||||
|
import { requestProductBalance, requestProductUseRecord } from '@/utils/product';
|
||||||
import { getJumpUrl, getPageQuery, navigateTo } from '@/utils/route';
|
import { getJumpUrl, getPageQuery, navigateTo } from '@/utils/route';
|
||||||
import { getCommonShareMessage } from '@/utils/share';
|
import { getCommonShareMessage } from '@/utils/share';
|
||||||
import { formatDate } from '@/utils/time';
|
import { formatDate } from '@/utils/time';
|
||||||
@ -38,12 +44,6 @@ import Toast from '@/utils/toast';
|
|||||||
import { isNeedCreateMaterial } from '@/utils/user';
|
import { isNeedCreateMaterial } from '@/utils/user';
|
||||||
|
|
||||||
import './index.less';
|
import './index.less';
|
||||||
import { Dialog } from '@taroify/core';
|
|
||||||
import CompanyPublishJobBuy from '@/components/product-dialog/steps-ui/company-publish-job-buy';
|
|
||||||
import { requestProductBalance, requestProductUseRecord } from '@/utils/product';
|
|
||||||
import { ProductType } from '@/constants/product';
|
|
||||||
import store from '@/store';
|
|
||||||
import { cacheJobId } from '@/store/actions';
|
|
||||||
|
|
||||||
const PREFIX = 'job-detail';
|
const PREFIX = 'job-detail';
|
||||||
const log = logWithPrefix(PREFIX);
|
const log = logWithPrefix(PREFIX);
|
||||||
@ -105,6 +105,7 @@ const AnchorFooter = (props: { data: JobDetails }) => {
|
|||||||
let materialMessage: null | IMaterialMessage = null;
|
let materialMessage: null | IMaterialMessage = null;
|
||||||
if (!needCreateMaterial) {
|
if (!needCreateMaterial) {
|
||||||
const profile = await requestProfileDetail();
|
const profile = await requestProfileDetail();
|
||||||
|
if (profile) {
|
||||||
materialMessage = {
|
materialMessage = {
|
||||||
id: profile.id,
|
id: profile.id,
|
||||||
name: profile.name,
|
name: profile.name,
|
||||||
@ -116,6 +117,7 @@ const AnchorFooter = (props: { data: JobDetails }) => {
|
|||||||
workedSecCategoryStr: profile.workedSecCategoryStr,
|
workedSecCategoryStr: profile.workedSecCategoryStr,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
navigateTo(PageUrl.MessageChat, {
|
navigateTo(PageUrl.MessageChat, {
|
||||||
chatId: chat.chatId,
|
chatId: chat.chatId,
|
||||||
initText: !materialMessage,
|
initText: !materialMessage,
|
||||||
|
|||||||
@ -144,6 +144,13 @@ export default function JobPublish() {
|
|||||||
setAddress(value);
|
setAddress(value);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const refreshJobPublishList = useCallback(() => {
|
||||||
|
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
||||||
|
setTimeout(() => {
|
||||||
|
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
||||||
|
}, 300);
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleClose = useCallback(async () => {
|
const handleClose = useCallback(async () => {
|
||||||
if (!job) {
|
if (!job) {
|
||||||
Toast.error('数据出错请重试');
|
Toast.error('数据出错请重试');
|
||||||
@ -152,7 +159,7 @@ export default function JobPublish() {
|
|||||||
try {
|
try {
|
||||||
Taro.showLoading();
|
Taro.showLoading();
|
||||||
await postCloseJob(job.id);
|
await postCloseJob(job.id);
|
||||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
refreshJobPublishList();
|
||||||
navigateBack();
|
navigateBack();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('submit error', e);
|
console.error('submit error', e);
|
||||||
@ -161,7 +168,7 @@ export default function JobPublish() {
|
|||||||
} finally {
|
} finally {
|
||||||
Taro.hideLoading();
|
Taro.hideLoading();
|
||||||
}
|
}
|
||||||
}, [job]);
|
}, [job, refreshJobPublishList]);
|
||||||
|
|
||||||
const getCreateJobInfo = useCallback((): [CreateJobInfo, string[]] => {
|
const getCreateJobInfo = useCallback((): [CreateJobInfo, string[]] => {
|
||||||
const cityCodes = city || [];
|
const cityCodes = city || [];
|
||||||
@ -204,7 +211,7 @@ export default function JobPublish() {
|
|||||||
} else {
|
} else {
|
||||||
const jobId = await postCreateJob(data);
|
const jobId = await postCreateJob(data);
|
||||||
createdJobIdRef.current = jobId;
|
createdJobIdRef.current = jobId;
|
||||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
refreshJobPublishList();
|
||||||
|
|
||||||
if (userInfo.bossAuthStatus !== CertificationStatusType.Success) {
|
if (userInfo.bossAuthStatus !== CertificationStatusType.Success) {
|
||||||
// 去认证
|
// 去认证
|
||||||
@ -224,7 +231,8 @@ export default function JobPublish() {
|
|||||||
|
|
||||||
await postPublishJob(jobId);
|
await postPublishJob(jobId);
|
||||||
}
|
}
|
||||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
refreshJobPublishList();
|
||||||
|
|
||||||
await Toast.success(isUpdateJob ? '更新成功' : '创建并发布成功', 1500, true);
|
await Toast.success(isUpdateJob ? '更新成功' : '创建并发布成功', 1500, true);
|
||||||
navigateBack();
|
navigateBack();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -235,13 +243,13 @@ export default function JobPublish() {
|
|||||||
} finally {
|
} finally {
|
||||||
Taro.hideLoading();
|
Taro.hideLoading();
|
||||||
}
|
}
|
||||||
}, [getCreateJobInfo, isUpdate, job, userInfo.bossAuthStatus]);
|
}, [getCreateJobInfo, isUpdate, job, userInfo.bossAuthStatus, refreshJobPublishList]);
|
||||||
|
|
||||||
const handleNext = useCallback(async () => {
|
const handleNext = useCallback(async () => {
|
||||||
Taro.showLoading();
|
Taro.showLoading();
|
||||||
try {
|
try {
|
||||||
await postPublishJob(createdJobIdRef.current);
|
await postPublishJob(createdJobIdRef.current);
|
||||||
Taro.eventCenter.trigger(EventName.COMPANY_JOB_PUBLISH_CHANGED);
|
refreshJobPublishList();
|
||||||
await Toast.success('发布成功', 1500, true);
|
await Toast.success('发布成功', 1500, true);
|
||||||
navigateBack();
|
navigateBack();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -251,7 +259,7 @@ export default function JobPublish() {
|
|||||||
} finally {
|
} finally {
|
||||||
Taro.hideLoading();
|
Taro.hideLoading();
|
||||||
}
|
}
|
||||||
}, []);
|
}, [refreshJobPublishList]);
|
||||||
|
|
||||||
const handleClosePublishJob = useCallback(() => {
|
const handleClosePublishJob = useCallback(() => {
|
||||||
setShowBuy(false);
|
setShowBuy(false);
|
||||||
|
|||||||
@ -8,23 +8,22 @@ import HomePage from '@/components/home-page';
|
|||||||
import MessageCard from '@/components/message-card';
|
import MessageCard from '@/components/message-card';
|
||||||
import { MessageHelpDialog, MessageNoTimesDialog } from '@/components/message-dialog';
|
import { MessageHelpDialog, MessageNoTimesDialog } from '@/components/message-dialog';
|
||||||
import { APP_TAB_BAR_ID, EventName, PageType } from '@/constants/app';
|
import { APP_TAB_BAR_ID, EventName, PageType } from '@/constants/app';
|
||||||
|
import { CollectEventName } from '@/constants/event';
|
||||||
import { REFRESH_CHAT_LIST_TIME } from '@/constants/message';
|
import { REFRESH_CHAT_LIST_TIME } from '@/constants/message';
|
||||||
import { MessageSubscribeIds, SubscribeTempId } from '@/constants/subscribe';
|
import { MessageSubscribeIds, SubscribeTempId } from '@/constants/subscribe';
|
||||||
import useListHeight, { IUseListHeightProps } from '@/hooks/use-list-height';
|
import useListHeight, { IUseListHeightProps } from '@/hooks/use-list-height';
|
||||||
import useRoleType from '@/hooks/user-role-type';
|
import useRoleType from '@/hooks/user-role-type';
|
||||||
import { MainMessage } from '@/types/message';
|
import { MainMessage } from '@/types/message';
|
||||||
import { logWithPrefix } from '@/utils/common';
|
import { logWithPrefix } from '@/utils/common';
|
||||||
|
import { collectEvent } from '@/utils/event';
|
||||||
import {
|
import {
|
||||||
postAddMessageTimes,
|
postAddMessageTimes,
|
||||||
requestMessageList,
|
requestMessageList,
|
||||||
requestRemainPushTime,
|
requestRemainPushTime,
|
||||||
requestUnreadMessageCount,
|
requestUnreadMessageCount,
|
||||||
} from '@/utils/message';
|
} from '@/utils/message';
|
||||||
|
|
||||||
import { isSubscribeRefused, postSubscribe } from '@/utils/subscribe';
|
import { isSubscribeRefused, postSubscribe } from '@/utils/subscribe';
|
||||||
import './index.less';
|
import './index.less';
|
||||||
import { collectEvent } from '@/utils/event';
|
|
||||||
import { CollectEventName } from '@/constants/event';
|
|
||||||
|
|
||||||
const PREFIX = 'page-message';
|
const PREFIX = 'page-message';
|
||||||
const HEADER_CLASS = `${PREFIX}__header`;
|
const HEADER_CLASS = `${PREFIX}__header`;
|
||||||
|
|||||||
Reference in New Issue
Block a user