diff --git a/src/assets/img/AIchat/圈.png b/src/assets/img/AIchat/圈.png
deleted file mode 100644
index d0116bb..0000000
Binary files a/src/assets/img/AIchat/圈.png and /dev/null differ
diff --git a/src/assets/img/AIchat/圈1.png b/src/assets/img/AIchat/圈1.png
deleted file mode 100644
index d0116bb..0000000
Binary files a/src/assets/img/AIchat/圈1.png and /dev/null differ
diff --git a/src/assets/img/homePage/bk.png b/src/assets/img/homePage/bk.png
deleted file mode 100644
index 64cc22b..0000000
Binary files a/src/assets/img/homePage/bk.png and /dev/null differ
diff --git a/src/store/userPessionCode.js b/src/store/userPessionCode.js
index 9c8b584..625a45f 100644
--- a/src/store/userPessionCode.js
+++ b/src/store/userPessionCode.js
@@ -17,7 +17,7 @@ export const useUserStore = defineStore('user', () => {
const airadarPerssion = ref(0)
const userRole = ref('')
const loading = ref(false)
- const isReady = ref(false)
+ const isReady = ref(false)
const getAppToken = ref('')
const getQueryVariable = (variable) => {
diff --git a/src/views/AIchat.vue b/src/views/AIchat.vue
index 7c94cf5..0d28e18 100644
--- a/src/views/AIchat.vue
+++ b/src/views/AIchat.vue
@@ -30,8 +30,6 @@ import title3 from "@/assets/img/AIchat/攻防三维.png";
import title4 from "@/assets/img/AIchat/综合作战.png";
import logo1 from "@/assets/img/AIchat/夺宝奇兵logo.png";
import logo2 from "@/assets/img/AIchat/开启无限财富.png";
-import bgc from "@/assets/img/AIchat/圈.png";
-import bgc1 from "@/assets/img/AIchat/圈1.png";
import getCountAll from "../assets/img/homePage/get-count-all.png";
import voice from "../assets/img/homePage/tail/voice.png";
import voiceNoActive from "../assets/img/homePage/tail/voice-no-active.png";
@@ -476,7 +474,7 @@ const createTypingEffect = (message, content, speed) => {
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
if (message.error == "2") {
apiStatus.two.isError = true;
} else if (message.error == "3") {
@@ -488,7 +486,7 @@ const createTypingEffect = (message, content, speed) => {
if (message.end) {
chatStore.getUserCount();
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
message.isTyping = false;
nextTick(() => {
@@ -607,7 +605,7 @@ const createTypingEffect = (message, content, speed) => {
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
if (message.error == "2") {
apiStatus.two.isError = true;
} else if (message.error == "3") {
@@ -640,7 +638,7 @@ const createTypingEffect = (message, content, speed) => {
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
if (message.error == "2") {
apiStatus.two.isError = true;
} else if (message.error == "3") {
@@ -886,7 +884,7 @@ watch(
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
} catch (e) {
// 意图识别异常,先清理思考过程消息
@@ -905,7 +903,7 @@ watch(
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
if (flag) {
@@ -937,7 +935,7 @@ watch(
spaceForecastPrivilegeState: 1,
aibullPrivilegeState: 1,
aigoldBullPrivilegeState: 1,
- airadarPrivilegeState: 1,
+ airadarPrivilegeState: 1,
// marketList: 1,
// brainPrivilegeState: userStore.brainPerssion,
// swordPrivilegeState: userStore.swordPerssion,
@@ -946,7 +944,7 @@ watch(
// aibullPrivilegeState: userStore.aibullPerssion,
// aigoldBullPrivilegeState: userStore.aiGnbullPerssion,
// airadarPrivilegeState: userStore.airadarPerssion,
- marketList: 'usa,sg,my,hk,cn,can,vi,th,in,gb',
+ marketList: "usa,sg,my,hk,cn,can,vi,th,in,gb",
});
// 添加空值检查防止访问null对象的属性
@@ -1730,7 +1728,7 @@ watch(
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
}
@@ -1830,7 +1828,7 @@ watch(
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
}
}
@@ -2016,7 +2014,7 @@ watch(
content: "工作流返回出错,请稍后重试1111",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
}
}
@@ -2151,7 +2149,7 @@ watch(
content: "工作流返回出错,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
}
}
@@ -2328,7 +2326,7 @@ watch(
content: "数据缺失,请稍后重试",
});
chatStore.isLoading = false;
- emit('enableInput');
+ emit("enableInput");
}
// 同时发起所有API调用
@@ -4170,7 +4168,11 @@ onUnmounted(() => {
@@ -4288,12 +4290,23 @@ p {
.bgc {
position: absolute;
z-index: -1;
- max-width: 530px;
- min-width: 340px;
+ max-width: 440px;
+ min-width: 300px;
+ top: -15px;
width: 40%;
height: auto;
- /* right: 30px; */
- /* top: -30px; */
+ /* 添加旋转动画 */
+ animation: rotate 10s linear infinite reverse;
+}
+
+/* 定义旋转动画 */
+@keyframes rotate {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
}
.logo1 {
@@ -4329,19 +4342,6 @@ p {
/* 防止GIF区域被压缩 */
}
-.gif-area img {
- /* width: 30%; */
- /* 改为百分比单位 */
- /* min-width: 200px; */
- /* 最小尺寸 */
- /* max-width: 400px; */
- /* 最大尺寸 */
- /* height: auto; */
- /* left: 50%; */
- /* transition: all 0.3s; */
- /* 添加过渡效果 */
-}
-
.message-area {
margin-top: 2%;
flex: 1;
diff --git a/src/views/Selectmodel.vue b/src/views/Selectmodel.vue
index edae6e0..18bc0b1 100644
--- a/src/views/Selectmodel.vue
+++ b/src/views/Selectmodel.vue
@@ -26,7 +26,6 @@
-
@@ -78,7 +77,7 @@ const goToEmotionsmodel = () => {
align-items: center;
/* box-sizing: border-box;
text-align: center; */
- background-attachment: fixed
+ background-attachment: fixed;
}
.main-icon {
@@ -109,6 +108,19 @@ const goToEmotionsmodel = () => {
align-items: center;
width: 90vw;
max-width: 200px;
+ cursor: pointer;
+ animation: breathing 1.5s ease-in-out infinite;
+}
+
+/* 呼吸动效关键帧 */
+@keyframes breathing {
+ 0%,
+ 100% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.02);
+ }
}
.btn-icon {
@@ -129,6 +141,7 @@ const goToEmotionsmodel = () => {
height: 150px;
width: 100%;
background-image: url("@/assets/img/Selectmodel/金轮 拷贝.png");
+ z-index: 3;
}
.btn-ball {
diff --git a/src/views/components/HistoryRecord.vue b/src/views/components/HistoryRecord.vue
index d6b28a3..8f509e3 100644
--- a/src/views/components/HistoryRecord.vue
+++ b/src/views/components/HistoryRecord.vue
@@ -1,11 +1,8 @@
@@ -13,22 +10,39 @@

+

-
+
+
+
+

+
+
+
-
-
-
-
+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+
+

+
+
+

+
+
+
+
+
+
+
+
+ {{ record.type === "AIchat" ? "夺宝奇兵" : "AI情绪" }}
+
+
+
{{ record.question }}
+
{{ formatTime(record.timestamp) }}
+
+
+
@@ -104,6 +235,26 @@
暂无历史记录
+
+
+
+

+
用户反馈
+
+
+

+
公告
+
+
@@ -124,7 +275,13 @@ const props = defineProps({
});
// Emits
-const emit = defineEmits(["selectRecord", "recordAdded", "startNewChat"]);
+const emit = defineEmits([
+ "selectRecord",
+ "recordAdded",
+ "startNewChat",
+ "showAnnouncement",
+ "showFeedback",
+]);
// 响应式数据
const isCollapsed = ref(false);
@@ -145,13 +302,11 @@ const toggleCollapse = () => {
const openHistory = () => {
isCollapsed.value = false;
-}
+};
const closeHistory = () => {
isCollapsed.value = true;
-}
-
-
+};
const selectRecord = (record) => {
selectedRecordId.value = record.id;
@@ -253,6 +408,16 @@ const loadFromLocalStorage = () => {
}
};
+// 处理公告按钮点击
+const handleAnnouncementClick = () => {
+ emit("showAnnouncement");
+};
+
+// 处理用户反馈按钮点击
+const handleFeedbackClick = () => {
+ emit("showFeedback");
+};
+
// 暴露方法和状态给父组件
defineExpose({
addRecord,
@@ -278,40 +443,64 @@ watch(
\ No newline at end of file
diff --git a/src/views/homePage.vue b/src/views/homePage.vue
index 177edf7..f05eef5 100644
--- a/src/views/homePage.vue
+++ b/src/views/homePage.vue
@@ -603,6 +603,8 @@ onUnmounted(() => {
:current-type="activeTab"
@selectRecord="handleHistorySelect"
:is-mobile="isMobile"
+ @showAnnouncement="showAnnouncement"
+ @showFeedback="showFeedback"
/>
{
-
-
-
-
+
+

+
-
+
-
![]()
+
{{ UserCount }}次
+
点击获取次数
-
![]()
-
![]()
+
@@ -645,13 +661,30 @@ onUnmounted(() => {
-
-
+
@@ -733,11 +766,23 @@ onUnmounted(() => {
-
![]()
+
{{ UserCount }}次
+
点击获取次数
-
![]()
-
![]()
+
@@ -777,15 +822,19 @@ onUnmounted(() => {
/* 标签栏 */
.tab-container {
display: flex;
- gap: 13rem;
- margin-right: 40px;
- margin-left: 40px;
+ gap: 30px;
+
margin-bottom: 10px;
- padding: 0 20px;
- justify-content: center;
height: 100%;
- align-items: center;
+ position: relative;
+ /* 新增右对齐 */
+}
+
+.pcTabContainer {
+ margin-left: 40px;
justify-content: center;
+ align-items: center;
+ gap: 25vw;
}
.tab-item {
@@ -867,7 +916,7 @@ body {
/* height: var(--app-height, 100vh); */
height: var(--app-height, 100vh);
margin: 0 auto;
- background-image: url(/src/assets/img/homePage/bk01.jpg);
+ background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/2dc3c13a74100b906e809d26b66db211.png");
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: center;
@@ -909,6 +958,9 @@ body {
/* 移动端适配 */
@media (max-width: 768px) {
+ .homepage {
+ background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/90d31d7052e729c63acb9e2cb94d1307.png");
+ }
.main-container {
/* margin-left: 280px; */
}
@@ -990,20 +1042,72 @@ body {
height: 40px;
}
-.homepage-right-group .count-badge {
+.count-badge {
position: relative;
cursor: pointer;
}
-.homepage-right-group .count-badge .count-number {
+.count-badge:hover {
+ transform: scale(1.05);
+}
+
+.count-number {
position: absolute;
- top: 6px;
- right: 20px;
- color: #573dfc;
+ top: 16px;
+ right: 0px;
+ width: 68%;
+ text-align: center;
+ color: #6a00ff;
+ font-size: 14px;
+ font-weight: bold;
+}
+
+.clickGetCount {
+ width: 100%;
+ text-align: center;
+ color: white;
font-size: 12px;
+}
+
+.pc-count-badge {
+ width: 120px;
+ height: 100%;
+ margin-left: auto;
+ margin-right: 20px;
+ position: absolute;
+ right: 20px;
+}
+
+.pc-count-badge:hover {
+ transform: scale(1.05);
+}
+
+.pc-action-btn {
+ width: 100%;
+ height: 70%;
+ background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/74e20c65c9ef2526477c63ad68698a50.png");
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+}
+
+.pc-count-number {
+ position: absolute;
+ top: 15px;
+ right: 4px;
+ width: 68%;
+ text-align: center;
+ color: #6a00ff;
+ font-size: 15px;
font-weight: bold;
}
+.pc-clickGetCount {
+ width: 100%;
+ text-align: center;
+ color: white;
+ font-size: 12px;
+}
+
.homepage-right-group .announcement-btn {
cursor: pointer;
transition: transform 0.3s;
@@ -1048,12 +1152,13 @@ body {
height: 100%;
width: fit-content;
display: flex;
- flex-direction: column;
+ /* flex-direction: column; */
align-items: center;
justify-content: center;
margin-left: 20px;
margin-right: auto;
position: relative;
+ gap: 10px;
}
.expand {
@@ -1062,15 +1167,8 @@ body {
color: white;
}
-@media (max-width: 768px) {
- .homepage-logo {
- margin-left: 10px;
- left: 0;
- }
-}
-
.logo1 {
- width: 120px;
+ width: 110px;
height: auto;
margin-bottom: 8px;
}
@@ -1109,10 +1207,6 @@ body {
height: 28px;
}
-.action-btn:hover {
- transform: scale(1.05);
-}
-
.model-btn {
height: 32px;
transition: all 0.3s ease;