feat: anazi

This commit is contained in:
hackrobot
2025-04-14 07:16:02 -05:00
parent b7fdbc2497
commit 24fb2aa175
4 changed files with 58 additions and 15 deletions

View File

@@ -45,6 +45,7 @@
"@tarojs/shared": "3.6.20", "@tarojs/shared": "3.6.20",
"@tarojs/taro": "3.6.20", "@tarojs/taro": "3.6.20",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"canvas-confetti": "^1.9.3",
"github-markdown-css": "^5.6.1", "github-markdown-css": "^5.6.1",
"marked": "^14.1.2", "marked": "^14.1.2",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",

View File

@@ -23,11 +23,19 @@ import {
import { AtToast } from "taro-ui"; import { AtToast } from "taro-ui";
import { AtIcon } from "taro-ui"; import { AtIcon } from "taro-ui";
import iphone from "../../images/iphone.jpg"; import iphone from "../../images/iphone.jpg";
import gif11 from "../../images/11.gif";
import confetti from "canvas-confetti";
import gif22 from "../../images/22.gif";
import doro11 from "../../images/doro11.gif";
import testmpkv from "../../images/test.mp4"; import testmpkv from "../../images/test.mp4";
const Index = () => { const Index = () => {
// ws://(或者 wss:// 对于 HTTPS 环境 // ws://(或者 wss:// 对于 HTTPS 环境
const [message, setMessage] = useState(""); const [message, setMessage] = useState("");
const [status, setStatus] = useState("0"); //0无状态,1是小新
const [messageArr, setMessageArr] = useState([]); const [messageArr, setMessageArr] = useState([]);
useEffect(() => { useEffect(() => {
@@ -44,9 +52,23 @@ const Index = () => {
socket.onmessage = (event) => { socket.onmessage = (event) => {
console.log("接收到消息:", event.data); console.log("接收到消息:", event.data);
setMessage(event.data); // 更新消息状态 setMessage(event.data); // 更新消息状态
if (event.data.includes("【聊天msg】")) {
if (event.data?.includes("11")) {
setStatus("1");
setTimeout(() => {
setStatus("0");
}, 1000); // 2秒后恢复
}
if (event.data?.includes("22")) {
setStatus("2");
setTimeout(() => {
setStatus("0");
}, 5000); // 2秒后恢复
}
}
// TTS播放 // TTS播放
// speak(event.data) speak(event.data);
setMessageArr((messageArr) => [event.data,...messageArr]); // 更新消息数组 setMessageArr((messageArr) => [event.data, ...messageArr]); // 更新消息数组
}; };
// WebSocket 关闭时触发 // WebSocket 关闭时触发
@@ -108,17 +130,30 @@ const Index = () => {
return ( return (
<View className="index"> <View className="index">
<View> <span style={{color:'green'}}>11</span> 变小新</View>
<View> <span style={{color:'green'}}>22</span> 娜娜子</View>
<View className="messageArr"> <View className="messageArr">
{messageArr.map((item, index) => ( {messageArr?.slice(0, 15)?.map((item, index) => (
<View key={index} className={index===0?"message_item_first":"message_item"}> <View
{item} key={index}
</View> className={index === 0 ? "message_item_first" : "message_item"}
))} >
{item}
</View>
))}
</View> </View>
{/* 添加doro的gif组合场景 */} {/* 添加doro的gif组合场景 */}
<View className="gifImg">
<Image
className="index_gif"
mode={"scaleToFill"}
src={status === "1" ? gif11 :status === "2" ?gif22:doro11}
/>
</View>
{/* <View className="index_backImg"> {/* <View className="index_backImg">
<Image className="index_backImg_bg" mode={"scaleToFill"} src={iphone} /> <Image className="index_backImg_bg" mode={"scaleToFill"} src={iphone} />
</View> */} </View> */}

View File

@@ -4,7 +4,7 @@
// overflow: hidden; // 防止溢出 // overflow: hidden; // 防止溢出
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// align-items: center; align-items: center;
// justify-content: center; // justify-content: center;
// background-image: url('../../images/iphone.jpg'); // background-image: url('../../images/iphone.jpg');
// background-size: cover; // 拉伸铺满容器 // background-size: cover; // 拉伸铺满容器
@@ -70,13 +70,15 @@
transform-origin: top left; transform-origin: top left;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// align-items: center; align-items: center;
// justify-content: center; // justify-content: center;
background-image: url('../../images/iphone.jpg');
background-size: cover; // 拉伸铺满容器 // background-image: url('../../images/iphone.jpg');
background-position: center; // 居中 // background-size: cover; // 拉伸铺满容器
background-repeat: no-repeat; // 不重复 // background-position: center; // 居中
color: white; // background-repeat: no-repeat; // 不重复
// color: white;
// background-color: black;
.messageArr { .messageArr {
// padding: 40px; // padding: 40px;

View File

@@ -3871,6 +3871,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, can
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41"
integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==
canvas-confetti@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/canvas-confetti/-/canvas-confetti-1.9.3.tgz#ef4c857420ad8045ab4abe8547261c8cdf229845"
integrity sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==
capital-case@^1.0.4: capital-case@^1.0.4:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669"