This commit is contained in:
chashaobao
2025-08-16 13:02:46 +08:00
parent 943f921e56
commit 34f9c8d0e6
4 changed files with 42 additions and 33 deletions

View File

@ -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>
); );

View File

@ -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,

View File

@ -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);

View File

@ -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`;