Compare commits
2 Commits
2c48a70b6d
...
80846d507f
Author | SHA1 | Date | |
---|---|---|---|
80846d507f | |||
42d1208ee4 |
@ -22,7 +22,7 @@ const GET_CONTACT_TYPE_OPTIONS = [
|
|||||||
{
|
{
|
||||||
type: GET_CONTACT_TYPE.SHARE,
|
type: GET_CONTACT_TYPE.SHARE,
|
||||||
icon: 'https://publiccdn.neighbourhood.com.cn/img/file.svg',
|
icon: 'https://publiccdn.neighbourhood.com.cn/img/file.svg',
|
||||||
title: '完善资料',
|
title: '转发推广',
|
||||||
desc: '转发给朋友可享推荐奖励',
|
desc: '转发给朋友可享推荐奖励',
|
||||||
btnText: '分享',
|
btnText: '分享',
|
||||||
},
|
},
|
||||||
@ -30,7 +30,7 @@ const GET_CONTACT_TYPE_OPTIONS = [
|
|||||||
type: GET_CONTACT_TYPE.VIP,
|
type: GET_CONTACT_TYPE.VIP,
|
||||||
icon: 'https://publiccdn.neighbourhood.com.cn/img/diamond.svg',
|
icon: 'https://publiccdn.neighbourhood.com.cn/img/diamond.svg',
|
||||||
title: '播络会员',
|
title: '播络会员',
|
||||||
desc: '开通会员每天可查看10个',
|
desc: '开通会员每天可查看5个',
|
||||||
btnText: '开通',
|
btnText: '开通',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -82,7 +82,10 @@ function ProductGroupDialog(props: IProps) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 否则:如果有解锁次数,显示是否确定消费。无解锁次数,显示不无次数 UI
|
// 否则:如果有解锁次数,显示是否确定消费。无解锁次数,显示不无次数 UI
|
||||||
const [time, detail] = await Promise.all([requestProductBalance(PRODUCT_CODE), requestGroupDetail(blGroupId)]);
|
const [[time], detail] = await Promise.all([
|
||||||
|
requestProductBalance(PRODUCT_CODE),
|
||||||
|
requestGroupDetail(blGroupId),
|
||||||
|
]);
|
||||||
setGroupDetail(detail);
|
setGroupDetail(detail);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
setStatus(DialogStatus.GROUP_NEED_BUY_ADD);
|
setStatus(DialogStatus.GROUP_NEED_BUY_ADD);
|
||||||
|
@ -102,7 +102,7 @@ function ProductJobWithGroupDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 否则:如果有解锁次数,显示是否确定消费。无解锁次数,显示不无次数 UI
|
// 否则:如果有解锁次数,显示是否确定消费。无解锁次数,显示不无次数 UI
|
||||||
const time = await requestProductBalance(ProductType.AddGroup);
|
const [time] = await requestProductBalance(ProductType.AddGroup);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
setStatus(DialogStatus.JOB_CONTACT_NEED_BUY_GROUP);
|
setStatus(DialogStatus.JOB_CONTACT_NEED_BUY_GROUP);
|
||||||
} else {
|
} else {
|
||||||
@ -119,7 +119,7 @@ function ProductJobWithGroupDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 自动报单
|
// 自动报单
|
||||||
const time = await requestProductBalance(ProductType.GetJob);
|
const [time] = await requestProductBalance(ProductType.GetJob);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
setStatus(DialogStatus.JOB_UNABLE_UNLOCK);
|
setStatus(DialogStatus.JOB_UNABLE_UNLOCK);
|
||||||
} else {
|
} else {
|
||||||
|
@ -15,7 +15,6 @@ import { DeclarationType, ProductType } from '@/constants/product';
|
|||||||
import { JobDetails } from '@/types/job';
|
import { JobDetails } from '@/types/job';
|
||||||
import { ProductInfo } from '@/types/product';
|
import { ProductInfo } from '@/types/product';
|
||||||
import { logWithPrefix } from '@/utils/common';
|
import { logWithPrefix } from '@/utils/common';
|
||||||
import { getSkipPrejobAction, setSkipPrejobAction } from '@/utils/job';
|
|
||||||
import {
|
import {
|
||||||
requestAllBuyProduct,
|
requestAllBuyProduct,
|
||||||
requestProductBalance,
|
requestProductBalance,
|
||||||
@ -49,6 +48,7 @@ function ProductJobDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
|
|
||||||
const handleClosePrejob = useCallback(() => {
|
const handleClosePrejob = useCallback(() => {
|
||||||
setShowPrejob(false);
|
setShowPrejob(false);
|
||||||
|
onClose();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleConfirmPrejob = useCallback(async (type: GET_CONTACT_TYPE) => {
|
const handleConfirmPrejob = useCallback(async (type: GET_CONTACT_TYPE) => {
|
||||||
@ -63,7 +63,7 @@ function ProductJobDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleAfterBuy = useCallback(async () => {
|
const handleAfterBuy = useCallback(async () => {
|
||||||
const time = await requestProductBalance(PRODUCT_CODE);
|
const [time] = await requestProductBalance(PRODUCT_CODE);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
Toast.error('发生错误请重试');
|
Toast.error('发生错误请重试');
|
||||||
onClose();
|
onClose();
|
||||||
@ -110,19 +110,14 @@ function ProductJobDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const time = await requestProductBalance(PRODUCT_CODE);
|
const [time, isPaidVip] = await requestProductBalance(PRODUCT_CODE);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
const allowBuy = await requestAllBuyProduct(PRODUCT_CODE);
|
const allowBuy = await requestAllBuyProduct(PRODUCT_CODE);
|
||||||
setShowContact(true);
|
setShowContact(true);
|
||||||
setStatus(allowBuy ? DialogStatus.JOB_BUY : DialogStatus.JOB_UNABLE_UNLOCK);
|
setStatus(allowBuy ? DialogStatus.JOB_BUY : DialogStatus.JOB_UNABLE_UNLOCK);
|
||||||
}
|
} else if (isPaidVip || skipPreAction) {
|
||||||
// 创建模卡之后可以直接解锁一次, 分享后解锁一次
|
|
||||||
else if (getSkipPrejobAction() || skipPreAction) {
|
|
||||||
const productInfo = await requestUseProduct(PRODUCT_CODE, { jobId: data.id });
|
const productInfo = await requestUseProduct(PRODUCT_CODE, { jobId: data.id });
|
||||||
setShowPrejob(false);
|
setShowPrejob(false);
|
||||||
if (!skipPreAction) {
|
|
||||||
setSkipPrejobAction(false);
|
|
||||||
}
|
|
||||||
handleContact(productInfo.declarationTypeResult);
|
handleContact(productInfo.declarationTypeResult);
|
||||||
} else {
|
} else {
|
||||||
setShowPrejob(true);
|
setShowPrejob(true);
|
||||||
@ -132,6 +127,7 @@ function ProductJobDialog(props: Omit<IProps, 'visible'>) {
|
|||||||
// handleContact(productInfo.declarationTypeResult);
|
// handleContact(productInfo.declarationTypeResult);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
Toast.error('出错了,请重试');
|
Toast.error('出错了,请重试');
|
||||||
handleCloseDialog();
|
handleCloseDialog();
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -115,7 +115,7 @@ export function CompanyPublishJobDialog(props: IProps) {
|
|||||||
try {
|
try {
|
||||||
const productCode = ProductType.CompanyPublishJob;
|
const productCode = ProductType.CompanyPublishJob;
|
||||||
Taro.showLoading();
|
Taro.showLoading();
|
||||||
const time = await requestProductBalance(productCode);
|
const [time] = await requestProductBalance(productCode);
|
||||||
if (time <= 0) {
|
if (time <= 0) {
|
||||||
setStatus(DialogStatus.COMPANY_PUBLISH_JOB_BUY);
|
setStatus(DialogStatus.COMPANY_PUBLISH_JOB_BUY);
|
||||||
return;
|
return;
|
||||||
|
@ -70,7 +70,7 @@ export default function GroupBuy(props: IProps) {
|
|||||||
if (status !== OrderStatus.Success) {
|
if (status !== OrderStatus.Success) {
|
||||||
throw new Error('order status error');
|
throw new Error('order status error');
|
||||||
}
|
}
|
||||||
const time = await requestProductBalance(ProductType.AddGroup);
|
const [time] = await requestProductBalance(ProductType.AddGroup);
|
||||||
log('handleBuy new addGroupTime', time);
|
log('handleBuy new addGroupTime', time);
|
||||||
onConfirm(time);
|
onConfirm(time);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -15,5 +15,4 @@ export enum CacheKey {
|
|||||||
JOIN_GROUP_CARD_CLICKED = '__join_group_card_clicked__',
|
JOIN_GROUP_CARD_CLICKED = '__join_group_card_clicked__',
|
||||||
SHARE_TO_GET_JOB_CONTACT = '__share_to_get_job_contract__',
|
SHARE_TO_GET_JOB_CONTACT = '__share_to_get_job_contract__',
|
||||||
SHARE_TO_GET_ANCHOR_CONTACT = '__share_to_get_anchor_contract__',
|
SHARE_TO_GET_ANCHOR_CONTACT = '__share_to_get_anchor_contract__',
|
||||||
SKIP_PREACTION = '__skip_preaction__',
|
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ export enum RESPONSE_ERROR_CODE {
|
|||||||
INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE', // 聊天或者模卡查看超出限制
|
INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE', // 聊天或者模卡查看超出限制
|
||||||
INSUFFICIENT_FREE_BALANCE = 'INSUFFICIENT_FREE_BALANCE', // 免费查看次数(未购买会员)超限
|
INSUFFICIENT_FREE_BALANCE = 'INSUFFICIENT_FREE_BALANCE', // 免费查看次数(未购买会员)超限
|
||||||
BOSS_VIP_EXPIRED = 'BOSS_VIP_EXPIRED', // 会员过期
|
BOSS_VIP_EXPIRED = 'BOSS_VIP_EXPIRED', // 会员过期
|
||||||
|
CHAT_MSG_SEND_NOT_ALLOW = 'CHAT_MSG_SEND_NOT_ALLOW',
|
||||||
}
|
}
|
||||||
|
|
||||||
export const RESPONSE_ERROR_INFO: { [key in RESPONSE_ERROR_CODE]?: string } = {
|
export const RESPONSE_ERROR_INFO: { [key in RESPONSE_ERROR_CODE]?: string } = {
|
||||||
|
@ -271,9 +271,11 @@ export default function JobDetail() {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useLoad(async () => {
|
useLoad(async () => {
|
||||||
switchRoleType(RoleType.Anchor);
|
const query = getPageQuery<Pick<JobDetails, 'id'> & { c: string; share: string }>();
|
||||||
|
|
||||||
const query = getPageQuery<Pick<JobDetails, 'id'> & { c: string }>();
|
if (query?.share === 'true') {
|
||||||
|
switchRoleType(RoleType.Anchor);
|
||||||
|
}
|
||||||
getInviteCodeFromQueryAndUpdate(query);
|
getInviteCodeFromQueryAndUpdate(query);
|
||||||
const jobId = query?.id;
|
const jobId = query?.id;
|
||||||
if (!jobId) {
|
if (!jobId) {
|
||||||
|
@ -15,7 +15,7 @@ import useLocation from '@/hooks/use-location';
|
|||||||
import { MaterialProfile } from '@/types/material';
|
import { MaterialProfile } from '@/types/material';
|
||||||
import { logWithPrefix } from '@/utils/common';
|
import { logWithPrefix } from '@/utils/common';
|
||||||
import { collectEvent } from '@/utils/event';
|
import { collectEvent } from '@/utils/event';
|
||||||
import { isFullTimePriceRequired, isPartTimePriceRequired, setSkipPrejobAction } from '@/utils/job';
|
import { isFullTimePriceRequired, isPartTimePriceRequired } from '@/utils/job';
|
||||||
import { updateProfile, subscribeMaterialMessage } from '@/utils/material';
|
import { updateProfile, subscribeMaterialMessage } from '@/utils/material';
|
||||||
import { navigateBack } from '@/utils/route';
|
import { navigateBack } from '@/utils/route';
|
||||||
import Toast from '@/utils/toast';
|
import Toast from '@/utils/toast';
|
||||||
@ -110,7 +110,6 @@ export default function MaterialCreateProfile() {
|
|||||||
// 发起订阅不能在异步任务中,保证是第一个
|
// 发起订阅不能在异步任务中,保证是第一个
|
||||||
await Promise.all([subscribeMaterialMessage(), updateProfile(data)]);
|
await Promise.all([subscribeMaterialMessage(), updateProfile(data)]);
|
||||||
}
|
}
|
||||||
setSkipPrejobAction();
|
|
||||||
Taro.eventCenter.trigger(EventName.CREATE_PROFILE);
|
Taro.eventCenter.trigger(EventName.CREATE_PROFILE);
|
||||||
nextType ? setGroupType(nextType) : navigateBack(2);
|
nextType ? setGroupType(nextType) : navigateBack(2);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -167,6 +167,9 @@ export default function MessageChat() {
|
|||||||
) {
|
) {
|
||||||
tips = '今日申请交换联系方式次数已用完,当前每日限制为5次';
|
tips = '今日申请交换联系方式次数已用完,当前每日限制为5次';
|
||||||
duration = 3000;
|
duration = 3000;
|
||||||
|
} else if (errorCode === RESPONSE_ERROR_CODE.CHAT_MSG_SEND_NOT_ALLOW) {
|
||||||
|
tips = '账号已在另一台设备上切换身份,本条消息未发送成功,请在本设备重新切换身份后,再发送消息';
|
||||||
|
duration = 5000;
|
||||||
}
|
}
|
||||||
tips.length > 7 ? Toast.info(tips, duration) : Toast.error(tips, duration);
|
tips.length > 7 ? Toast.info(tips, duration) : Toast.error(tips, duration);
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,9 @@
|
|||||||
padding-top: var(--tabs-wrap-height);
|
padding-top: var(--tabs-wrap-height);
|
||||||
}
|
}
|
||||||
|
|
||||||
.taroify-tabs__nav .taroify-tabs__tab:nth-child(2) .taroify-badge-wrapper {
|
//.taroify-tabs__nav .taroify-tabs__tab:nth-child(2) .taroify-badge-wrapper {
|
||||||
left: 18px;
|
// left: 18px;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__star {
|
&__star {
|
||||||
|
@ -106,7 +106,7 @@ export default function BizService() {
|
|||||||
title={
|
title={
|
||||||
<>
|
<>
|
||||||
主播群
|
主播群
|
||||||
<Image src={require('@/statics/svg/star.svg')} className={`${PREFIX}__star`} />
|
{/*<Image src={require('@/statics/svg/star.svg')} className={`${PREFIX}__star`} />*/}
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
@ -13,6 +13,7 @@ export interface ProductInfo {
|
|||||||
balance: number;
|
balance: number;
|
||||||
created: number;
|
created: number;
|
||||||
updated: number;
|
updated: number;
|
||||||
|
isPaidVip?: boolean;
|
||||||
// 报单类型信息,只有 use 接口返回值才有
|
// 报单类型信息,只有 use 接口返回值才有
|
||||||
declarationTypeResult?: DeclarationTypeResult;
|
declarationTypeResult?: DeclarationTypeResult;
|
||||||
}
|
}
|
||||||
|
@ -132,14 +132,6 @@ export function postCloseJob(jobId: string) {
|
|||||||
return http.post(API.CLOSE_JOB, { data: { jobId }, contentType: 'application/x-www-form-urlencoded' });
|
return http.post(API.CLOSE_JOB, { data: { jobId }, contentType: 'application/x-www-form-urlencoded' });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setSkipPrejobAction(skip = true) {
|
|
||||||
Taro.setStorageSync(CacheKey.SKIP_PREACTION, skip);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getSkipPrejobAction() {
|
|
||||||
return !!Taro.getStorageSync(CacheKey.SKIP_PREACTION);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function setShareToGetContact(job = true) {
|
export function setShareToGetContact(job = true) {
|
||||||
Taro.setStorageSync(job ? CacheKey.SHARE_TO_GET_JOB_CONTACT : CacheKey.SHARE_TO_GET_ANCHOR_CONTACT, true);
|
Taro.setStorageSync(job ? CacheKey.SHARE_TO_GET_JOB_CONTACT : CacheKey.SHARE_TO_GET_ANCHOR_CONTACT, true);
|
||||||
}
|
}
|
||||||
|
@ -54,13 +54,13 @@ export async function requestUseProduct(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取某个产品的剩余解锁次数
|
// 获取某个产品的剩余解锁次数
|
||||||
export async function requestProductBalance(productCode: ProductType) {
|
export async function requestProductBalance(productCode: ProductType): Promise<[number, boolean | undefined]> {
|
||||||
const data: GetProductDetailRequest = { productCode, userId: getUserId() };
|
const data: GetProductDetailRequest = { productCode, userId: getUserId() };
|
||||||
const { balance } = await http.post<ProductInfo>(API.GET_PRODUCT_DETAIL, {
|
const { balance, isPaidVip } = await http.post<ProductInfo>(API.GET_PRODUCT_DETAIL, {
|
||||||
data,
|
data,
|
||||||
contentType: 'application/x-www-form-urlencoded',
|
contentType: 'application/x-www-form-urlencoded',
|
||||||
});
|
});
|
||||||
return balance;
|
return [balance, isPaidVip];
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否可以购买某一个产品
|
// 是否可以购买某一个产品
|
||||||
|
Reference in New Issue
Block a user