feat: 放开识别入口

This commit is contained in:
2025-09-30 14:52:59 +08:00
parent 5ed8fc87d6
commit 596b1b53bd
5 changed files with 194 additions and 64 deletions

View File

@@ -0,0 +1,59 @@
@mixin commonAvatarStyle($multiple: 1) {
.avatar {
flex: 0 0 auto;
width: calc(100px * $multiple);
height: calc(100px * $multiple);
display: flex;
align-items: center;
justify-content: center;
background-color: #fff;
border-radius: 50%;
border: 1px solid #efefef;
overflow: hidden;
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.2), 0 8px 20px 0 rgba(0, 0, 0, 0.12);
.avatarUrl {
width: calc(90px * $multiple);
height: calc(90px * $multiple);
border-radius: 50%;
border: 1px solid #efefef;
}
}
.addonImage {
flex: 0 0 auto;
width: calc(88px * $multiple);
height: calc(88px * $multiple);
transform: rotate(8deg);
flex-shrink: 0;
aspect-ratio: 1/1;
border-radius: calc(20px * $multiple);
border: 4px solid #fff;
background: linear-gradient(
0deg,
rgba(89, 255, 214, 0.2) 0%,
rgba(89, 255, 214, 0.2) 100%
),
#fff;
box-shadow: 0 4px 36px 0 rgba(0, 0, 0, 0.12);
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
margin-left: calc(-1 * 20px * $multiple);
.docImage {
width: calc(48px * $multiple);
height: calc(48px * $multiple);
transform: rotate(-7deg);
flex-shrink: 0;
}
}
}
.avatarWrap {
display: flex;
align-items: center;
justify-content: flex-start;
@include commonAvatarStyle(0.5);
}

View File

