|
@ -306,7 +306,7 @@ const fnGetToken = () => { |
|
|
}; |
|
|
}; |
|
|
// console.log('出来了') |
|
|
// console.log('出来了') |
|
|
// 触发App桥接 |
|
|
// 触发App桥接 |
|
|
useAppBridge().packageFun("JWwebReady", () => {}, 5, {}); |
|
|
|
|
|
|
|
|
useAppBridge().packageFun("JWwebReady", () => { }, 5, {}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// 在setTimeout中延迟执行 |
|
|
// 在setTimeout中延迟执行 |
|
@ -526,16 +526,8 @@ onMounted(async () => { |
|
|
<img :src="getCountAll" class="action-btn" /> |
|
|
<img :src="getCountAll" class="action-btn" /> |
|
|
<div class="count-number">{{ UserCount }}次</div> |
|
|
<div class="count-number">{{ UserCount }}次</div> |
|
|
</div> |
|
|
</div> |
|
|
<img |
|
|
|
|
|
:src="announcementBtn" |
|
|
|
|
|
class="announcement-btn action-btn" |
|
|
|
|
|
@click="showAnnouncement" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
:src="feedbackBtn" |
|
|
|
|
|
class="announcement-btn action-btn" |
|
|
|
|
|
@click="showFeedback" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<img :src="announcementBtn" class="announcement-btn action-btn" @click="showAnnouncement" /> |
|
|
|
|
|
<img :src="feedbackBtn" class="announcement-btn action-btn" @click="showFeedback" /> |
|
|
</div> |
|
|
</div> |
|
|
</el-header> |
|
|
</el-header> |
|
|
|
|
|
|
|
@ -544,28 +536,17 @@ onMounted(async () => { |
|
|
<div class="main-wrapper"> |
|
|
<div class="main-wrapper"> |
|
|
<section class="tab-section"> |
|
|
<section class="tab-section"> |
|
|
<div class="tab-container"> |
|
|
<div class="tab-container"> |
|
|
<div |
|
|
|
|
|
v-for="(tab, index) in tabs" |
|
|
|
|
|
:key="tab.name" |
|
|
|
|
|
@click="setActiveTab(tab.name, index)" |
|
|
|
|
|
:class="[ |
|
|
|
|
|
|
|
|
<div v-for="(tab, index) in tabs" :key="tab.name" @click="setActiveTab(tab.name, index)" :class="[ |
|
|
'tab-item', |
|
|
'tab-item', |
|
|
{ active: activeIndex === index && !isAnnouncementVisible }, |
|
|
{ active: activeIndex === index && !isAnnouncementVisible }, |
|
|
]" |
|
|
|
|
|
> |
|
|
|
|
|
|
|
|
]"> |
|
|
<span>{{ tab.label }}</span> |
|
|
<span>{{ tab.label }}</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
</section> |
|
|
<div class="tab-content" ref="tabContent"> |
|
|
<div class="tab-content" ref="tabContent"> |
|
|
<component |
|
|
|
|
|
:is="activeComponent" |
|
|
|
|
|
:messages="messages" |
|
|
|
|
|
@updateMessage="updateMessage" |
|
|
|
|
|
@sendMessage="sendMessage" |
|
|
|
|
|
@ensureAIchat="ensureAIchat" |
|
|
|
|
|
ref="aiEmotionRef" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<component :is="activeComponent" :messages="messages" @updateMessage="updateMessage" |
|
|
|
|
|
@sendMessage="sendMessage" @ensureAIchat="ensureAIchat" ref="aiEmotionRef" /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</el-main> |
|
|
</el-main> |
|
@ -578,40 +559,15 @@ onMounted(async () => { |
|
|
<img v-else :src="thinkNoActive" @click="toggleThink" class="action-btn" /> |
|
|
<img v-else :src="thinkNoActive" @click="toggleThink" class="action-btn" /> |
|
|
<img :src="languageBtn" @click="changeLanguage" class="action-btn" /> --> |
|
|
<img :src="languageBtn" @click="changeLanguage" class="action-btn" /> --> |
|
|
<!-- 夺宝奇兵大模型按钮 --> |
|
|
<!-- 夺宝奇兵大模型按钮 --> |
|
|
<img |
|
|
|
|
|
:src="activeTab === 'AIchat' ? dbqbButton02 : dbqbButton01" |
|
|
|
|
|
@click="setActiveTab('AIchat', 0)" |
|
|
|
|
|
class="action-btn model-btn" |
|
|
|
|
|
alt="夺宝奇兵大模型" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<img :src="activeTab === 'AIchat' ? dbqbButton01 : dbqbButton02" @click="setActiveTab('AIchat', 0)" |
|
|
|
|
|
class="action-btn model-btn" alt="夺宝奇兵大模型" /> |
|
|
<!-- AI情绪大模型按钮 --> |
|
|
<!-- AI情绪大模型按钮 --> |
|
|
<img |
|
|
|
|
|
:src=" |
|
|
|
|
|
activeTab === 'AiEmotion' ? emotionButton02 : emotionButton01 |
|
|
|
|
|
" |
|
|
|
|
|
@click="setActiveTab('AiEmotion', 1)" |
|
|
|
|
|
class="action-btn model-btn" |
|
|
|
|
|
alt="AI情绪大模型" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="isVoice" |
|
|
|
|
|
:src="voice" |
|
|
|
|
|
@click="toggleVoice" |
|
|
|
|
|
class="action-btn" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
v-else |
|
|
|
|
|
:src="voiceNoActive" |
|
|
|
|
|
@click="toggleVoice" |
|
|
|
|
|
class="action-btn" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<img :src="activeTab === 'AiEmotion' ? emotionButton01 : emotionButton02 |
|
|
|
|
|
" @click="setActiveTab('AiEmotion', 1)" class="action-btn model-btn" alt="AI情绪大模型" /> |
|
|
|
|
|
<img v-if="isVoice" :src="voice" @click="toggleVoice" class="action-btn" /> |
|
|
|
|
|
<img v-else :src="voiceNoActive" @click="toggleVoice" class="action-btn" /> |
|
|
</div> |
|
|
</div> |
|
|
<img |
|
|
|
|
|
v-if="!chatStore.isLoading" |
|
|
|
|
|
:src="sendBtn" |
|
|
|
|
|
@click="sendMessage" |
|
|
|
|
|
class="action-btn send-btn" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<img v-if="!chatStore.isLoading" :src="sendBtn" @click="sendMessage" class="action-btn send-btn" /> |
|
|
<div v-else @click="chatStore.setLoading(false)"> |
|
|
<div v-else @click="chatStore.setLoading(false)"> |
|
|
<el-icon class="is-loading"> |
|
|
<el-icon class="is-loading"> |
|
|
<Loading /> |
|
|
<Loading /> |
|
@ -622,17 +578,9 @@ onMounted(async () => { |
|
|
<!-- 第二行输入框 --> |
|
|
<!-- 第二行输入框 --> |
|
|
<div class="footer-second-line"> |
|
|
<div class="footer-second-line"> |
|
|
<img :src="msgBtn" class="msg-icon" /> |
|
|
<img :src="msgBtn" class="msg-icon" /> |
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
v-model="message" |
|
|
|
|
|
@focus="onFocus" |
|
|
|
|
|
@blur="onBlur" |
|
|
|
|
|
:autosize="{ minRows: 1, maxRows: 4 }" |
|
|
|
|
|
placeholder="给AI小财神发消息..." |
|
|
|
|
|
class="msg-input" |
|
|
|
|
|
@keydown.enter.exact.prevent="isLoading ? null : sendMessage()" |
|
|
|
|
|
resize="none" |
|
|
|
|
|
> |
|
|
|
|
|
|
|
|
<el-input type="textarea" v-model="message" @focus="onFocus" @blur="onBlur" |
|
|
|
|
|
:autosize="{ minRows: 1, maxRows: 4 }" placeholder="给AI小财神发消息..." class="msg-input" |
|
|
|
|
|
@keydown.enter.exact.prevent="isLoading ? null : sendMessage()" resize="none"> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-footer> |
|
|
</el-footer> |
|
@ -650,16 +598,8 @@ onMounted(async () => { |
|
|
<img :src="getCountAll" class="action-btn" /> |
|
|
<img :src="getCountAll" class="action-btn" /> |
|
|
<div class="count-number">{{ UserCount }}次</div> |
|
|
<div class="count-number">{{ UserCount }}次</div> |
|
|
</div> |
|
|
</div> |
|
|
<img |
|
|
|
|
|
:src="announcementBtn" |
|
|
|
|
|
class="announcement-btn action-btn" |
|
|
|
|
|
@click="showAnnouncement" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
:src="feedbackBtn" |
|
|
|
|
|
class="announcement-btn action-btn" |
|
|
|
|
|
@click="showFeedback" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<img :src="announcementBtn" class="announcement-btn action-btn" @click="showAnnouncement" /> |
|
|
|
|
|
<img :src="feedbackBtn" class="announcement-btn action-btn" @click="showFeedback" /> |
|
|
</div> |
|
|
</div> |
|
|
</el-header> |
|
|
</el-header> |
|
|
|
|
|
|
|
|