Files
boluo-app-main/src/pages/user-batch-publish/index.tsx
2025-06-27 10:56:44 +08:00

121 lines
5.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Image } from '@tarojs/components';
import Taro, { useShareAppMessage } from '@tarojs/taro';
import { Button, Tabs } from '@taroify/core';
import { useCallback } from 'react';
import HomePage from '@/components/home-page';
import SearchCity from '@/components/search-city';
import { PageUrl } from '@/constants/app';
import { GROUPS } from '@/constants/group';
import useInviteCode from '@/hooks/use-invite-code';
import { openCustomerServiceChat } from '@/utils/common';
import { getCurrentCityCode } from '@/utils/location';
import { navigateTo } from '@/utils/route';
import { getCommonShareMessage } from '@/utils/share';
import { checkCityCode } from '@/utils/user';
import './index.less';
const PREFIX = 'page-biz-service';
const EXAMPLE_IMAGE = 'https://publiccdn.neighbourhood.com.cn/img/delegate-example.png';
const COMMENT_IMAGE = 'https://publiccdn.neighbourhood.com.cn/img/delegate-comments.png';
export default function BizService() {
const inviteCode = useInviteCode();
const handleClickDelegate = useCallback(() => {
navigateTo(PageUrl.GroupDelegatePublish);
}, []);
const handlePreview = (current: string) => {
Taro.previewImage({
current,
urls: [EXAMPLE_IMAGE, COMMENT_IMAGE],
});
};
const handleOpenService = useCallback(() => {
openCustomerServiceChat('https://work.weixin.qq.com/kfid/kfcd60708731367168d');
}, []);
const handleSelectCity = useCallback(cityCode => {
if (!checkCityCode(cityCode)) {
return;
}
const group = GROUPS.find(g => String(g.cityCode) === cityCode);
if (group) {
openCustomerServiceChat(group.serviceUrl);
}
}, []);
useShareAppMessage(() => getCommonShareMessage({ inviteCode }));
return (
<HomePage>
<div className={PREFIX}>
<Tabs className={`${PREFIX}__tabs`} defaultValue={0}>
<Tabs.TabPane value={0} title="群代发">
<div className={`${PREFIX}__delegate`}>
<Image
mode="widthFix"
className={`${PREFIX}__header-image`}
src="https://publiccdn.neighbourhood.com.cn/img/pub-job.png"
/>
<div className={`${PREFIX}__delegate-h5`}></div>
<div className={`${PREFIX}__delegate-card`}>
<div className={`${PREFIX}__delegate-body`}></div>
<div className={`${PREFIX}__delegate-body`}>13</div>
<div className={`${PREFIX}__delegate-body`}></div>
<div className={`${PREFIX}__delegate-body`}></div>
</div>
<div className={`${PREFIX}__delegate-h5`}></div>
<div className={`${PREFIX}__delegate-card image`} onClick={() => handlePreview(EXAMPLE_IMAGE)}>
<Image className={`${PREFIX}__delegate-image`} src={EXAMPLE_IMAGE} mode="heightFix" />
</div>
<div className={`${PREFIX}__delegate-h5`}></div>
<div className={`${PREFIX}__delegate-card image`} onClick={() => handlePreview(COMMENT_IMAGE)}>
<Image className={`${PREFIX}__delegate-image`} src={COMMENT_IMAGE} mode="heightFix" />
</div>
<div className={`${PREFIX}__delegate-fix`}>
<Button className={`${PREFIX}__delegate-btn`} onClick={handleClickDelegate}>
</Button>
</div>
</div>
</Tabs.TabPane>
<Tabs.TabPane value={1} title="免费招">
<SearchCity
onSelectCity={handleSelectCity}
currentCity={getCurrentCityCode()}
forGroup
offset={72}
banner="点击城市名称,进本地通告群,免费招主播"
/>
</Tabs.TabPane>
<Tabs.TabPane value={2} title="代招">
<div className={`${PREFIX}__recruitment`}>
<div className={`${PREFIX}__recruitment-card`}>
<div className={`${PREFIX}__recruitment-h5`}></div>
<div className={`${PREFIX}__recruitment-body`}>-</div>
<div className={`${PREFIX}__recruitment-body`}>-广</div>
<div className={`${PREFIX}__recruitment-body`}>-</div>
<div className={`${PREFIX}__recruitment-body`}>-西</div>
<div className={`${PREFIX}__recruitment-body`}>-</div>
<div className={`${PREFIX}__recruitment-h5`}></div>
<div className={`${PREFIX}__recruitment-body`}></div>
<div className={`${PREFIX}__recruitment-body`}>200</div>
<div className={`${PREFIX}__recruitment-body`}></div>
<div className={`${PREFIX}__recruitment-h5`}></div>
<div className={`${PREFIX}__recruitment-body`}>
</div>
<div className={`${PREFIX}__recruitment-btn-group`}>
<Button className={`${PREFIX}__recruitment-btn`} onClick={handleOpenService}>
</Button>
</div>
</div>
</div>
</Tabs.TabPane>
</Tabs>
</div>
</HomePage>
);
}