@@ -1,21 +1,75 @@
import React from "react";
import { View, Text } from "@tarojs/components";
import { View, Text, Button, Image } from "@tarojs/components";
import Taro from "@tarojs/taro";
import { useUserInfo } from "@/store/userStore";
import ArrwoRight from "@/static/ntrp/ntrp_arrow_right.svg";
import CloseIcon from "@/static/ntrp/ntrp_popup_close.svg";
import DocCopy from "@/static/ntrp/ntrp_doc_copy.svg";
import styles from "./index.module.scss";
function NtrpPopupGuide() {
function NtrpPopupGuide(props: { close: () => void; skipGuide: () => void }) {
const { close, skipGuide } = props;
const userInfo = useUserInfo();
function handleTest() {
Taro.redirectTo({
url: `/other_pages/ntrp-evaluate/index`,
});
}
return (
<View className={styles.container}>
<View className={styles.top}>
<View className={styles.header}></View>
<View className={styles.avatarWrap}></View>
<View className={styles.title}>
<View></View>
<View></View>
<View className={styles.header}>
<View className={styles.closeBtn} onClick={close}>
<Image className={styles.closeIcon} src={CloseIcon} />
</View>
</View>
<View className={styles.avatarWrap}>
<View className={styles.avatar}>
<Image
className={styles.avatarUrl}
src={userInfo.avatar_url}
mode="aspectFit"
/>
</View>
{/* avatar side */}
<View className={styles.addonImage}>
<Image
className={styles.docImage}
src={DocCopy}
mode="aspectFill"
/>
</View>
</View>
<View>
<View className={styles.title}>
<Text></Text>
</View>
<View className={styles.title}>
<Text></Text>
<Text className={styles.colorTip}> (</Text>
<Text className={styles.strongTip}>NTRP</Text>
<Text className={styles.colorTip}>) </Text>
<Text>?</Text>
</View>
</View>
<View className={styles.desc}>
<Text> NTRP </Text>
</View>
</View>
<View className={styles.bottom}>
<View className={styles.jump}>
<Button onClick={handleTest}>
<Text></Text>
<Image className={styles.jumpIcon} src={ArrwoRight} />
</Button>
</View>
<View className={styles.direct}>
<Button onClick={skipGuide}>
<Text></Text>
</Button>
</View>
</View>
</View>
);
}

View File

@@ -1,55 +1,53 @@
import React, { useState } from 'react'
import { View, Text, Image } from '@tarojs/components'
import Taro from '@tarojs/taro'
import styles from './index.module.scss'
import images from '@/config/images'
import AiImportPopup from '@/publish_pages/publishBall/components/AiImportPopup'
import React, { useState } from "react";
import { View, Text, Image } from "@tarojs/components";
import Taro from "@tarojs/taro";
import styles from "./index.module.scss";
import images from "@/config/images";
import AiImportPopup from "@/publish_pages/publishBall/components/AiImportPopup";
export interface PublishMenuProps {
onPersonalPublish?: () => void
onActivityPublish?: () => void
onPersonalPublish?: () => void;
onActivityPublish?: () => void;
}
const PublishMenu: React.FC<PublishMenuProps> = () => {
const [isVisible, setIsVisible] = useState(false)
const [aiImportVisible, setAiImportVisible] = useState(false)
const [isVisible, setIsVisible] = useState(false);
const [aiImportVisible, setAiImportVisible] = useState(false);
const handleIconClick = () => {
setIsVisible(!isVisible)
}
setIsVisible(!isVisible);
};
const handleOverlayClick = () => {
setIsVisible(false)
}
const handleMenuItemClick = (type: 'individual' | 'group' | 'ai') => {
setIsVisible(false);
};
const handleMenuItemClick = (type: "individual" | "group" | "ai") => {
// 跳转到publishBall页面并传递type参数
console.log(type, 'type');
if (type === 'ai') {
setAiImportVisible(true)
setIsVisible(false)
return
console.log(type, "type");
if (type === "ai") {
setAiImportVisible(true);
setIsVisible(false);
return;
}
Taro.navigateTo({
url: `/publish_pages/publishBall/index?type=${type}`
})
setIsVisible(false)
}
url: `/publish_pages/publishBall/index?type=${type}`,
});
setIsVisible(false);
};
const handleAiImportClose = () => {
setAiImportVisible(false)
}
setAiImportVisible(false);
};
const handleManualPublish = () => {
Taro.navigateTo({
url: '/publish_pages/publishBall/index?type=individual'
})
}
url: "/publish_pages/publishBall/index?type=individual",
});
};
return (
<View className={styles.publishMenu}>
{/* 蒙层 */}
{isVisible && (
{/* 蒙层 */}
{isVisible && (
<View className={styles.overlay} onClick={handleOverlayClick} />
)}
{/* 菜单选项 */}
@@ -57,15 +55,21 @@ const PublishMenu: React.FC<PublishMenuProps> = () => {
<View className={styles.menuCard}>
<View
className={styles.menuItem}
onClick={() => handleMenuItemClick('individual')}
onClick={() => handleMenuItemClick("individual")}
>
<View className={styles.menuContent}>
<View className={styles.menuTitle}>
<View className={styles.menuTitle}>
<View className={styles.menuArrow}>
<Image src={images.ICON_ARROW_RIGHT_BLACK} className={styles.img} />
<Image
src={images.ICON_ARROW_RIGHT_BLACK}
className={styles.img}
/>
</View>
</View>
<Text className={styles.menuDesc}></Text>
<Text className={styles.menuDesc}>
</Text>
</View>
<View className={styles.menuIcon}>
<Image src={images.ICON_PERSON} />
@@ -74,44 +78,53 @@ const PublishMenu: React.FC<PublishMenuProps> = () => {
<View
className={styles.menuItem}
onClick={() => handleMenuItemClick('group')}
onClick={() => handleMenuItemClick("group")}
>
<View className={styles.menuContent}>
<View className={styles.menuTitle}>
<View className={styles.menuTitle}>
<View className={styles.menuArrow}>
<Image src={images.ICON_ARROW_RIGHT_BLACK} className={styles.img} />
<Image
src={images.ICON_ARROW_RIGHT_BLACK}
className={styles.img}
/>
</View>
</View>
<Text className={styles.menuDesc}></Text>
</View>
<View className={styles.menuIcon}>
<Image src={images.ICON_GROUP} />
</View>
<Image src={images.ICON_GROUP} />
</View>
</View>
{/* <View
<View
className={`${styles.menuItem} ${styles.aiItem}`}
onClick={() => handleMenuItemClick('ai')}
onClick={() => handleMenuItemClick("ai")}
>
<View className={styles.menuContent}>
<View className={styles.menuTitle}>智能发布球局
<View className={styles.menuTitle}>
<View className={styles.menuArrow}>
<Image src={images.ICON_ARROW_RIGHT_WHITE} className={styles.img} />
<Image
src={images.ICON_ARROW_RIGHT_WHITE}
className={styles.img}
/>
</View>
</View>
</View>
<Text className={styles.menuDesc}>识别文本/图片,快速导入球局信息</Text>
<Text className={styles.menuDesc}>
/
</Text>
</View>
<View className={styles.menuIcon}>
<Image src={images.ICON_IMPORTANT_BTN} />
</View>
</View> */}
</View>
</View>
)}
{/* 绿色圆形按钮 */}
<View
className={`${styles.greenButton} ${isVisible ? styles.rotated : ''}`}
className={`${styles.greenButton} ${isVisible ? styles.rotated : ""}`}
onClick={handleIconClick}
>
<Image src={images.ICON_PUBLISH} className={styles.closeIcon} />
@@ -124,7 +137,7 @@ const PublishMenu: React.FC<PublishMenuProps> = () => {
onManualPublish={handleManualPublish}
/>
</View>
)
}
);
};
export default PublishMenu
export default PublishMenu;

View File

@@ -315,7 +315,7 @@ function StickyButton(props) {
const displayPrice = is_organizer ? 0 : price;
// user_action_status.can_assess = true;
// user_action_status.can_join = false;
console.log(user_action_status, "user_action");
// console.log(user_action_status, "user_action");
const {
can_assess,
can_join,

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M7 7L17 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7 17L17 7" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 313 B