diff --git a/src/components/user-batch-publish/index.tsx b/src/components/user-batch-publish/index.tsx index 0db5830..7b9aba5 100644 --- a/src/components/user-batch-publish/index.tsx +++ b/src/components/user-batch-publish/index.tsx @@ -1,4 +1,4 @@ -import { Button, Image, Text } from '@tarojs/components'; +import { Button, Text } from '@tarojs/components'; import Taro from '@tarojs/taro'; import { Cell } from '@taroify/core'; @@ -35,29 +35,36 @@ interface CityOption extends ISelectOption { const PREFIX = 'user-batch-publish'; const log = logWithPrefix(PREFIX); -const SERVICE_ILLUSTRATE = `群发次数:每日一次,连发3天 -群发内容:仅限主播招聘通告,违规内容不发 -联系方法:通告中留通告主联系方式,主播直接联系`; +const SERVICE_ILLUSTRATE = `服务方式:帮您把招聘需求发到众多同城合作主播群 +群发次数:每日1次,连发3天 +内容要求:仅限带货主播招聘需求,其他不发 +主播联系:内容中留招聘方联系方式,主播直接联系`; const cityValues: CityValue[] = [ - { cityCode: '440100', cityName: '广州', count: 300 }, + { cityCode: '440100', cityName: '广州', count: 300 }, // 800 { cityCode: '440300', cityName: '深圳', count: 100 }, - { cityCode: '330100', cityName: '杭州', count: 300 }, - { cityCode: '110100', cityName: '北京', count: 100 }, - { cityCode: '510100', cityName: '成都', count: 50 }, + { cityCode: '330100', cityName: '杭州', count: 300 }, // 750 + { cityCode: '110100', cityName: '北京', count: 100 }, // 150 + { cityCode: '510100', cityName: '成都', count: 100 }, + // { cityCode: '500100', cityName: '重庆', count: 50 }, { cityCode: '430100', cityName: '长沙', count: 50 }, { cityCode: '350200', cityName: '厦门', count: 50 }, - { cityCode: '310100', cityName: '上海', count: 100 }, - { cityCode: '420100', cityName: '武汉', count: 50 }, - { cityCode: '610100', cityName: '西安', count: 50 }, - { cityCode: '410100', cityName: '郑州', count: 100 }, + { cityCode: '310100', cityName: '上海', count: 100 }, // 150 + { cityCode: '420100', cityName: '武汉', count: 50 }, // 80 + { cityCode: '610100', cityName: '西安', count: 50 }, // 60 + { cityCode: '410100', cityName: '郑州', count: 100 }, // 150 ].sort((a, b) => b.count - a.count); const MIN_GROUP_SIZE = 20; const GROUP_OPTIONS = [ { value: MIN_GROUP_SIZE, productSpecId: ProductSpecId.GroupBatchPublish20, label: '20', price: 18 }, { value: 50, productSpecId: ProductSpecId.GroupBatchPublish50, label: '50', price: 40 }, + { value: 60, productSpecId: ProductSpecId.GroupBatchPublish60, label: '60', price: 48 }, + { value: 80, productSpecId: ProductSpecId.GroupBatchPublish80, label: '80', price: 58 }, { value: 100, productSpecId: ProductSpecId.GroupBatchPublish100, label: '100', price: 68 }, + { value: 150, productSpecId: ProductSpecId.GroupBatchPublish150, label: '150', price: 98 }, { value: 300, productSpecId: ProductSpecId.GroupBatchPublish300, label: '300', price: 128 }, - { value: 500, productSpecId: ProductSpecId.GroupBatchPublish500, label: '500', price: 188 }, + { value: 500, productSpecId: ProductSpecId.GroupBatchPublish500, label: '500', price: 188 }, // 168 + { value: 750, productSpecId: ProductSpecId.GroupBatchPublish750, label: '750', price: 188 }, + { value: 800, productSpecId: ProductSpecId.GroupBatchPublish800, label: '800', price: 198 }, { value: 1000, productSpecId: ProductSpecId.GroupBatchPublish1000, label: '1000', price: 288 }, ]; @@ -156,7 +163,7 @@ export default function UserBatchPublish() { return (
- + {/**/}
请选择城市
可购买群数
diff --git a/src/constants/app.ts b/src/constants/app.ts index a0a6314..d35b869 100644 --- a/src/constants/app.ts +++ b/src/constants/app.ts @@ -74,6 +74,7 @@ export enum PageUrl { PrivacyWebview = 'pages/privacy-webview/index', Partner = 'pages/partner/index', WithdrawRecord = 'pages/withdraw-record/index', + GroupDelegatePublish = 'pages/group-delegate-publish/index', } export enum PluginUrl { diff --git a/src/constants/product.ts b/src/constants/product.ts index a86066a..b699334 100644 --- a/src/constants/product.ts +++ b/src/constants/product.ts @@ -32,9 +32,14 @@ export enum ProductSpecId { NewMonthlyVIP = 'VIP_M_NEW', // 18 每天五次 GroupBatchPublish20 = 'GROUP_BATCH_PUSH_20', GroupBatchPublish50 = 'GROUP_BATCH_PUSH_50', + GroupBatchPublish60 = 'GROUP_BATCH_PUSH_60', + GroupBatchPublish80 = 'GROUP_BATCH_PUSH_80', GroupBatchPublish100 = 'GROUP_BATCH_PUSH_100', + GroupBatchPublish150 = 'GROUP_BATCH_PUSH_150', GroupBatchPublish300 = 'GROUP_BATCH_PUSH_300', GroupBatchPublish500 = 'GROUP_BATCH_PUSH_500', + GroupBatchPublish750 = 'GROUP_BATCH_PUSH_750', + GroupBatchPublish800 = 'GROUP_BATCH_PUSH_800', GroupBatchPublish1000 = 'GROUP_BATCH_PUSH_1000', BOSS_PUB_JOB_1 = 'BOSS_PUB_JOB_1', // 旧版企业发通告会员 BOSS_VIP_NEW_1 = 'BOSS_VIP_NEW_1', // 新版企业发通告会员 - 周 diff --git a/src/hooks/use-config.tsx b/src/hooks/use-config.tsx index 93b2375..1f646fe 100644 --- a/src/hooks/use-config.tsx +++ b/src/hooks/use-config.tsx @@ -48,7 +48,7 @@ const CompanyTabs: TabItemType[] = [ { type: PageType.BatchPublish, pagePath: PageUrl.UserBatchPublish, - text: '代招代发', + text: '免费招', }, ]; @@ -97,6 +97,7 @@ export const APP_CONFIG: AppConfigType = { PageUrl.PrivacyWebview, PageUrl.Partner, PageUrl.WithdrawRecord, + PageUrl.GroupDelegatePublish, // PageUrl.DevDebug, ], window: { diff --git a/src/pages/anchor/index.tsx b/src/pages/anchor/index.tsx index c46c9c6..7d8420c 100644 --- a/src/pages/anchor/index.tsx +++ b/src/pages/anchor/index.tsx @@ -186,7 +186,7 @@ export default function AnchorPage() { }); useShareAppMessage(() => { - return getCommonShareMessage(true, inviteCode, '数万名优质主播等你来挑'); + return getCommonShareMessage({ useCapture: true, inviteCode, title: '数万名优质主播等你来挑' }); }); useDidShow(() => requestUnreadMessageCount()); diff --git a/src/pages/group-delegate-publish/index.config.ts b/src/pages/group-delegate-publish/index.config.ts new file mode 100644 index 0000000..643b0e4 --- /dev/null +++ b/src/pages/group-delegate-publish/index.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '群代发', +}); diff --git a/src/pages/group-delegate-publish/index.less b/src/pages/group-delegate-publish/index.less new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/group-delegate-publish/index.tsx b/src/pages/group-delegate-publish/index.tsx new file mode 100644 index 0000000..58fdbb8 --- /dev/null +++ b/src/pages/group-delegate-publish/index.tsx @@ -0,0 +1,12 @@ +import UserBatchPublish from '@/components/user-batch-publish'; +import './index.less'; + +const PREFIX = 'group-delegate-publish'; + +export default function Partner() { + return ( +
+ +
+ ); +} diff --git a/src/pages/group-v2/index.tsx b/src/pages/group-v2/index.tsx index 062efd8..c74361a 100644 --- a/src/pages/group-v2/index.tsx +++ b/src/pages/group-v2/index.tsx @@ -24,7 +24,7 @@ export default function GroupV2() { getInviteCodeFromQueryAndUpdate(query); }); - useShareAppMessage(() => getCommonShareMessage(true, inviteCode)); + useShareAppMessage(() => getCommonShareMessage({ inviteCode })); const handleSelectCity = useCallback(cityCode => { if (!checkCityCode(cityCode)) { diff --git a/src/pages/job-detail/index.tsx b/src/pages/job-detail/index.tsx index 2a3bcf9..d3c8d51 100644 --- a/src/pages/job-detail/index.tsx +++ b/src/pages/job-detail/index.tsx @@ -235,7 +235,7 @@ export default function JobDetail() { useShareAppMessage(() => { if (!data) { - return getCommonShareMessage(true, inviteCode); + return getCommonShareMessage({ inviteCode }); } return { title: getJobTitle(data) || '', diff --git a/src/pages/job/index.tsx b/src/pages/job/index.tsx index c6cb001..b85af08 100644 --- a/src/pages/job/index.tsx +++ b/src/pages/job/index.tsx @@ -121,7 +121,7 @@ export default function Job() { path: getJumpUrl(PageUrl.Job, { sortType, c: inviteCode }), }; } - return getCommonShareMessage(true, inviteCode); + return getCommonShareMessage({ inviteCode }); }); return ( diff --git a/src/pages/material-profile/index.tsx b/src/pages/material-profile/index.tsx index e36fca6..4a5c6c9 100644 --- a/src/pages/material-profile/index.tsx +++ b/src/pages/material-profile/index.tsx @@ -70,7 +70,7 @@ export default function MaterialProfilePage() { useShareAppMessage(async () => { const shareMessage = await getMaterialShareMessage(profile, false); - return shareMessage || getCommonShareMessage(false); + return shareMessage || getCommonShareMessage({ useCapture: false }); }); if (!profile) { diff --git a/src/pages/partner/index.tsx b/src/pages/partner/index.tsx index 4d1677e..ffde97f 100644 --- a/src/pages/partner/index.tsx +++ b/src/pages/partner/index.tsx @@ -20,7 +20,7 @@ export default function Partner() { }; useShareAppMessage(() => { console.log('Partner inviteCode', inviteCode); - return getCommonShareMessage(false, inviteCode); + return getCommonShareMessage({ useCapture: false, inviteCode }); }); return ( diff --git a/src/pages/user-batch-publish/index.less b/src/pages/user-batch-publish/index.less index 3aabde1..df35aef 100644 --- a/src/pages/user-batch-publish/index.less +++ b/src/pages/user-batch-publish/index.less @@ -21,6 +21,72 @@ padding-top: var(--tabs-wrap-height); } } + &__header-image { + width: 100%; + height: 120px; + } + &__delegate { + & { + padding: 24px; + padding-bottom: calc(120px + env(safe-area-inset-bottom)); + } + + &-fix { + width: 100%; + background: #f5f6fa; + padding-left: 24px; + padding-right: 24px; + position: fixed; + left: 0; + right: 0; + bottom: 110px; + box-sizing: border-box; + padding-bottom: calc(24px + env(safe-area-inset-bottom)); + } + &-image { + width: 100%; + height: 298px; + } + &-card { + background: #fff; + padding: 24px; + border-radius: 24px; + &.image { + padding: 1px; + justify-content: center; + align-items: center; + display: flex; + } + } + + &-h5 { + font-style: normal; + font-weight: 400; + font-size: 28px; + line-height: 32px; + color: @blColor; + padding-top: 40px; + padding-bottom: 24px; + + &:first-child { + padding-top: 0; + } + } + &-body { + font-weight: 400; + font-size: 28px; + line-height: 48px; + color: @blColorG2; + &.link { + margin-top: 16px; + color: @blHighlightColor; + } + } + &-btn { + .button(@width: 100%; @height: 80px; @fontSize: 32px); + margin-top: 32px; + } + } &__recruitment { padding: 24px; diff --git a/src/pages/user-batch-publish/index.tsx b/src/pages/user-batch-publish/index.tsx index c5cac68..09540f1 100644 --- a/src/pages/user-batch-publish/index.tsx +++ b/src/pages/user-batch-publish/index.tsx @@ -1,24 +1,37 @@ -import { useShareAppMessage } from '@tarojs/taro'; +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 UserBatchPublish from '@/components/user-batch-publish'; +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'); }, []); @@ -31,13 +44,42 @@ export default function BizService() { openCustomerServiceChat(group.serviceUrl); } }, []); - useShareAppMessage(() => getCommonShareMessage(true, inviteCode)); + useShareAppMessage(() => getCommonShareMessage({ inviteCode })); return (
- + +
+ +
服务说明
+
+
服务方式:帮您把招聘需求发到众多同城合作主播群
+
群发次数:每日1次,连发3天
+
内容要求:仅限带货主播招聘需求,其他不发
+
主播联系:内容中留招聘方联系方式,主播直接联系
+
+
代发示例
+
handlePreview(EXAMPLE_IMAGE)}> + +
+
部分客户评价
+
handlePreview(COMMENT_IMAGE)}> + +
+
+ +
+
+
+ - - -
diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 3f9742c..6c0168d 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -38,7 +38,7 @@ export default function User() { [] ); - useShareAppMessage(() => getCommonShareMessage(false)); + useShareAppMessage(() => getCommonShareMessage({ useCapture: false })); return ( diff --git a/src/pages/withdraw-record/index.tsx b/src/pages/withdraw-record/index.tsx index a3cc0de..f3a0806 100644 --- a/src/pages/withdraw-record/index.tsx +++ b/src/pages/withdraw-record/index.tsx @@ -91,7 +91,7 @@ export default function WithdrawRecords() { refresh(); }, []); useShareAppMessage(() => { - return getCommonShareMessage(false, inviteCode); + return getCommonShareMessage({ useCapture: false, inviteCode }); }); return ( diff --git a/src/utils/share.ts b/src/utils/share.ts index f30082e..c07ca9d 100644 --- a/src/utils/share.ts +++ b/src/utils/share.ts @@ -15,15 +15,27 @@ const getRandomCount = () => { return (seed % 300) + 500; }; -export const getCommonShareMessage = ( - useCapture: boolean = true, - inviteCode?: string, - title?: string -): ShareAppMessageReturn => { - console.log('share share message', getJumpUrl(PageUrl.Job, inviteCode ? { c: inviteCode } : undefined)); +interface ShareAppProps { + useCapture?: boolean; + inviteCode?: string; + title?: string; + path?: PageUrl; + params?: Record; +} + +export const getCommonShareMessage = ({ + useCapture = true, + inviteCode, + title, + path, + params = {}, +}: ShareAppProps = {}): ShareAppMessageReturn => { + const inviteParams = inviteCode ? { c: inviteCode } : undefined; + const sharePath = path ? getJumpUrl(path, { ...params, ...inviteParams }) : getJumpUrl(PageUrl.Job, inviteParams); + console.log('share share message', sharePath); return { title: title || `昨天新增了${getRandomCount()}条主播通告,宝子快来看看`, - path: getJumpUrl(PageUrl.Job, inviteCode ? { c: inviteCode } : undefined), + path: sharePath, imageUrl: useCapture ? undefined : imageUrl, }; };